Innovating today, leading tomorrow

Tibero - 백업,복구
[Tibero] DROP TABLE 명령으로 삭제된 테이블 복구_Recycle Bin 활용 (1)

[Tibero] DROP TABLE 명령으로 삭제된 테이블 복구_Recycle Bin 활용 (1)

본 문서는 Recyclebin을 활용하여 DROP TABLE 명령으로 삭제된 테이블을 복구하는 방법을 안내합니다.

1. 개요

사용자의 실수로 테이블이 삭제되었을 때, 휴지통 기능을 활용하면 긴급 상황에서 테이블을 신속히 복구 할 수 있습니다.

ex) 아래와 같이 신속한 복구가 가능합니다.

  • 실수로 “EMP” 테이블을 삭제
SQL> DROP TABLE EMP;
  • 테이블 조회 시 장애 발생
SQL> SELECT * FROM EMP;  -- 에러   발생!!

TBR-8033: Specified schema object was not found.
  • RECYCLEBIN 조회
SQL> SELECT OWNER, OBJECT_NAME, TYPE, TS_NAME, DROPTIME 
          FROM  DBA_RECYCLEBIN 
          WHERE ORIGINAL_NAME='T100';

OWNER      OBJECT_NAME          TYPE    TS_NAME    DROPTIME
-----------     ----------------------        --------   -------------   ---------------------------- 
EDU            EDU_TBL285600       TABLE   TBS_EDU    2020-09-08:05:28:14
  • “EMP” 테이블을 신속히 복구
SQL> FLASHBACK TABLE EMP TO BEFORE DROP; 

SQL> SELECT * FROM EMP;  -- 정상적으로   수행됨!!

2. Issue Case Study

2.1. 테이블 삭제와 복구

테이블 삭제 시, 휴지통 기능이 활성화 되어 있을 경우 다음과 같이 동작합니다.

  • 파라미터 USE_RECYCLEBIN 값이 Y 로 설정되어 있을 경우 RECYCLEBIN 에 오브젝트가 저장됩니다.
  • 테이블을 제거 하지 않고 이름과 상태를 변경합니다. (삭제 전 테이블 이름을 별도 저장합니다.)
  • 테이블, 인덱스, 제약조건의 이름이 시스템에서 부여하는 이름으로 변경됩니다.
  • 테이블스페이스에서 세그먼트가 유지되며, 이름만 바뀝니다.
  • 외래키 제약조건은 제거됩니다.

2.1.1. RECYCLE BIN 이란

  • Recycle Bin(휴지통)은 Drop 된 테이블들을 삭제 처리 하지 않고 보관함으로써 사용자의 실수로부터 삭제된 테이블을 신속히 복구하기 위한 역할을 수행합니다.
  • Drop 된 테이블이 Recycle Bin으로 이동될 때, 그것과 연관된 객체와 제약 조건들은 이름이 변경됩니다. (이후에 생성되는 테이블과의 이름이 충돌 되는 것을 방지하기 위해서 입니다.)
  • Recycyle Bin 자체는 데이터 딕셔너리이며, 사용자는 DBA_RECYCLEBIN 뷰를 통해 Recycle Bin 에 있는 테이블 리스트를 조회 할 수 있습니다.
  • Recycyle Bin 기능이 활성화 되어 있을 경우, DROP TABLE tableName PURGE; 구문을 통해 휴지통으로 이동하지 않고 완전히 삭제할 수 있습니다.
  • Drop 된 테이블은 기존 테이블스페이스의 공간을 사용하면서 계속 존재하며, PURGE TABLE tableName; 구문을 통해 휴지통에서 제거할 수 있습니다.
  • 휴지통을 완전히 비울 시 PURGE RECYCLEBIN; 를 수행합니다.

2.1.2. 삭제한 테이블 조회

삭제한 테이블은 RECYCLE BIN 에서 다음과 같이 확인 할 수 있습니다.

  • DBA_RECYCLEBIN 에서 삭제한 테이블을 조회합니다.
  • DBA_TABLES, DBA_INDEXES 에서는 테이블이 더 이상 조회가 안 됩니다.
  • DBA_OBJECTS 에서 시스템에서 부여한 변경된 OBJECT_NAME 으로 조회 됩니다. (STATUS 값은 INVALID)
    (변경된 이름은 Ownername_tblSeqNum 형식으로 SeqNum 는 계속 sequence 에 의해 증가 됩니다.)
  • DBA_SEGMENTS 에서 시스템에서 변경된 SEGMENT_NAME 으로 조회 됩니다.

2.1.3. 복구 방법

다음 구문으로 복구할 수 있습니다. => FLASHBACK TABLE tableName TO BEFORE DROP;

예) FLASHBACK TABLE EDU.T100 TO BEFORE DROP;

다른 이름으로 복구 할 수 있습니다. => FLASHBACK TABLE tableName TO BEFORE DROP RENAME TO tableName;

예) FLASHBACK TABLE EDU.T100 TO BEFORE DROP RENAME TO T101;

  • 테이블이 복원되면 인덱스, 제약조건 등 관련된 오브젝트들도 같이 복원됩니다.
  • 테이블을 복원하면 테이블의 이름은 이전 상태로 복구되거나 지정한 대로 변경됩니다.
  • 인덱스, 제약조건의 이름은 원래의 이름으로 복구되지 않습니다.
  • 외래키는 복구 되지 않습니다.

2.1.4. 복구가 불가능한 경우

다음과 같은 경우에는 USE_RECYCLEBIN 을 Y 로 설정하더라도 RECYCLEBIN 으로 오브젝트가 들어가지 않아 FLASHBACK TABLE 이 불가능합니다.

  • EMP 테이블을YS 계정의 오브젝트를 DROP 할 경우 DROP 할 경우
  • S – ALTER MOVE 한 경우 원본 테이블

광고성 정보 수신

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다.
내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보
  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
 

개인정보 수집 및 이용

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다. 내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보

  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
  •