이번글에서 알아볼 Transaction Query는 우리가 이미 행한 트랜잭션에 대해서 Undo 데이터를 통한 Undo SQL 문장을 보여줍니다.
이 트랜잭션 쿼리를 이용하기 위해서는 우선 사용할 계정에 대해서 'select any transaction' 권한이 존재해야 합니다.
권한을 확인후 진행합니다. 없다면 다음과 같이 부여합시다.
관리자 권한으로 접속후 다음을 입력합니다.
SQL> GRANT SELECT ANY TRANSACTION TO hr;
권한 관련 글을 다음 링크를 참고하시면 되겠습니다.
권한 설정 관련 글 확인하기
우선 상황을 만들기 위해서 다음과 같이 업데이트를 여러번 해줍니다.
[실행화면]
[실행화면]
[실행화면]
[실행화면]
같은 로우(ROW)에 대해서 여러번 업데이트를 진행하고 commit작업을 해줬습니다.
그렇다면 Version Query 를 통해 scn 을 조회해 보겠습니다.
[실행화면]
살펴보니 맽 밑으로부터 작업이 되었군요. scn값 1264877부터 1264966까지 Tranaction Query로 Undo 데이터를 조회해보겠습니다.
FLASHBACK_TRANSACTION_QUERY는 뷰이기 때문에 FROM에 위치합니다.
마지막 UNDO_SQL에는 데이터를 되돌릴 수 있는 SQL 문이 저장되어 있습니다.
그래도 써주게 되면 한단계씩 복구가 가능합니다.
[실행화면]
UNDO_SQL을 보시게 되면 ROWID가 표시되는데 ROWID로 통해서 해당 로우에 직접 접근(Access) 합니다.
도움 되셨다면 밑의 추천(손가락 표시)과 댓글 부탁드립니다. |
'데이터베이스 > 오라클' 카테고리의 다른 글
[오라클]플래쉬백(Flashback)을 통한 데이터 복구 -4 (TABLE LEVEL FLASHBACK, 휴지통(RECYCLE BIN)) (0) | 2011.08.14 |
---|---|
[오라클]플래쉬백(Flashback)을 통한 데이터 복구 -3 (TABLE LEVEL FLASHBACK, Flashback Transaction Query) (3) | 2011.08.14 |
[오라클]플래쉬백(Flashback)을 통한 데이터 복구 -1 (ROW LEVEL FLASHBACK, Flashback Verision Query) (0) | 2011.08.13 |
[오라클] 아카이브 로그 모드(Archive log mode)로 전환하기 (0) | 2011.08.11 |
[오라클] 오라클의 기동상태(시작과 종료) (0) | 2011.08.08 |