dba_2pc_pending增长异常的一个临时解决方案
oracle 11.2.0.1 rac
dba_2pc_pending增长异常,每天增加2-3w.
导致很多系统操作非常消耗io.
监控里可以看到类似的语句:
        Elapsed                  Elapsed Time        Time (s)    Executions  per Exec (s)  %Total   %CPU    %IO    SQL Id---------------- -------------- ------------- ------ ------ ------ ------------        39,249.8            844         46.50    5.2   31.5   42.3 1whtta179zmk9select count(*) from pending_sub_sessions$ where local_tran_id = :1         19,724.7            883         22.34    2.6   32.5   42.2 5ryqf4hgc790zselect count(*) from pending_sessions$ where local_tran_id = :1         Elapsed                  Elapsed Time        Time (s)    Executions  per Exec (s)  %Total   %CPU    %IO    SQL Id---------------- -------------- ------------- ------ ------ ------ -------------       118,896.1            883        134.65   28.5   35.9   41.6 6yva4jbyzfky5select local_tran_id, state, status, heuristic_dflt, session_vector, reco_vector, global_commit#, type# from pending_trans$ pt where global_tran_fmt = :1 and (global_oracle_id = :2 or global_foreign_id = :3) and session_vector != '00000000' and exists (select * from pending_sessions$
暂时没有找到根本解决方法,一个临时性的方案如下:
清除以下三个基表
truncate pending_sub_sessions$;
truncate pending_trans$;truncate pending_sessions$;