RMAN 백업에서 단일 테이블을 과거 시점으로 복구(RECOVER TABLE)
OracleRMAN명령어
# Restore under a new name (the original table is not touched):
RECOVER TABLE hr.employees
UNTIL TIME "TO_DATE('2026-01-15 03:00:00','YYYY-MM-DD HH24:MI:SS')"
AUXILIARY DESTINATION '/u03/aux'
REMAP TABLE hr.employees:employees_rec;
# Multitenant: a table inside a PDB
RECOVER TABLE hr.employees OF PLUGGABLE DATABASE <pdb>
UNTIL SCN 12345678
AUXILIARY DESTINATION '/u03/aux'
REMAP TABLE hr.employees:employees_rec;
# Only produce a Data Pump dump, do not import:
RECOVER TABLE hr.employees
UNTIL SCN 12345678
AUXILIARY DESTINATION '/u03/aux'
DATAPUMP DESTINATION '/u03/dump'
DUMP FILE 'employees_rec.dmp'
NOTABLEIMPORT;하는 일
RMAN이 자동 auxiliary 인스턴스를 요청한 시점으로 복구하고, 테이블(또는 파티션)을 Data Pump로 export하여 REMAP으로 다른 이름으로 대상 데이터베이스에 import한다. 이후 auxiliary 인스턴스는 제거된다.
사용 시점
실수로 삭제/갱신되었거나 PURGE로 drop된 단일 테이블의 데이터를 Flashback Table/Query의 undo 보존 범위를 넘어 복구할 때.
주의
AUXILIARY DESTINATION에는 SYSTEM, SYSAUX, UNDO와 테이블의 테이블스페이스만큼의 여유 공간이 필요하며 작업은 몇 시간 걸릴 수 있다. REMAP TABLE 없이 같은 이름의 테이블이 있으면 작업이 실패한다. 원본을 덮어쓰지 않도록 항상 REMAP 또는 NOTABLEIMPORT를 사용한다. SYS/SYSTEM 스키마의 테이블과 SYSTEM/SYSAUX 테이블스페이스의 테이블은 이 방법으로 복구할 수 없다. Enterprise Edition이 필요하다.