• Oracle案例08——xx.xx.xx.xx,表空间 SYSAUX 使用率>95%%


    本实例主要针对Oracle表空间饱满问题处理方法做个步骤分享。

     一、告警信息

    收到zabbix告警信息,表空间 SYSAUX 使用率>95%%,系统表空间sysaux使用率超过了95%。

    二、处理步骤

    1.登录具体数据库做相应的数据库空间使用率查询

    set line 200;
    set pagesize 20000;
    set feedback off;
    col tablespace_name for a20;
    col c_free_percent for a12;
    col c_used_percent for a12;
    col m_free_percent for a12;
    col m_USED_PERCENT for a12;
    select d.tablespace_name,round(d.MB_current_Bytes,2) Curr_Size_MB,round(f.free_mb_bytes,2) Free_Szie_MB,round(d.MB_maxbytes,2) MAX_Size_MB,round((f.free_mb_bytes/d.MB_current_Bytes)*100,2)  c_free_percent,round((d.MB_current_Bytes-f.free_mb_bytes)/d.MB_current_Bytes,4)*100 || '%' c_used_percent,round(((d.MB_maxbytes-d.MB_current_Bytes+f.free_mb_bytes)/d.MB_maxbytes)*100,2)   m_free_percent,round((d.MB_current_Bytes-f.free_mb_bytes)/d.MB_maxbytes,4)*100 || '%' m_used_percent
    from  (select tablespace_name,sum(bytes/1024/1024) MB_current_Bytes,sum(maxbytes/1024/1024) MB_maxbytes from dba_data_files group by tablespace_name ) d,(select tablespace_name,sum(bytes/1024/1024) free_mb_bytes from dba_free_space group by tablespace_name) f
    where d.tablespace_name=f.tablespace_name
    order by c_free_percent ;

    2.查询表空间对应的对象占用情况

    select OWNER,segment_name,segment_type,PARTITION_NAME,bytes/1024/1024/1024 Size_GB from dba_segments  where tablespace_name='SYSAUX' order by Size_GB desc

    3.根据具体大对象做排查,对可以清理的相关数据清理

    根据上述SQL查到的大对象主要是

    1    SYS    WRH$_LATCH_CHILDREN        WRH$_LATCH__1153813778_29290    TABLE PARTITION    29.927734375
    2    SYS    WRH$_LATCH_CHILDREN_PK      WRH$_LATCH__1153813778_29290    INDEX PARTITION    14.984375
    3    SYS    WRH$_ACTIVE_SESSION_HISTORY  WRH$_ACTIVE_1153813778_29290    TABLE PARTITION    3.6474609375
    4    SYS    WRH$_SQLSTAT            WRH$_SQLSTA_1153813778_29290    TABLE PARTITION    1.2529296875

    WRH$_LATCH_CHILDREN 表示快照使用的,其中分区1153813778是DBID, 29290是快照ID

    查看29290的快照ID是什么时间的

    select snap_id, begin_interval_time from sys.dba_hist_snapshot order by snap_id;
    
    select snap_id, begin_interval_time from sys.dba_hist_snapshot where snap_id=29290 

     4.清空分区WRH$_LATCH__1153813778_29290

    select * from   WRH$_LATCH_CHILDREN partition ( WRH$_LATCH__1153813778_29290);
     
    alter table WRH$_LATCH_CHILDREN truncate partition WRH$_LATCH__1153813778_29290;
     

    5.清理后表空间查看

    select d.tablespace_name,round(d.MB_current_Bytes,2) Curr_Size_MB,round(f.free_mb_bytes,2) Free_Szie_MB,round(d.MB_maxbytes,2) MAX_Size_MB,round((f.free_mb_bytes/d.MB_current_Bytes)*100,2)  c_free_percent,round((d.MB_current_Bytes-f.free_mb_bytes)/d.MB_current_Bytes,4)*100 || '%' c_used_percent,round(((d.MB_maxbytes-d.MB_current_Bytes+f.free_mb_bytes)/d.MB_maxbytes)*100,2)   m_free_percent,round((d.MB_current_Bytes-f.free_mb_bytes)/d.MB_maxbytes,4)*100 || '%' m_used_percent
    from  (select tablespace_name,sum(bytes/1024/1024) MB_current_Bytes,sum(maxbytes/1024/1024) MB_maxbytes from dba_data_files group by tablespace_name ) d,(select tablespace_name,sum(bytes/1024/1024) free_mb_bytes from dba_free_space group by tablespace_name) f
    where d.tablespace_name=f.tablespace_name  and f.tablespace_name='SYSAUX'
    order by c_free_percent ;

    三、脚本附录

    1.表空间segment大小查询

    select OWNER,segment_name,PARTITION_NAME,segment_type,bytes/1024/1024/1024 Size_GB from dba_segments  where tablespace_name='SYSAUX' order by Size_GB desc

    2.表空间使用率查询

    set line 200;
    set pagesize 20000;
    set feedback off;
    col tablespace_name for a20;
    col c_free_percent for a12;
    col c_used_percent for a12;
    col m_free_percent for a12;
    col m_USED_PERCENT for a12;
    select d.tablespace_name,round(d.MB_current_Bytes,2) Curr_Size_MB,round(f.free_mb_bytes,2) Free_Szie_MB,round(d.MB_maxbytes,2) MAX_Size_MB,round((f.free_mb_bytes/d.MB_current_Bytes)*100,2)  c_free_percent,round((d.MB_current_Bytes-f.free_mb_bytes)/d.MB_current_Bytes,4)*100 || '%' c_used_percent,round(((d.MB_maxbytes-d.MB_current_Bytes+f.free_mb_bytes)/d.MB_maxbytes)*100,2)   m_free_percent,round((d.MB_current_Bytes-f.free_mb_bytes)/d.MB_maxbytes,4)*100 || '%' m_used_percent
    from  (select tablespace_name,sum(bytes/1024/1024) MB_current_Bytes,sum(maxbytes/1024/1024) MB_maxbytes from dba_data_files group by tablespace_name ) d,(select tablespace_name,sum(bytes/1024/1024) free_mb_bytes from dba_free_space group by tablespace_name) f
    where d.tablespace_name=f.tablespace_name
    order by c_free_percent ;

    3.查看快照ID、查看快照设置信息、设置快照信息

    select snap_id, begin_interval_time from sys.dba_hist_snapshot order by snap_id;
    select * from DBA_HIST_WR_CONTROL;
    begin
        DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention =>43200,interval =>30, topnsql =>'MAXIMUM');
    end;
    /

    4.统计信息清理

    exec dbms_stats.purge_stats(systimestamp -11);
  • 相关阅读:
    小谢第18问:如何让element-ui的弹出框每次显示的时候初始化,重新加载元素?
    小谢第7问:js前端如何实现大文件分片上传、上传进度、终止上传以及删除服务器文件?
    小谢第36问:elemet
    小谢第35问:已经 git commit 的代码怎么回退到本地
    小谢第34问:vue中路由传参params 和 query区别
    小谢第33问:获取对象所有的属性值
    小谢第32问:git 可视化管理工具
    小谢第31问:git拉取所有分支
    小谢第30问:get拼接字符串常用接口含义
    小谢第29问:Vue项目打包部署到服务器上,调接口就报js,css 文件404
  • 原文地址:https://www.cnblogs.com/rangle/p/9198151.html
Copyright © 2020-2023  润新知