Oracle Recycle Bin
2025. 1. 11. 21:53ㆍDBMS/ORACLE Admin
반응형
삭제된 객체는 모두 Recycle Bin으로 이동되고 Recycle Bin은 SYSTEM 테이블스페이스 내에 RECYCLEBIN$라는 테이블로 구현된다. 테이블이 삭제될 때, 테이블의 이름은 SYS.OBJ$에서 변경되며 RECYCLEBIN 테이블에 행(row)이 삽입된다. 이 행에는 다음 정보가 포함된다:
- 원래 테이블 이름
- 객체 ID
- 소유자
- 삭제 시간
Oracle 데이터베이스에서 Recycle Bin은 삭제된 객체를 영구적으로 삭제하는 대신 잠시 보관하는 역할을 한다. 이는 실수로 삭제된 객체를 복구할 수 있도록 돕는다.
- 삭제된 객체의 이동:
- 사용자가 테이블을 삭제하면, 해당 테이블은 Recycle Bin으로 이동된다. 데이터베이스에서는 실제로 데이터를 완전히 삭제하지 않고, 해당 데이터를 RECYCLEBIN$라는 특별한 테이블에 보관한다.
- 사용자가 테이블을 복구하려면 Recycle Bin에서 해당 객체를 복원하면 된다.
- SYS.OBJ$ 테이블에서 이름 변경:
- 테이블이 삭제되면, 해당 테이블의 이름은 SYS.OBJ$ 테이블에서 변경된다. 이 테이블은 데이터베이스 내의 모든 객체들에 대한 정보를 포함하는 시스템 테이블로, 삭제된 객체를 추적할 수 있게 된다.
- 이름이 변경된 테이블은 이제 Recycle Bin에 있는 객체로 간주된다.
- RECYCLEBIN$ 테이블:
- RECYCLEBIN$ 테이블은 SYSTEM 테이블스페이스에 위치한 시스템 테이블로, 삭제된 객체들의 정보를 저장한다.
- 이 테이블에는 삭제된 객체의 원래 이름, 객체 ID, 소유자, 삭제 시간 등의 정보가 포함되어 있어, 삭제된 객체가 언제, 누구에 의해 삭제되었는지 확인할 수 있다.
- 사용자가 삭제된 객체를 복구하려면 이 테이블에서 필요한 정보를 찾아 복구 명령을 실행할 수 있다.
- 복구:
- Recycle Bin에서 객체를 복구하려면, FLASHBACK을 사용하여 해당 객체를 원래 상태로 되돌릴 수 있다.
Recycle Bin과 SYS.OBJ$ 및 SYS.RECYCLEBIN$ 테이블의 관계
SQL> SELECT DROPTIME, OBJ#, OWNER#, ORIGINAL_NAME
FROM SYS.RECYCLEBIN;
결과:
DROPTIME OBJ# OWNER# ORIGINAL_NAME
2007-08-16 09:27:45 53137 104 FOOBAR
SQL> SELECT MTIME, OBJ#, OWNER#, NAME FROM SYS.OBJ$
WHERE OBJ# = 53137;
결과:
MTIME OBJ# OWNER# NAME
2007-08-16 09:27:46 53137 104 BINSUINZZ2RSWgPAOcvwnmQg--so
- SYS.RECYCLEBIN$ 테이블:
- DROPTIME: 객체가 삭제된 시간.
- OBJ#: 삭제된 객체의 고유 식별자.
- OWNER#: 객체의 소유자.
- ORIGINAL_NAME: 삭제되기 전의 원래 객체 이름.
- SYS.OBJ$ 테이블:
- MTIME: 객체의 마지막 수정 시간.
- OBJ#: 객체의 고유 식별자.
- OWNER#: 객체의 소유자.
- NAME: 객체의 현재 이름.
반응형
'DBMS > ORACLE Admin' 카테고리의 다른 글
Flashback Queries (0) | 2025.01.11 |
---|---|
자동 undo 관리 (0) | 2025.01.11 |
Redo Log Files와 Archived Redo Log Files (0) | 2025.01.11 |
DBMS가 복잡해지는 이유 | 다양한 기능 (0) | 2025.01.11 |
언두 데이터의 읽기 일관성 (0) | 2025.01.11 |