Início / Trilha 3 / Conteúdo / Tópico 1
1

RMAN - Recovery Manager

Conceitos, configuração, catálogo, canais e tipos de backup

📖

Definição

O que é RMAN?

RMAN (Recovery Manager) é a ferramenta oficial da Oracle para realizar backup e recuperação de bancos de dados. Introduzido no Oracle 8, evoluiu para ser a solução mais robusta e recomendada, superando backups tradicionais de sistema operacional.

RMAN opera diretamente no nível de bloco de dados, não no nível de arquivo do SO. Isso permite funcionalidades avançadas como backup incremental, compressão, criptografia, validação de blocos corrompidos e paralelização automática.

Características Principais:

  • Backup Incremental: Copia apenas blocos alterados desde último backup
  • Compressão Nativa: Reduz espaço necessário (até 10x em alguns casos)
  • Criptografia TDE: Protege backups com Advanced Security Option
  • Block Change Tracking: Otimiza performance de backups incrementais
  • Validação: Detecta blocos corrompidos durante backup
  • Paralelização: Múltiplos canais para backup/restore simultâneos

Arquitetura do RMAN

RMAN Client

Interface de linha de comando que envia comandos para o target database. Pode ser executado de qualquer máquina com Oracle Client instalado.

Target Database

Banco de dados sendo backed up ou restored. RMAN cria sessões server-side que executam as operações de backup/recovery.

Repository (Control File ou Catalog)

Control File: Armazena metadados de backup (padrão, limitado em histórico).
Recovery Catalog: Banco separado para metadados (recomendado para ambientes grandes).

Media Manager (MML)

Biblioteca de terceiros para integração com storage em fita (tape libraries). Exemplos: Oracle Secure Backup, NetBackup, TSM, CommVault.

Fast Recovery Area (FRA)

Área de disco gerenciada pela Oracle para armazenar backups, archived logs, flashback logs e control file copies. Simplifica gerenciamento de espaço.

Control File vs Recovery Catalog

Aspecto Control File Recovery Catalog
Configuração Automática (padrão) Requer criação manual
Histórico Limitado (dias/meses) Ilimitado
Múltiplos Bancos Não Sim (centralizado)
Scripts Armazenados Não Sim
Relatórios Básicos Avançados
Recomendado Para Ambientes pequenos Ambientes enterprise
🛠️

Aplicação Prática

Configurando o RMAN

Configuração inicial do RMAN com Fast Recovery Area:

-- Configurar Fast Recovery Area (FRA)
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 100G SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fra' SCOPE=BOTH;

-- Habilitar controle de alterações de blocos (otimiza backups incrementais)
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u01/app/oracle/block_change_tracking.f';

-- Configurar retenção de backup (7 dias)
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

-- Configurar compressão (requer Advanced Compression)
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';

-- Configurar backup de control file e spfile automático
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/ctrl_%F';

-- Configurar paralelização (4 canais)
CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/db_%U';

-- Excluir tablespaces de backup (ex: temporários)
CONFIGURE EXCLUDE FOR TABLESPACE temp;
CONFIGURE EXCLUDE FOR TABLESPACE temp01;

Conectando ao RMAN

# Conexão simples (usando control file)
rman TARGET /

# Conexão com usuário específico
rman TARGET sys/senha@ORCL

# Conexão com catálogo
rman TARGET sys/senha@ORCL CATALOG rman/rman@RMANCAT

# Executar comando único
rman TARGET / <

Comandos básicos do RMAN:

-- Verificar configuração
SHOW ALL;

-- Listar backups
LIST BACKUP SUMMARY;
LIST BACKUP OF DATABASE;
LIST ARCHIVELOG ALL;

-- Validar backups (sem restaurar)
VALIDATE BACKUPSET 123;
RESTORE DATABASE VALIDATE;

-- Relatórios
REPORT NEED BACKUP DAYS 7;
REPORT OBSOLETE;
REPORT SCHEMA;

Criando Recovery Catalog

-- No banco que será catálogo (banco separado)
CREATE TABLESPACE rman_tbs DATAFILE '/u01/app/oracle/oradata/rmancat/rman01.dbf' SIZE 500M AUTOEXTEND ON;
CREATE USER rman IDENTIFIED BY senha DEFAULT TABLESPACE rman_tbs QUOTA UNLIMITED ON rman_tbs;
GRANT RECOVERY_CATALOG_OWNER TO rman;

-- Criar o catálogo
rman CATALOG rman/senha@RMANCAT
RMAN> CREATE CATALOG;

-- Registrar banco de dados no catálogo
rman TARGET sys/senha@ORCL CATALOG rman/senha@RMANCAT
RMAN> REGISTER DATABASE;

-- Sincronizar catálogo (executar periodicamente)
RMAN> RESYNC CATALOG;

Tipos de Backup com RMAN

-- Backup full database (com archivelogs)
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

-- Backup incremental level 0 (base)
BACKUP INCREMENTAL LEVEL 0 DATABASE;

-- Backup incremental level 1 (diferencial - desde último level 1 ou 0)
BACKUP INCREMENTAL LEVEL 1 DATABASE;

-- Backup incremental level 1 cumulativo (desde último level 0)
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

-- Backup de tablespace específica
BACKUP TABLESPACE users, tools;

-- Backup de datafile específico
BACKUP DATAFILE 4,5,6;

-- Backup de archivelogs
BACKUP ARCHIVELOG ALL DELETE INPUT;
BACKUP ARCHIVELOG FROM TIME 'SYSDATE-1';

-- Backup com compressão
BACKUP AS COMPRESSED BACKUPSET DATABASE;

-- Backup para múltiplos destinos (duplexing)
BACKUP COPIES 2 DATABASE;

Gerenciando Backups

-- Listar backups obsoletos (fora da retention policy)
REPORT OBSOLETE;

-- Deletar backups obsoletos
DELETE OBSOLETE;

-- Deletar backup específico
DELETE BACKUPSET 123;

-- Crosscheck (verificar se backups ainda existem no disco/fita)
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;

-- Deletar backups expirados (que falharam no crosscheck)
DELETE EXPIRED BACKUP;
DELETE EXPIRED ARCHIVELOG ALL;

-- Validar integridade do banco
VALIDATE DATABASE;

-- Validar blocos corrompidos
BACKUP VALIDATE CHECK LOGICAL DATABASE;

Resultado Esperado

Competências Adquiridas

Configurar RMAN

Definir FRA, retention policy, compressão e canais

Gerenciar Catálogo

Criar, registrar e sincronizar recovery catalog

Executar Backups

Full, incremental, tablespace, archivelog

Otimizar Performance

Paralelização, block change tracking, compressão

Validar e Manter

Crosscheck, delete obsolete, validate backups

Troubleshooting

Diagnosticar falhas de backup e recovery