ORA-03113:通信通道的⽂件结尾-完美解决⽅案
今天发现系统登录和查询数据特别慢,orcl进程占⽤内存也特别⾼。打开程序调试⽤,存储过程调⽤时报错【ORA-03113:通信通道的⽂件结尾】
解决⽅案:
抠公章
oracle ⽂档中对这个错误这样解释:
ORA-03113 错误就是说连接到数据库的⽹络中断了。有些错误由于频繁出现、原因复杂⽽被 Oracle DBA 们戏称之为"经典的错误"。
完美解决⽅案:
正弦定理公式1、查看系统表空间⽤量:
SELECT a.tablespace_name,
a.bytes total,
b.bytes ud,
fanli商於怎么读c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_ud b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
格陵兰比目鱼AND a.tablespace_name = c.tablespace_name;
2、分析ORA-03113主要原因
物理英语怎么读
从图中主要分析SYSTEM、SYSAUX表空间⽤量,原因有两点:
1)、SYSTEM中审计表aud$在数据库编程过程中,对SQL语句的编译过程,资源占⽤会较⼤,因此在sys账户下查看,
lect count(*) sum from AUD$;
会得知,该数值会⾮常⼤。烤箱烤薯条
2)、SYSAUX则进⾏的是AWR快照,也会进⾏占⽤较多的空间。
因此,出现ORA-03113,⼀般以上两个空间会出现严重不⾜情况。
3、完美解决⽅式
⽤sys账户dba登录,两个原因⼀⼀解决:
1)、清理AUD$审计表记录;
Truncate table AUD$;
清理AUD$审计表⼀条命令即可。
2)、清理AWR快照步骤稍有⿇烦
lect dbid, retention from dba_hist_wr_control;
DBID RETENTION
海尔老板---------- ------------------------------------------------
1426562503 +00008 00:00:00.0
lect min(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 1426562503;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
7689 7896
exec dbms_workload_repository.drop_snapshot_range(7689, 7896,1426562503)
PL/SQL procedure successfully completed
lect min(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 1426562503;
MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
AWR快照清理结束。
清理后,再去查看system表空间,对⽐前后结果会有明显变化,这是再进⾏数据库开发时,不会出现ORA-03113错误。
4、总结
此种解决⽅案,针对的是数据库开发⼯作较多情况下,如⼤量的PL/SQL的函数、包、过程的开发、编译,建议在⽣产环境尽量不要进⾏开发,或是⽣产环境单独将审计和快照移⾄专门的表空间。