DBAtlas · Atlas de operaciones de bases de datos

Recuperar una sola tabla a un punto del pasado desde un backup de RMAN (RECOVER TABLE)

OracleRMAN

Comando

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

Qué hace

RMAN recupera una instancia auxiliar automática hasta la hora solicitada, exporta la tabla (o partición) con Data Pump y la importa en la base de datos de destino con otro nombre mediante REMAP; después la instancia auxiliar se elimina.

Cuándo usarlo

Para recuperar los datos de una sola tabla borrados/actualizados por error o eliminada con PURGE, más allá de lo que permite la undo retention de Flashback Table/Query.

Precaución

AUXILIARY DESTINATION necesita espacio libre para SYSTEM, SYSAUX, UNDO y el tablespace de la tabla; la operación puede tardar horas. Sin REMAP TABLE la operación falla si existe una tabla con el mismo nombre; use siempre REMAP o NOTABLEIMPORT para no sobrescribir la original. Las tablas de los esquemas SYS/SYSTEM y de los tablespaces SYSTEM/SYSAUX no se pueden recuperar así. Requiere Enterprise Edition.

Abrir en DBAtlas →

Relacionado