반응형
관련 뷰
- USER_RECYCLE_BIN : 사용자 자신이 DROP한 오브젝트를 보기위한 뷰, recyclebin이라는 SYNONYM(동의어) 을 가진다
- DBA_RECYCLEBIN : 관리자가 DROP된 모든 오브젝트를 볼수 있다.
Recyclebin 오브젝트의 네이밍 규칙
- Recylebin의 오브젝트이름은 동일 이름 충돌을 방지하기 위해 고유이름을 사용
BIN$unique_id$version 예) BIN$mbcG+39oA+7gVAgAJ+VJPA==$0 |
1. RECYCLEBIN 조회/활성화/비활성화
Syntax)
- 조회 select * from recyclebin ; - 활성화/비활성화(세션 레벨) SQL> alter session set recyclebin=on ; SQL> alter session set recyclebin=off ; - 활성화(시스템 레벨) SQL> show parameter recyclebin ; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ recyclebin string OFF SQL> alter system set recyclebin=on scope=spfile ; 시스템이 변경되었습니다. SQL> shutdown immediate 데이터베이스가 닫혔습니다. 데이터베이스가 마운트 해제되었습니다. ORACLE 인스턴스가 종료되었습니다. SQL> startup ORACLE 인스턴스가 시작되었습니다. Total System Global Area 3423965184 bytes Fixed Size 2215824 bytes Variable Size 1862271088 bytes Database Buffers 1543503872 bytes Redo Buffers 15974400 bytes 데이터베이스가 마운트되었습니다. 데이터베이스가 열렸습니다. SQL> show parameter recyclebin ; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ recyclebin string ON SQL> |
예)
SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- T1 TABLE T2 TABLE SQL> alter session set recyclebin=on ; => recyclebin 활성화 세션이 변경되었습니다. SQL> select * from recyclebin ; => recyclebin 조회 선택된 레코드가 없습니다.. SQL> drop table t1 ; 테이블이 삭제되었습니다. SQL> select * from recyclebin ; => 삭제된 T1 테이블을 recyclebin에서 확인 가능 OBJECT_NAME ORIGINAL_NAME OPERATION ------------------------------ -------------------------------- --------- TYPE TS_NAME CREATETIME ------------------------- ------------------------------ ------------------- DROPTIME DROPSCN PARTITION_NAME CAN CAN ------------------- ---------- -------------------------------- --- --- RELATED BASE_OBJECT PURGE_OBJECT SPACE ---------- ----------- ------------ ---------- BIN$mbcG+39oA+7gVAgAJ+VJPA==$0 T1 DROP TABLE USERS 2019-12-15:13:08:23 2019-12-15:13:09:19 1081338 YES YES 74109 74109 74109 0 SQL> alter session set recyclebin=off ; => recyclebin 비활성화 세션이 변경되었습니다. SQL> drop table t2 ; 테이블이 삭제되었습니다. SQL> select * from recyclebin ; => 삭제된 T2 테이블이 recyclebin에 보관없이 바로 삭제됨 OBJECT_NAME ORIGINAL_NAME OPERATION ------------------------------ -------------------------------- --------- TYPE TS_NAME CREATETIME ------------------------- ------------------------------ ------------------- DROPTIME DROPSCN PARTITION_NAME CAN CAN ------------------- ---------- -------------------------------- --- --- RELATED BASE_OBJECT PURGE_OBJECT SPACE ---------- ----------- ------------ ---------- BIN$mbcG+39oA+7gVAgAJ+VJPA==$0 T1 DROP TABLE USERS 2019-12-15:13:08:23 2019-12-15:13:09:19 1081338 YES YES 74109 74109 74109 0 SQL> |
2. RECYCLEBIN OBJECT 조회/복구/삭제
2.1 Recyclebin object 조회
SQL> select * from t1 ; ID NAME AGE ---------- -------------------- ---------- a kim 30 b ryu 29 c bae 20 SQL> drop table t1 ; 테이블이 삭제되었습니다.. SQL> select * from recyclebin ; OBJECT_NAME ORIGINAL_NAME OPERATION ------------------------------ -------------------------------- --------- TYPE TS_NAME CREATETIME ------------------------- ------------------------------ ------------------- DROPTIME DROPSCN PARTITION_NAME CAN CAN ------------------- ---------- -------------------------------- --- --- RELATED BASE_OBJECT PURGE_OBJECT SPACE ---------- ----------- ------------ ---------- BIN$mbxDY1GbBpDgVAgAJ+VJPA==$0 T1 DROP TABLE USERS 2019-12-15:19:06:12 2019-12-15:19:07:32 1095319 YES YES 74123 74123 74123 8 SQL>select * from "BIN$mbxDY1GbBpDgVAgAJ+VJPA==$0" ; => Recyclebin 내의 오브젝트에 쿼리 ID NAME AGE ---------- -------------------- ---------- a kim 30 b ryu 29 c bae 20 SQL> |
2.2 Recyclebin 오브젝트 복구
복구 1) ORIGINAL NAME 으로 복구
SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BIN$mbxDY1GbBpDgVAgAJ+VJPA==$0 TABLE SQL> FLASHBACK TABLE t1 TO BEFORE DROP RENAME TO t2 ; => t1 테이블을 t2로 이름으로 복구 플래쉬백이 완료되었습니다. SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- T2 TABLE SQL> select * from t2 ; ID NAME AGE ---------- -------------------- ---------- a kim 30 b ryu 29 c bae 20 SQL> |
복구 2) OBJECT_NAME으로 복구
SQL> select * from recyclebin ; OBJECT_NAME ORIGINAL_NAME OPERATION ------------------------------- --------------- --------- TYPE TS_NAME CREATETIME ------------------------- ------------------------------ ------------------- DROPTIME DROPSCN PARTITION_NAME CAN CAN ------------------- ---------- -------------------------------- --- --- RELATED BASE_OBJECT PURGE_OBJECT SPACE ---------- ----------- ------------ ---------- BIN$mbxDY1GlBpDgVAgAJ+VJPA==$0 T1 DROP TABLE USERS 2019-12-15:19:31:35 2019-12-15:19:37:54 1096542 YES YES 74126 74126 74126 8 SQL> FLASHBACK TABLE "BIN$mbxDY1GlBpDgVAgAJ+VJPA==$0" TO BEFORE DROP RENAME TO t2 ; 플래쉬백이 완료되었습니다. . SQL> select * from t2 ; ID NAME AGE ---------- -------------------- ---------- a aa 1 b bb 2 SQL> |
복구3) Reyclebin에 ORIGINAL_NME에 동일한 이름을 가진 OBJECT가 2개 이상 있을 경우 가장 최근 DROP 시간의 오브젝트를 복구
SQL> create table t1 (name varchar2(10),age number(3)) ; 테이블이 생성되었습니다. SQL> insert into t1 values ('a',1); 1 개의 행이 만들어졌습니다. SQL> drop table t1 ; 테이블이 삭제되었습니다. SQL> create table t1 (id varchar2(10) not null,name varchar2(20),age number(3)); 테이블이 생성되었습니다.. SQL> insert into t1 values ('a','aa',1) ; 1 개의 행이 만들어졌습니다. SQL> insert into t1 values ('b','bb',2) ; 1 개의 행이 만들어졌습니다. SQL> drop table t1 ; 1 개의 행이 만들어졌습니다. SQL> select * from recyclebin ; OBJECT_NAME ORIGINAL_NAME OPERATION ------------------------------ -------------------------------- --------- TYPE TS_NAME CREATETIME ------------------------- ------------------------------ ------------------- DROPTIME DROPSCN PARTITION_NAME CAN CAN ------------------- ---------- -------------------------------- --- --- RELATED BASE_OBJECT PURGE_OBJECT SPACE ---------- ----------- ------------ ---------- BIN$mbxDY1GjBpDgVAgAJ+VJPA==$0 T1 DROP TABLE USERS 2019-12-15:19:31:35 2019-12-15:19:32:11 1096373 YES YES 74126 74126 74126 8 OBJECT_NAME ORIGINAL_NAME OPERATION ------------------------------ -------------------------------- --------- TYPE TS_NAME CREATETIME ------------------------- ------------------------------ ------------------- DROPTIME DROPSCN PARTITION_NAME CAN CAN ------------------- ---------- -------------------------------- --- --- RELATED BASE_OBJECT PURGE_OBJECT SPACE ---------- ----------- ------------ ---------- BIN$mbxDY1GhBpDgVAgAJ+VJPA==$0 T1 DROP TABLE USERS 2019-12-15:19:30:23 2019-12-15:19:30:42 1096301 YES YES 74125 74125 74125 8 SQL> FLASHBACK TABLE t1 TO BEFORE DROP ; 플래쉬백이 완료되었습니다.. SQL> select * from t1 ; => DROPTIME 이 가장 최근인 오브젝트 복구 ID NAME AGE ---------- -------------------- ---------- a aa 1 b bb 2 SQL> |
2.3 Recyclebin 내의 오브젝트 삭제
SQL> select object_name,original_name,ts_name,droptime from recyclebin ; OBJECT_NAME ORIGINAL_NAME TS_NAME DROPTIME ------------------------------- --------------- -------- ------------------- BIN$mbxDY1GrBpDgVAgAJ+VJPA==$0 T1 USERS 2019-12-15:20:39:19 BIN$mbxDY1GtBpDgVAgAJ+VJPA==$0 T1 USERS 2019-12-15:20:43:27 SQL> PURGE TABLE "BIN$mbxDY1GtBpDgVAgAJ+VJPA==$0" ; => OBJECT_NAME 으로 삭제 테이블이 지워졌습니다. SQL> PURGE TABLE t1 ; => ORIGINAL_NAME으로 삭제 테이블이 지워졌습니다. SQL> PURGE TABLESPACE users ; => user 테이블스페이스에 속하는 모든 object 삭제 테이블이 지워졌습니다. SQL> PURGE TABLESPACE users t1 ; => user 테이블스페이스에 t1 테이블 삭제 테이블이 지워졌습니다. |
반응형
'DBMS > ORACLE' 카테고리의 다른 글
Fast Recovery Area 이란 (0) | 2019.12.16 |
---|---|
Flashback Database (0) | 2019.12.16 |
오라클 권한(Privilege)과 Role(역할) 조회/생성/부여/회수 (0) | 2019.12.14 |
오라클 객체 권한 조회/추가/회수 (0) | 2019.12.14 |
RMAN 데이타파일 복구 - ASM 환경 (0) | 2019.12.13 |