-
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