2023年8月1日发(作者:)
ORA-03113:通信通道的⽂件结尾-完美解决⽅案今天发现系统登录和查询数据特别慢,orcl进程占⽤内存也特别⾼。打开程序调试⽤,存储过程调⽤时报错【ORA-03113:通信通道的⽂件结尾】解决⽅案:oracle ⽂档中对这个错误这样解释:ORA-03113 错误就是说连接到数据库的⽹络中断了。有些错误由于频繁出现、原因复杂⽽被 Oracle DBA 们戏称之为"经典的错误"。
完美解决⽅案:1、查看系统表空间⽤量:SELECT pace_name, total, used, free,( * 100) / "% USED ",( * 100) / "% FREE "FROM $ts_avail a, $ts_used b, $ts_free cWHERE pace_name = pace_nameAND pace_name = pace_name;
2、分析ORA-03113主要原因从图中主要分析SYSTEM、SYSAUX表空间⽤量,原因有两点: 1)、SYSTEM中审计表aud$在数据库编程过程中,对SQL语句的编译过程,资源占⽤会较⼤,因此在sys账户下查看,select count(*) sum from AUD$;会得知,该数值会⾮常⼤。 2)、SYSAUX则进⾏的是AWR快照,也会进⾏占⽤较多的空间。
因此,出现ORA-03113,⼀般以上两个空间会出现严重不⾜情况。3、完美解决⽅式 ⽤sys账户dba登录,两个原因⼀⼀解决: 1)、清理AUD$审计表记录; Truncate table AUD$; 清理AUD$审计表⼀条命令即可。 2)、清理AWR快照步骤稍有⿇烦 select dbid, retention from dba_hist_wr_control; DBID RETENTION---------- ------------------------------------------------1426562503 +00008 00:00:00.0
select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 1426562503;MIN(SNAP_ID) MAX(SNAP_ID)------------ ------------ 7689 7896exec dbms_workload__snapshot_range(7689, 7896,1426562503)PL/SQL procedure successfully completed
select 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的函数、包、过程的开发、编译,建议在⽣产环境尽量不要进⾏开发,或是⽣产环境单独将审计和快照移⾄专门的表空间。
2023年8月1日发(作者:)
ORA-03113:通信通道的⽂件结尾-完美解决⽅案今天发现系统登录和查询数据特别慢,orcl进程占⽤内存也特别⾼。打开程序调试⽤,存储过程调⽤时报错【ORA-03113:通信通道的⽂件结尾】解决⽅案:oracle ⽂档中对这个错误这样解释:ORA-03113 错误就是说连接到数据库的⽹络中断了。有些错误由于频繁出现、原因复杂⽽被 Oracle DBA 们戏称之为"经典的错误"。
完美解决⽅案:1、查看系统表空间⽤量:SELECT pace_name, total, used, free,( * 100) / "% USED ",( * 100) / "% FREE "FROM $ts_avail a, $ts_used b, $ts_free cWHERE pace_name = pace_nameAND pace_name = pace_name;
2、分析ORA-03113主要原因从图中主要分析SYSTEM、SYSAUX表空间⽤量,原因有两点: 1)、SYSTEM中审计表aud$在数据库编程过程中,对SQL语句的编译过程,资源占⽤会较⼤,因此在sys账户下查看,select count(*) sum from AUD$;会得知,该数值会⾮常⼤。 2)、SYSAUX则进⾏的是AWR快照,也会进⾏占⽤较多的空间。
因此,出现ORA-03113,⼀般以上两个空间会出现严重不⾜情况。3、完美解决⽅式 ⽤sys账户dba登录,两个原因⼀⼀解决: 1)、清理AUD$审计表记录; Truncate table AUD$; 清理AUD$审计表⼀条命令即可。 2)、清理AWR快照步骤稍有⿇烦 select dbid, retention from dba_hist_wr_control; DBID RETENTION---------- ------------------------------------------------1426562503 +00008 00:00:00.0
select min(snap_id), max(snap_id) from dba_hist_snapshot where dbid = 1426562503;MIN(SNAP_ID) MAX(SNAP_ID)------------ ------------ 7689 7896exec dbms_workload__snapshot_range(7689, 7896,1426562503)PL/SQL procedure successfully completed
select 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的函数、包、过程的开发、编译,建议在⽣产环境尽量不要进⾏开发,或是⽣产环境单独将审计和快照移⾄专门的表空间。
发布评论