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が自動補助インスタンスを指定時刻までリカバリし、表(またはパーティション)をData Pumpでエクスポートし、REMAPで別名としてターゲットデータベースにインポートする。その後、補助インスタンスは削除される。
使用する場面
誤って削除/更新された、またはPURGE付きで削除された単一表のデータを、Flashback Table/QueryのUNDO保存期間を超えてリカバリするため。
注意
AUXILIARY DESTINATIONにはSYSTEM、SYSAUX、UNDO、および表の表領域分の空き領域が必要。操作には数時間かかる場合がある。REMAP TABLEなしでは同名の表が存在すると操作は失敗する。元の表の上書きを避けるため、常にREMAPまたはNOTABLEIMPORTを使用する。SYS/SYSTEMスキーマの表、およびSYSTEM/SYSAUX表領域の表はこの方法ではリカバリできない。Enterprise Editionが必要。