Recuperar uma única tabela a um ponto no passado a partir de um backup RMAN (RECOVER TABLE)
OracleRMANComando
# 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.
Relacionados
- Criar um recovery catalog do RMAN e registrar o banco de dados
- Criar um physical standby a partir do banco ativo com RMAN DUPLICATE
- Validar e limpar registros de backup do RMAN (CROSSCHECK, EXPIRED, OBSOLETE)
- Validar o banco de dados e os backups contra corrupção (VALIDATE)
- Ver quais backups um restore usaria e validá-los (PREVIEW / VALIDATE)
- Reparar blocos corrompidos online (block media recovery, RECOVER CORRUPTION LIST)