Oracle Recycle Bin

2025. 1. 11. 21:53DBMS/ORACLE Admin

반응형
 
 


삭제된 객체는 모두 Recycle Bin으로 이동되고 Recycle Bin은 SYSTEM 테이블스페이스 내에 RECYCLEBIN$라는 테이블로 구현된다. 테이블이 삭제될 때, 테이블의 이름은 SYS.OBJ$에서 변경되며 RECYCLEBIN 테이블에 행(row)이 삽입된다. 이 행에는 다음 정보가 포함된다:

  • 원래 테이블 이름
  • 객체 ID
  • 소유자
  • 삭제 시간

 

Oracle 데이터베이스에서 Recycle Bin은 삭제된 객체를 영구적으로 삭제하는 대신 잠시 보관하는 역할을 한다. 이는 실수로 삭제된 객체를 복구할 수 있도록 돕는다.

  1. 삭제된 객체의 이동:
    • 사용자가 테이블을 삭제하면, 해당 테이블은 Recycle Bin으로 이동된다. 데이터베이스에서는 실제로 데이터를 완전히 삭제하지 않고, 해당 데이터를 RECYCLEBIN$라는 특별한 테이블에 보관한다.
    • 사용자가 테이블을 복구하려면 Recycle Bin에서 해당 객체를 복원하면 된다.
  2. SYS.OBJ$ 테이블에서 이름 변경:
    • 테이블이 삭제되면, 해당 테이블의 이름은 SYS.OBJ$ 테이블에서 변경된다. 이 테이블은 데이터베이스 내의 모든 객체들에 대한 정보를 포함하는 시스템 테이블로, 삭제된 객체를 추적할 수 있게 된다.
    • 이름이 변경된 테이블은 이제 Recycle Bin에 있는 객체로 간주된다.
  3. RECYCLEBIN$ 테이블:
    • RECYCLEBIN$ 테이블은 SYSTEM 테이블스페이스에 위치한 시스템 테이블로, 삭제된 객체들의 정보를 저장한다.
    • 이 테이블에는 삭제된 객체의 원래 이름, 객체 ID, 소유자, 삭제 시간 등의 정보가 포함되어 있어, 삭제된 객체가 언제, 누구에 의해 삭제되었는지 확인할 수 있다.
    • 사용자가 삭제된 객체를 복구하려면 이 테이블에서 필요한 정보를 찾아 복구 명령을 실행할 수 있다.
  4. 복구:
    • 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
  1. SYS.RECYCLEBIN$ 테이블:
    • DROPTIME: 객체가 삭제된 시간.
    • OBJ#: 삭제된 객체의 고유 식별자.
    • OWNER#: 객체의 소유자.
    • ORIGINAL_NAME: 삭제되기 전의 원래 객체 이름.
    예시에서, FOOBAR라는 테이블은 2007년 8월 16일 09:27:45에 삭제되었고, 해당 객체는 OBJ# 53137이라는 고유 식별자를 가진다. 또한, OWNER# 104는 객체의 소유자를 나타낸다.
  2. 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