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

Récupérer une seule table à un instant passé depuis une sauvegarde RMAN (RECOVER TABLE)

OracleRMAN

Commande

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

Ce que fait la commande

RMAN récupère une instance auxiliaire automatique jusqu'à l'instant demandé, exporte la table (ou la partition) avec Data Pump et l'importe dans la base cible sous un autre nom avec REMAP ; l'instance auxiliaire est ensuite supprimée.

Quand l'utiliser

Pour récupérer les données d'une seule table supprimées/mises à jour par erreur ou supprimée avec PURGE, au-delà de ce que permet la rétention undo de Flashback Table/Query.

Attention

AUXILIARY DESTINATION nécessite de l'espace libre pour SYSTEM, SYSAUX, UNDO et le tablespace de la table ; l'opération peut durer des heures. Sans REMAP TABLE, l'opération échoue si une table de même nom existe ; utilisez toujours REMAP ou NOTABLEIMPORT pour éviter d'écraser l'original. Les tables des schémas SYS/SYSTEM et des tablespaces SYSTEM/SYSAUX ne peuvent pas être récupérées ainsi. Exige Enterprise Edition.

Ouvrir dans DBAtlas →

Voir aussi