Recuperar una sola tabla a un punto del pasado desde un backup de RMAN (RECOVER TABLE)
OracleRMANComando
# 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.
Relacionado
- Crear un recovery catalog de RMAN y registrar la base de datos
- Crear un physical standby desde la base de datos activa con RMAN DUPLICATE
- Validar y limpiar los registros de backup de RMAN (CROSSCHECK, EXPIRED, OBSOLETE)
- Validar la base de datos y los backups frente a corrupción (VALIDATE)
- Ver qué backups usaría una restauración y validarlos (PREVIEW / VALIDATE)
- Reparar bloques corruptos en línea (block media recovery, RECOVER CORRUPTION LIST)