[Oracle]Flashback, Flashback drop 플래시백
실수로 중요한 데이터를 변경하고 커밋을 눌러버렸다...
이럴때 일시적으로 되돌아갈 수 있는 방법이 바로 플래시백 flashback입니다.
일시적으로 돌아가는것이기 때문에 돌아간뒤 데이터를 다른테이블에 저장해놓고
돌아와서 실제 테이블에 적용시켜주면 복구를 할 수 있죠 ㅎ
주의할점을 플래시백은 4시간정도 뒤 시간으로 돌아갈수 있지 하루정도 지나면 안됩니다. ㅎ
실습을 위해서 empno가 7839인 사원의 sal를 확인해보겠습니다. 20000이네요
돌아가기위해서 현재시간을 확인해보겠습니다.
sal을 반값으로 줄여버리고 커밋을 해버렸습니다.
이제 7839 사원은 연봉이 반절로 줄었네요 ㅋㅋㅋ
조회해보니 반절로 줄었습니다 ㅜ
플래시백을 사용하기위해선 이와같은 쿼리를 날려주셔야합니다.
연봉을 삭감하기전 시간으로 돌아가보겠습니다.
다시 연봉이 20000으로 돌아왔군요 ㅎ
이를 저장하기위해서 임시테이블을 만들어서 저장하겠습니다.
플래시백을 한뒤에는 테이블이 최종적으로 바뀐 뒤의 시점으로 다시 돌아가야합니다.
연봉을 삭감했을 시간으로 다시 돌아가겠습니다.
이제 임시로 만들었던 test테이블에 저장했던 데이터를 넣어주면 복구가 되겠죠~
Flashback drop
이번엔 Flashback drop을 알아보도록하겠습니다.
윈도우에서 파일을 지우면 휴지통에 들어가듯이 DBMS에서도
테이블을 지우면 휴지통에 들어가게 됩니다. 그래서 복구도 가능하죠~
임시로 테이블을 만들어서 지워보겠습니다.
TY라는 테이블을 만들고 지웠습니다.
user_recyclebin을 보시면 지원던 테이블 목록들이 들어가게 되있습니다.
테이블을 지웠기 때문에 테이블조회를 하자 오류가나죠
지웠던 ty테이블을 살려보겠습니다.
위와같은 쿼리로 복구를 할 수 있습니다.
이제 테이블이 살아난것을 확인할 수 있죠
이것은 휴지통을 지우듯이 user_recyclebin에 있는 목록을 삭제하는 문법입니다.
예시로 하나 해보면 users 테이블스페이스에 해당하는 목록을 지워보겠습니다.
user_recyclebin을 조회하자 전부 삭제가 된걸 볼 수 있습니다.
플래시백기능 잘만 사용한다면 정말 유용하겠죠
'컴퓨터 > Oracle' 카테고리의 다른 글
[Oracle]Temp tablespace group 임시테이블그룹 (0) | 2014.07.15 |
---|---|
[Oracle]User tablepace설정 설계 관리 (0) | 2014.07.15 |
[Oracle]Row chaining, Row migration 로우체이닝 로우마이그레이션 (0) | 2014.07.14 |
[Oracle]UNDO SEGMENT 관리 언두세그먼트 (0) | 2014.07.14 |
[Oracle]Log file 관리 archive mode (0) | 2014.07.14 |
댓글