DBAtlas · データベース運用アトラス

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が必要。

DBAtlas で開く →

関連項目