Home > Database > Mysql Tutorial > body text

sysaux 表空间不足问题处理

WBOY
Release: 2016-06-07 17:28:50
Original
1778 people have browsed it

Oracle从10G 开始引入的,以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建. 通过分离这些组件和功能,S

一现场,备份库alter 日志出现错误
 ORA-1688: unable to extend table SYS.WRH$_SQLSTAT partition WRH$_SQLSTA_3344221469_3956 by 128 in                tablespace SYSAUX
 ORA-1688: unable to extend table SYS.WRH$_SQLSTAT partition WRH$_SQLSTA_3344221469_3956 by 128 in                tablespace SYSAUX
 
根据错误提示是sysaux 表空间满了
 
 Oracle从10G 开始引入的,以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.
 通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。
 如果SYSAUX表空间不可用,数据库核心功能将保持有效;使用SYSAUX表空间的特点将会失败或功能受限.
 
可以从V$SYSAUX_OCCUPANTS view 查看情况
 
V$SYSAUX_OCCUPANTS
 
V$SYSAUX_OCCUPANTS displays SYSAUX tablespace occupant information.
 Column  Datatype  Description
 OCCUPANT_NAME  VARCHAR2(64)  Occupant name
 OCCUPANT_DESC  VARCHAR2(64)  Occupant description
 SCHEMA_NAME  VARCHAR2(64)  Schema name for the occupant
 MOVE_PROCEDURE  VARCHAR2(64)  Name of the move procedure; null if not applicable
 MOVE_PROCEDURE_DESC  VARCHAR2(64)  Description of the move procedure
 SPACE_USAGE_KBYTES  NUMBER  Current space usage of the occupant (in KB)
 
查看那些 occupant空间占用情况
 
select OCCUPANT_NAME,SPACE_USAGE_KBYTES/1024/1024 from V$SYSAUX_OCCUPANTS;
 SELECT s.object_name from dba_objects s where s.object_name like '%OPTSTAT%' and s.object_type='TABLE';
 

在Oracle10中表空间SYSAUX引入,oracle把统计信息存储在这里,这也是为了更好的优化system表空间,
 我们可以用视图V$SYSAUX_OCCUPANTS 查看,oracle有哪些数据存贮在SYSAUX中。
 

 
 oracle的SM/AWR, SM/ADVISOR, SM/OPTSTAT and SM/OTHER的统计信息都存储在SYSAUX中
 
 查询当前SM/OPTSTAT的统计信息的保存时间
 SQL> select dbms_stats.get_stats_history_retention from dual;
 
 GET_STATS_HISTORY_RETENTION
 ---------------------------
                          31
 
 修改SM/OPTSTAT的统计信息的保存时间为10天
 SQL> exec dbms_stats.alter_stats_history_retention(10);
 
 PL/SQL procedure successfully completed
 
 SQL> select dbms_stats.get_stats_history_retention from dual;
 
 GET_STATS_HISTORY_RETENTION
 ---------------------------
                          10
 
 

删除16天前的统计数据
 SQL> exec dbms_stats.purge_stats(sysdate-20);
 
 PL/SQL procedure successfully completed
 
 SQL>

查看当前有效的统计数据是到什么时间的
 SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;
 
 GET_STATS_HISTORY_AVAILABILITY
 --------------------------------------------------------------------------------
 12-2月 -12 07.15.49.000000000 下午 +08:00
 
 再删除7天前的统计数据
 SQL> exec dbms_stats.purge_stats(sysdate-7);
 
 PL/SQL procedure successfully completed
 
 这个时候发现有效的统计信息时间已经变了
SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;
 
 GET_STATS_HISTORY_AVAILABILITY
 --------------------------------------------------------------------------------
 14-2月 -12 07.15.57.000000000 下午 +08:00

linux

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!