Table of Contents |
---|
롤백(rollback) 중인 쿼리
개요
...
변경 트랜잭션이 수행 중일 때 해당 세션을 강제로 끊거나 세션 타임 아웃 설정에 의해 트랜잭션이 중단된 경우 해당 트랜잭션은 롤백(ROLLBACK)이 진행됩니다.
다음은 롤백 중인 쿼리를 확인하는 방법입니다.
대상버전
ALTIBASE HDB
버전
...
Altibase 5.1.5 이상 버전에서 가능합니다.
확인 방법
...
ALTIBASE HDB 5.1.5 이상 버전에서 모두 사용가능한 방법
...
롤백 전에 수행된 변경 트랜잭션이 logfile 1 ~ logilfe 10 까지 기록되었다면 롤백 시 undo 는 logfile 10 부터 진행되기 때문에 CURRENT_UNDO_NEXT_LSN 으로 시작하는 컬럼의 값이 줄어든다는 것으로 롤백이 수행 중임을 알 수 있습니다.
Panel | ||
---|---|---|
Code Block | ||
| ||
SELECT tx.ID TX_ID, tx.SESSION_ID, tx.STATUS,decode DECODE(tx.first FIRST_update UPDATE_time TIME, 0, '0',to TO_char CHAR(to TO_date DATE('1970010109', 'YYYYMMDDHH') + tx.first FIRST_update UPDATE_time TIME / (60*60*24), 'MM/DD HH:MI:SS'))first FIRST_update UPDATE_time, st.total_time/1000000 total, TIME, st.TOTAL_TIME/1000000 TOTAL, tx.CURRENT_UNDO_NEXT_LSN_FILENO, tx.CURRENT_UNDO_NEXT_LSN_OFFSET, substr(query, 1, 100) query FROM v$TRANSACTION tx, v$STATEMENT st WHERE tx.id = st.tx_id AND tx.session_id <> session_id(); TX_ID : 320257 SESSION_ID : 3 STATUS : 4 FIRST_UPDATE_TIME : 01/22 16:09:55 TOTAL : 0 CURRENT_UNDO_NEXT_LSN_FILENO : 2 CURRENT_UNDO_NEXT_LSN_OFFSET : 9698464 QUERY : update disk_t1 set c1 = 'aaaaaaa' ;
SUBSTR(QUERY, 1, 100) QUERY
FROM V$TRANSACTION tx,
V$STATEMENT st
WHERE tx.ID = st.TX_ID
AND tx.SESSION_ID <> SESSION_ID(); |
- 해당 쿼리가 수행한 시각은 FIRST_UPDATE_TIME
- 롤백 시작 시각은 FIRST_UPDATE_TIME + TOTAL
...