DBAtlas · Atlas de operaciones de bases de datos

Devolver un tablespace a un punto del pasado (TSPITR)

OracleRMAN

Comando

-- 1) Is the tablespace self-contained (SQL, on the target DB):
EXEC DBMS_TTS.TRANSPORT_SET_CHECK(ts_list => 'USERS', incl_constraints => TRUE, full_check => TRUE);
SELECT * FROM transport_set_violations;
-- 2) Objects created AFTER the target time that TSPITR will lose:
SELECT owner, name, tablespace_name,
       TO_CHAR(creation_time,'YYYY-MM-DD HH24:MI:SS') AS created
FROM   ts_pitr_objects_to_be_dropped
WHERE  tablespace_name = 'USERS'
  AND  creation_time > TO_DATE('2026-01-15 03:00:00','YYYY-MM-DD HH24:MI:SS');
# 3) RMAN: with an automatic auxiliary instance
RECOVER TABLESPACE users
  UNTIL TIME "TO_DATE('2026-01-15 03:00:00','YYYY-MM-DD HH24:MI:SS')"
  AUXILIARY DESTINATION '/u03/aux';
# 4) The tablespace is left OFFLINE: take a backup first, then bring it online
BACKUP TABLESPACE users;
ALTER TABLESPACE users ONLINE;

Qué hace

RMAN recupera SYSTEM/UNDO/SYSAUX y el tablespace de destino hasta la hora solicitada en una instancia auxiliar temporal y luego lo vuelve a conectar a la base de datos de destino con transportable tablespace; el resto de la base de datos sigue actualizado.

Cuándo usarlo

Cuando un job batch defectuoso o un DROP/TRUNCATE erróneo dañó datos en un solo tablespace (o en un conjunto de tablespaces autoconsistente) y las opciones de flashback no bastan.

Precaución

Se pierden TODOS los cambios hechos en ese tablespace y todos los objetos creados después de la hora de destino. El conjunto de tablespaces debe ser autocontenido (ningún índice/tabla, partición, LOB o FK en otro tablespace). No se puede usar con tablespaces que contengan SYSTEM, UNDO u objetos de SYS. Tras el TSPITR, los backups anteriores de ese tablespace no sirven; tome un backup de inmediato. AUXILIARY DESTINATION necesita espacio libre para SYSTEM+SYSAUX+UNDO+el tablespace de destino.

Abrir en DBAtlas →

Relacionado