设为首页 收藏本站
查看: 745|回复: 0

[经验分享] Oracle SYSAUX空间问题解决

[复制链接]

尚未签到

发表于 2018-9-22 11:19:27 | 显示全部楼层 |阅读模式
  通过修改了AWR收集频率之后(http://zxf261.blog.51cto.com/701797/762046),发现SYSAUX表空间还是占用严重。
  下面介绍一下如何清理SYSAUX表空间
  一.清理SYSAUX下的历史统计信息
  1.将历史统计信息保留时间设为无限
  exec dbms_stats.alter_stats_history_retention(-1);
  2.truncate较大的TABLE
  truncate table sys.WRI$_OPTSTAT_HISTHEAD_HISTORY;
  truncate table sys.WRI$_OPTSTAT_HISTGRM_HISTORY;
  3.清理历史统计信息
  exec dbms_stats.purge_stats(sysdate-101);
  exec dbms_stats.purge_stats(sysdate-51);
  exec dbms_stats.purge_stats(sysdate-5);
  4.将历史统计信息保留时间设为10天
  exec dbms_stats.alter_stats_history_retention(10);
  5.将历史统计信息相关的表进行MOVE
  alter table sys.WRI$_OPTSTAT_HISTHEAD_HISTORY move tablespace sysaux;
  alter index sys.I_WRI$_OPTSTAT_HH_OBJ_ICOL_ST rebuild online;
  alter index sys.I_WRI$_OPTSTAT_HH_ST rebuild online;
  alter table sys.WRI$_OPTSTAT_HISTGRM_HISTORY move tablespace sysaux;
  alter index sys.I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST rebuild online;
  alter index sys.I_WRI$_OPTSTAT_H_ST rebuild online;
  alter table sys.WRI$_OPTSTAT_IND_HISTORY move tablespace sysaux;
  alter index sys.I_WRI$_OPTSTAT_IND_OBJ#_ST rebuild online;
  alter index sys.I_WRI$_OPTSTAT_IND_ST rebuild online;
  alter table sys.WRI$_OPTSTAT_TAB_HISTORY move tablespace sysaux;
  alter index sys.I_WRI$_OPTSTAT_TAB_OBJ#_ST rebuild online;
  alter index sys.I_WRI$_OPTSTAT_TAB_ST rebuild online;
  ALTER TABLE SYS.WRI$_OPTSTAT_OPR MOVE TABLESPACE SYSAUX;
  ALTER TABLE SYS.WRI$_OPTSTAT_AUX_HISTORY MOVE TABLESPACE SYSAUX;
  ALTER INDEX SYS.I_WRI$_OPTSTAT_AUX_ST REBUILD ONLINE;
  ALTER INDEX SYS.I_WRI$_OPTSTAT_OPR_STIME REBUILD ONLINE;
  6.对MOVE表的统计信息进行收集
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRI$_OPTSTAT_HISTHEAD_HISTORY’,cascade => TRUE);
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRI$_OPTSTAT_HISTGRM_HISTORY’,cascade => TRUE);
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRI$_OPTSTAT_IND_HISTORY’,cascade => TRUE);
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRI$_OPTSTAT_TAB_HISTORY’,cascade => TRUE);
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRI$_OPTSTAT_OPR’,cascade => TRUE);
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRI$_OPTSTAT_AUX_HISTORY’,cascade => TRUE);
  二.清理SYAUX下的无效ASH信息
  1.检查是否有无效的ASH信息
  select count(*)
  from sys.wrh$_active_session_history a
  where not exists (select 1
  from sys.wrm$_snapshot b
  where a.snap_id = b.snap_id
  and a.dbid = b.dbid
  and a.instance_number = b.instance_number);
  2.清理无效的ASH信息
  delete
  from sys.wrh$_active_session_history a
  where not exists (select 1
  from sys.wrm$_snapshot b
  where a.snap_id = b.snap_id
  and a.dbid = b.dbid
  and a.instance_number = b.instance_number);
  3.对ASH表清理后的碎片整理
  alter table sys.wrh$_active_session_history enable row movement;
  alter table sys.wrh$_active_session_history shrink space cascade;
  alter table sys.wrh$_active_session_history disable row movement;
  4.收集碎片整理后表的统计信息
  EXEC dbms_stats.gather_table_stats(ownname => ‘SYS’,tabname => ‘WRH$_ACTIVE_SESSION_HISTORY’,cascade => TRUE);
  3.检查表空间可收缩的的位置
  select a.FILE#,
  a.NAME,
  a.BYTES / 1024 / 1024 mb,
  ceil(HWM * A.BLOCK_SIZE) / 1024 / 1024 RESIZETO,
  ‘ALTER DATABASE DATAFILE ”’ || A.NAME || ”’ RESIZE ‘ ||
  (trunc(CEIL(HWM * A.BLOCK_SIZE) / 1024 / 1024)+20) || ‘M;’ RESIZECMD
  from v$datafile a,
  (SELECT C.file_id, MAX(C.block_id + C.blocks – 1) HWM
  FROM DBA_EXTENTS C
  GROUP BY FILE_ID) B
  WHERE A.FILE# = B.FILE_ID
  AND a.tablespace=’SYSAUX’
  ORDER BY 5;
  三.SYSAUX清理后的检查
  1.清理后的无效INDEX检查
  select * from dba_indexes where status‘VALID’ AND STATUS‘N/A’;
  SELECT * FROM DBA_IND_PARTITIONS WHERE STATUS‘USABLE’ AND STATUS‘N/A’;
  SELECT * FROM DBA_IND_SUBPARTITIONS WHERE STATUS‘USABLE’;
  上面语句应均无数据返回,如有则对这些INDEX进行重建
  2.清理后的INDEX并行度检查
  select * from dba_indexes where degree not in (’1′,’0′,’DEFAULT’);


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-599863-1-1.html 上篇帖子: Redhat 5.5 安装oracle 11G 下篇帖子: oracle 用户权限、profile及角色的管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表