DBAtlas · Atlas für Datenbankbetrieb

Einzelne Tabelle aus einem RMAN-Backup auf einen früheren Zeitpunkt wiederherstellen (RECOVER TABLE)

OracleRMAN

Befehl

# 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;

Was es tut

RMAN stellt eine automatische Hilfsinstanz bis zum gewünschten Zeitpunkt wieder her, exportiert die Tabelle (oder Partition) mit Data Pump und importiert sie mit REMAP unter anderem Namen in die Zieldatenbank; anschließend wird die Hilfsinstanz entfernt.

Wann einsetzen

Um die Daten einer einzelnen Tabelle wiederherzustellen, die versehentlich gelöscht/geändert oder mit PURGE gedroppt wurde, über das hinaus, was die Undo Retention für Flashback Table/Query erlaubt.

Vorsicht

AUXILIARY DESTINATION braucht freien Platz für SYSTEM, SYSAUX, UNDO und den Tablespace der Tabelle; der Vorgang kann Stunden dauern. Ohne REMAP TABLE schlägt der Vorgang fehl, wenn eine Tabelle gleichen Namens existiert; verwende immer REMAP oder NOTABLEIMPORT, um das Original nicht zu überschreiben. Tabellen in den Schemas SYS/SYSTEM und in den Tablespaces SYSTEM/SYSAUX lassen sich so nicht wiederherstellen. Erfordert die Enterprise Edition.

In DBAtlas öffnen →

Verwandte Einträge