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

Recuperar uma única tabela a um ponto no passado a partir de um backup RMAN (RECOVER TABLE)

OracleRMAN

Comando

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

O que faz

O RMAN recupera uma instância auxiliar automática até o horário solicitado, exporta a tabela (ou partição) com Data Pump e a importa no banco de destino com outro nome usando REMAP; a instância auxiliar é removida em seguida.

Quando usar

Para recuperar os dados de uma única tabela apagados/alterados por engano ou removida com PURGE, além do que a retenção de undo do Flashback Table/Query permite.

Atenção

AUXILIARY DESTINATION precisa de espaço livre para SYSTEM, SYSAUX, UNDO e o tablespace da tabela; a operação pode levar horas. Sem REMAP TABLE a operação falha se existir uma tabela com o mesmo nome; use sempre REMAP ou NOTABLEIMPORT para não sobrescrever a original. Tabelas nos schemas SYS/SYSTEM e nos tablespaces SYSTEM/SYSAUX não podem ser recuperadas assim. Exige Enterprise Edition.

Abrir no DBAtlas →

Relacionados