(3) dba_2pc_pending 에서 현재 pending 되어 있는 tnx이 존재하는지 확인
SQL>selectGLOBAL_TRAN_ID,STATE, TRAN_COMMENT, ADVICE from dba_2pc_pending ;
* STATE 는 commit, rollback, collecting 등의 경우 일수 있음 (정상 : "no rows selected")
SQL>selectGLOBAL_TRAN_ID,STATE, TRAN_COMMENT, ADVICE from dba_2pc_pending ;
* STATE 는 commit, rollback, collecting 등의 경우 일수 있음 (정상 : "no rows selected")
(4) dba_2pc_neighbors 에서 "LOCAL_TRAN_ID"를 찾아낸다.
SQL>select * from dba_2pc_neighbors ;
SQL>select * from dba_2pc_neighbors ;
(5) rollback force command로 pending 된txn을 rollback 시킨다.
SQL>rollback force 'LOCAL_TRAN_ID';
예) rollback force '7.77.49694';
만일 위 command를 실행하여 ORA-02058 error가 발생하면 procedure를 실행.
(6) 다음과 같이 stored procedure를 실행하여 pending tnx을 kill 시킨다.
SQL>executesys.dbms_transaction.purge_lost_db_entry ('LOCAL_TRAN_ID')
예) execute sys.dbms_transaction.purge_lost_db_entry ('7.77.49694')
SQL>rollback force 'LOCAL_TRAN_ID';
예) rollback force '7.77.49694';
만일 위 command를 실행하여 ORA-02058 error가 발생하면 procedure를 실행.
(6) 다음과 같이 stored procedure를 실행하여 pending tnx을 kill 시킨다.
SQL>executesys.dbms_transaction.purge_lost_db_entry ('LOCAL_TRAN_ID')
예) execute sys.dbms_transaction.purge_lost_db_entry ('7.77.49694')
(7) dba_2pc_pending으로 정상여부 확인.
execute sys.dbms_transaction.purge_lost_db_entry ('LOCAL_TRAN_ID') 이 명령어로 해당 in_doubt_transaction을 삭제해주시면 됩니다.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22606628/viewspace-750065/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22606628/viewspace-750065/