본문 바로가기

Oracle/admin

2pc_pending

db_link등의 트랜잭션 처리중 연결이 끊어지고 계속 rollback을 시도중인경우에 조회하여 purge 해야함.
trace 파일명에 reco 가 많이 쌓이는 경우 조회해 봐야함.

SYS> SELECT LOCAL_TRAN_ID, GLOBAL_TRAN_ID,to_char(FAIL_TIME,'dd-mon-yyyy HH24:MI:SS'),STATE, MIXED
         FROM DBA_2PC_PENDING;
 
LOCAL_TRAN_ID                            GLOBAL_TRAN_ID                           TO_CHAR(FAIL_TIME,'DD-M STATE            MIX
---------------------------------------- ---------------------------------------- -----------------------
68.26.9771                               DYAMS11P.7e048ab7.68.26.9771             01-jul-2011 21:45:18    collecting       no
 
Elapsed: 00:00:00.00
 
SYS> EXECUTE DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY ('68.26.9771');
 
PL/SQL procedure successfully completed.
 
Elapsed: 00:00:00.06
 
SYS> commit;
 
Commit complete.

LOCAL_TRAN_ID는 Alert!.log에 분산 트랜잭션 에러와 함께 나타난다.

 =>. DBA_2PC_NEIGHBORS 뷰를 조회한다.

2. COMMIT FORCE 명령어

[예제]

SCN : 88123887 Local Transaction ID : 1.13.5197 (from dba_2pc_pending,alert!.log)

 SQL> COMMIT FORCE 'your local transactionID on this node',
 'highest SCN from already committed site';
 SQL> COMMIT FORCE '1.13.5197', '88123887';


 3 ROLLBACK FORCE command

 [예제]

Local Transaction ID : 1.13.5197 (from dba_2pc_pending or alert!.log)

 SQL> ROLLBACK FORCE 'your local transactionID on this node';

 SQL> ROLLBACK FORCE '1.13.5197';

'Oracle > admin' 카테고리의 다른 글

Oracle option  (0) 2016.06.13
audit 자동 통계수집 disable  (0) 2016.06.13
ADMIN 점검 사항  (0) 2016.06.13
성능 분석 View  (0) 2016.06.13
Keep Buffer 대상 선정 SQL  (0) 2016.06.13