DBAtlas · Atlas de operações de banco de dados

Retornar um tablespace a um ponto no passado (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;

O que faz

O RMAN recupera SYSTEM/UNDO/SYSAUX e o tablespace de destino até o horário solicitado em uma instância auxiliar temporária e depois o reconecta ao banco de destino com transportable tablespace; o restante do banco permanece atual.

Quando usar

Quando um job batch com defeito ou um DROP/TRUNCATE errado danificou dados em apenas um tablespace (ou em um conjunto autocontido de tablespaces) e as opções de flashback não bastam.

Atenção

TODAS as mudanças feitas nesse tablespace e todos os objetos criados após o horário de destino são perdidos. O conjunto de tablespaces deve ser autocontido (nenhum índice/tabela, partição, LOB ou FK em outro tablespace). Não pode ser usado para tablespaces que contenham objetos SYSTEM, UNDO ou SYS. Após o TSPITR, os backups anteriores desse tablespace ficam inutilizáveis; faça um backup imediatamente. AUXILIARY DESTINATION precisa de espaço livre para SYSTEM+SYSAUX+UNDO+o tablespace de destino.

Abrir no DBAtlas →

Relacionados