Oracle常见问题排查

简述

  Oracle总会莫名奇妙得挂掉,现记录常见问题得排查

 

基本思路

  1.xshell连接 linux

    查看日志目录

    show parameter background_dump_dest;

    

 

     cd /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace    

  2.检查最新日志文件

    cat  alert_orcl.log

    其他辅助文件参考.trc最新文件

    列表口令 ll orcl_ora_*.trc

 

  3.分析alert_orcl.log文件   

 

 

常见问题  

  0.日志文件查看

    分析alert_orcl.log文件

    

 

      截图说明,举例说明进一步分析orcl_ora_41003.trc文件。

    此处省略。

  1.连接过多未释放

  2.不自动释放空闲连接

  3.没有共享内存

  4.ORA-03113:通信通道的文件结尾

    检查表空间    

SELECT 
a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "

FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
    AND a.tablespace_name = c.tablespace_name
ORDER BY (b.bytes * 100) / a.bytes desc,(c.bytes * 100) / a.bytes asc;

    表空间使用

    

      初步分析:

      a.SYSTEM中审计表aud$在数据库编程过程中,对SQL语句的编译过程,资源占用会较大,因此在sys账户下查看,

           select count(*) sum from AUD$;
        会得知,该数值会非常大。

      b.SYSAUX则进行的是AWR快照,也会进行占用较多的空间,

    问题解决:

      a.sys登录清理审计表

        Truncate table AUD$;

      b.清理AWR快照

        select dbid, retention from dba_hist_wr_control; --查询DBID

        

 

        select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid =1549194399;--查看快照ID范围

         

 

        exec dbms_workload_repository.drop_snapshot_range(197, 385,1549194399); --执行清理

        提示执行成功

        select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid =1549194399; --查看快照ID范围

      c.开发环境因为各种SQL执行比较频繁可以这么操作,生成环境建议把审计、快照提取到单独得表空间。

 

        

 

posted @ 2020-03-08 20:58  李文学  阅读(563)  评论(0编辑  收藏  举报