ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Recycle bin 테이블 복구와 종속 Object 복구 관계
    SQL/Admin SQL 2023. 6. 8. 00:31

    1. EMP3 테이블 복사 (스키마, 데이터)

    CREATE TABLE emp3
    AS
    SELECT employee_id, last_name,
              salary*12 ANSSAL, hire_date
    FROM hr.employees
    WHERE department_id = 80;

     

     

    2. EMP3 테이블에 PK 정의

    * 오라클은 테이블 정의시 PK와 UK 정의시 인덱스 자동생성

    ALTER TABLE emp3
    MODIFY (EMPLOYEE_ID CONSTRAINT EMP3_EMPLOYEEID_PK PRIMARY KEY);

     

     

    3. 인덱스 조회
    SELECT *
    FROM all_ind_columns
    WHERE INDEX_OWNER='HR'
    AND TABLE_NAME = 'EMP3';

     

     

    4. EMP3 테이블 DROP

    DROP TABLE emp3;

     

    5.인덱스와, 테이블 삭제 확인

     

     

    6.RECYCLE BIN 확인

    SELECT object_name, original_name, operation, droptime FROM recyclebin;

    --> 테이블과, PK인덱스가 모두 RECYCLE BIN으로 이동한 것을 확인

     

     

    7. FLASHBACK DROP

    FLASHBACK TABLE emp3 TO BEFORE DROP;

    --> RECYCLE BIN 조회 시 최근에 삭제된 EMP3를 복구

     

     

    8. 재조회

    SELECT * FROM EMP3;
    SELECT *
    FROM all_ind_columns
    WHERE INDEX_OWNER='HR'
    AND TABLE_NAME = 'EMP3';

    --> Recycle bin 에서 테이블 복원 시

    인덱스 같은 종속 객체는 원래 이름을 가져오지 않는다.

    종속 객체는 시스템에서 생성한 Recycle Bin의 OBJECT_NAME을 유지한다.

    원본 이름으로 변경하려면 종속 객체의 이름을 수동으로 변경해야한다.

    원본 이름은 테이블 복원 전 각 종속 객체의 시스템에서 생성한 Recycle bin의 ORIGINAL_NAME을 기반으로 기록해 둔다.

     

     

    9. 인덱스 명 변경 후 조회

    ALTER INDEX
    "BIN$/YyCcnzuC6HgU2U4qMCCyg==$0"
    RENAME TO
    EMP3_EMPLOYEEID_PK;
    SELECT *
    FROM all_ind_columns
    WHERE INDEX_OWNER='HR'
    AND TABLE_NAME = 'EMP3';

    --> 원래 인덱스 명으로 변경

     

     

    'SQL > Admin SQL' 카테고리의 다른 글

    SQL Index 관리 및 테이블 DROP할 경우 인덱스는?  (0) 2023.09.05
Designed by Tistory.