DBAtlas · Atlas d'exploitation des bases de données

Ramener un tablespace à un point dans le passé (TSPITR)

OracleRMAN

Commande

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

Ce que fait la commande

RMAN récupère SYSTEM/UNDO/SYSAUX et le tablespace cible jusqu'à l'instant demandé dans une instance auxiliaire temporaire, puis le rebranche dans la base cible par transportable tablespace ; le reste de la base reste à jour.

Quand l'utiliser

Lorsqu'un batch défaillant ou un DROP/TRUNCATE erroné a endommagé les données d'un seul tablespace (ou d'un ensemble cohérent de tablespaces) et que les options flashback ne suffisent pas.

Attention

TOUS les changements effectués dans ce tablespace et tous les objets créés après l'instant cible sont perdus. L'ensemble de tablespaces doit être autonome (aucun index/table, partition, LOB ou FK dans un autre tablespace). Il ne peut pas être utilisé pour les tablespaces contenant des objets SYSTEM, UNDO ou SYS. Après un TSPITR, les sauvegardes antérieures de ce tablespace sont inutilisables ; faites immédiatement une sauvegarde. AUXILIARY DESTINATION nécessite de l'espace libre pour SYSTEM+SYSAUX+UNDO+le tablespace cible.

Ouvrir dans DBAtlas →

Voir aussi