Oracle: Mini Manual de Backup

Backup é uma coisa séria, pois é o Recovery que garante (ou não) o emprego do DBA.

Este seria um pequeno manual do mínimo que deve ser levado em consideração a respeito. Não é uma rotina ideal nem muito menos definitiva, mas é um começo para quem não sabe por onde começar.

Como verificar se o banco está em modo ARCHIVELOG?

SQL> SELECT LOG_MODE FROM V$DATABASE;

Observação: o modo ARCHIVELOG é necessário para Point In Time Recovery – recuperação dos dados gerados após um backup.

 

Como alterar o banco para o modo NOARCHIVELOG?

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE NOARCHIVELOG;
SQL> ALTER DATABASE OPEN;

 

Como alterar o banco para o modo ARCHIVELOG?

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

 

Como alterar o local para geração de ARCHIVELOGs?

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = 'LOCATION=/u01/Archives/' SCOPE=BOTH;

 

Como alterar o nome dos ARCHIVELOGs?

SQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = 'ORCL_%r_%t_%s.ARC' SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

Observação: as variáveis %r, %t e %s são obrigatórias.

 

Como fazer com que sejam gerados Archives a cada 600 segundos?

SQL> ALTER SYSTEM SET ARCHIVE_LAG_TARGET = 600 SCOPE=BOTH;

Observação: Esta configuração é importante para que o tempo de uma possível perda de dados possa ser limitado a esta quantidade de segundos.

 

Como fazer backup dos ARCHIVELOGs?

RMAN> BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT '/u01/Backup/Archives-%d___DBID-%I___Date-%T___Set-%s___Piece-%p.BKP' DELETE ALL INPUT;

Observação: esse comando faz backup dos ARCHIVELOGs, removendo-os do local original. Deve ser feito o mais frequentemente possível, e estes backups copiados para outro local.

 

Como fazer backup do banco de dados?

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/u01/Backup/Database-%d___DBID-%I___Date-%T___Set-%s___Piece-%p.BKP';

Observação: deve ser feito o mais frequentemente possível, e estes backups copiados para outro local.

 

Como fazer com que sejam armazenados 2 backups do banco, e os ARCHIVEs necessários para recupera-lo?

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1;

 

Como fazer com que sejam armazenados 3 backups do banco, e os ARCHIVEs necessários para recupera-lo?

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

 

Como apagar os backups antigos (de acordo com o comando anterior)?

RMAN> DELETE OBSOLETE;

 

Como fazer com que backups do CONTROLFILE sejam executados automaticamente?

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/Backup/ControlfileAutoBackup-%F.BKP';

Observação: a variável %F é obrigatória. O CONTROLFILE também é necessário para recuperação. Este backup deve ser frequentemente copiado para outro local.

 

Para recuperar um banco de dados Oracle, é necessário:
– backup do CONTROLFILE.
– backup do banco de dados, finalizado em um momento anterior ao ponto ao qual se quer restaurar.
– ARCHIVELOGs (ou backup destes) gerados desde o início do backup do banco de dados utilizado, até o ponto ao qual se quer restaurar.

8 comments

  1. Boa tarde. Como faço para aplicar o archive log em um backup que foi feito sem o RMAN. Um backup full por exemplo, feito com exp…? Meu banco está em archive, mas não utilizo o RMAN.

    1. Oi Eduardo. Resposta curta: isto não é possível.
      Resposta longa: imagine que seu servidor pegou fogo, e tudo o que você tem são então seu exp e os Archives. Imagino que você vai instalar o Oracle em outro servidor, criar um banco de dados “vazio”, importar o Dump gerado pelo exp, e então tentar aplicar seus Archives. Desde que você criou o novo banco de dados neste servidor, ele é novo, é outro banco, ele não “conhece” aqueles Archives.
      Então, se você não pode perder os dados gerados após um Backup, tem que usar Backup do ControlFile + Backup do Database + Archives, tudo em rman.
      O exp / expdp (acostume-se com o expdp, são muitas vantagens) é uma ferramenta de transporte de dados, não de backup.

      1. Muito obrigado pela sua atenção. Tem algum post aqui sobre como habilitar o RMAN. Desculpe, mas não tenho muita experiência. Agradeço se puder me indicar algum documento explicando como fazer.

        1. Oi Eduardo.
          O rman não precisa ser habilitado.

          Para entrar no rman:
          rman target /

          Para fazer Backup, tem aqui neste Post mesmo.

          Recomendo que você tente um Restore também.

  2. Boa noite

    Estou tendo dificuldades em fazer os backups (spfile+controls+banco) via rman e jogar para outra maquina?, já até consegui criar as pastas e tudo, mais estou perdido com os arquivos que são gerados e de como recuperalos em outro server?:

    arch_WINT_DB_b7ud0b99_11623_1
    ctl_c-1626830762-20190929-08
    WINT_DB_b5ud0b5r_11621_1

    Grato

    Joerbeth

    1. Oi. Os arquivos devem ser:
      arch_WINT_DB_b7ud0b99_11623_1: Backup dos Archives.
      ctl_c-1626830762-20190929-08: Backup do Controlfile e spfile.
      WINT_DB_b5ud0b5r_11621_1: Backup do Banco.

Deixe uma resposta para Flávio Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.