오라클 drop 된 테이블 복원 ( Flashback ) Recycle Bin 에서 객체제거
실수로 삭제하지 않아야 할 테이블을 삭제했을 경우 당혹스러울 때가 있는데 오라클에서는 drop 된 테이블도 복원할 수 있는 기능이 있습니다.
바로 Flashback 이라는 기능인데 테이블을 drop 할 때 데이터베이스는 테이블과 연관된 공간을 바로 제거하지는 않습니다.
데이터베이스는 테이블의 이름을 변경하여 관련 오브젝트를 Recycle Bin에 넣습니다.
위에서 말한대로 사용자가 실수로 테이블을 drop 했을 때 복구할 수 있습니다.
이 기능을 Flashback Drop 이라고하며 FLASHBACK TABLE 문을 사용하여 테이블을 복원 가능합니다.
FLASHBACK TABLE 문을 사용하기 전에 Recycle Bin의 작동 방식과 관리방법을 이해하도록 하겠습니다.
FlashBack 에 대한 내용은 4가지 주제로 구성됩니다.
2. Recycle Bin 에 있는 객체 조회 및 쿼리방법
3. Recycle Bin 에 있는 객체 제거
3. Recycle Bin 에서 객체제거
Recycle Bin 에서 객체를 복원하지 않고 Recycle Bin 의 객체를 제거하고 저장공간을 확보하려면 PURGE 문을 사용하면됩니다.
이 때 권한은 항목을 삭제하는 것과 동일한 권한이 필요합니다.
PURGE 문을 사용하여 테이블을 제거하면 Recycle Bin이나 테이블의 원래 이름에서 테이블을 알 수 있는 고유한 이름을 사용할 수 있습니다.
Recycle Bin 의 이름은 Recycle Bin 오브젝트에 있는 View 나 Query 에 표시된대로 DBA_RECYCLEBIN or USER_RECYCLEBIN View 에서 가져올 수 있습니다.
아래의 예시는 TB_USER_INFO 테이블을 Recycle Bin에 놓았을 때 BIN$Ulu8B5c+Oz3gUOABLqObkg==$0 의 이름으로 바뀝니다.
PURGE TABLE "BIN$Ulu8B5c+Oz3gUOABLqObkg==$0" ;
아래의 문장을 통해 동일한 결과를 얻을수 있습니다.
( 테이블이 DROP 되어 RECYCLEBIN 에 존재하는 경우 사용 가능합니다. )
PURGE TABLE TB_USER_INFO ;
테이블스페이스에 존재하는 모든 Recycle Bin 의 내용을 지우고 싶은 경우, 또는 지정한 사용자의 테이블스페이스의 객체에 있는 Recycle Bin의 내용을 제거할 수 있습니다.
PURGE TABLESPACE ts_01 ; PURGE TABLESPACE ts_01 USER scott ;
사용자는 아래의 문장을 사용하여 자신이 가진 객체의 Recycle Bin 을 제거하고 여유공간을 확보할 수 있습니다.
PUREGE RECYCLEBIN ;
SYSDBA 권한이 있는 경우 PURGE RECYCLEBIN 대신 PURGE DBA_RECYCLEBIN 을 입력하면 전체 Recycle Bin 을 제거할 수 있습니다.
위에서는 테이블을 삭제하였는데 PURGE 문을 사용하면 Recycle Bin 에서 Index 를 제거하거나 지정된 테이블스페이스에 있는 모든 오브젝트를 Recycle Bin에서 제거할 수 있습니다.
'IT > Oracle' 카테고리의 다른 글
오라클 LOCK 걸린 개체 확인 및 LOCK 해제 (10) | 2017.06.25 |
---|---|
오라클 drop 된 테이블 복원 ( Flashback ) Recycle Bin 에서 테이블 복원 (4) | 2017.06.24 |
오라클 drop 된 테이블 복원 ( Flashback ) Recycle Bin 에 있는 객체 조회 및 쿼리방법 (2) | 2017.06.22 |
오라클 drop 된 테이블 복원 ( Flashback ) Recycle Bin 이란 무엇인가 (0) | 2017.06.21 |
오라클 SQL 튜닝 by Nested Loops Join (0) | 2017.06.20 |