Página Inicial > Backup, Tutorial > Habilitando o archivelog mode no Oracle 11g

Habilitando o archivelog mode no Oracle 11g

Para efetuar backups online (hot backup), isto é, fazer backup do banco de dados com ele UP, não havendo necessidade de parar o banco para fazer (cold backup). Você precisa ativar o modo archivelog, desta maneira, os redo logs online são arquivados, criando arquivos de log de todas as transações do banco de dados.

O Oracle grava nos arquivos de redo log online de maneira cíclica: após preencher o primeiro arquivo de log, ele começa a gravar no segundo, até que ele esteja cheio, e em seguida, começa a gravar no terceiro. uma vez que o último arquivo de redo log online esteja cheio, o processo em segundo plano LGWR (log write) começa a sobrescrever o conteúdo do primeiro arquivo.

Por default o modo NOARCHIVELOG vem como padrão, ele protege a integridade do banco de dados no caso de falha de uma instância ou uma queda de sistema, porque todas as transações encerradas com commit, mas que ainda não foram gravadas nos arquivos de dados estarão disponíveis nos arquivos de redo log online.

Quando o Oracle está executando no modo ARCHIVELOG, o processo em background ARCn (archiver process) faz uma cópia de cada arquivo de redo log antes de sobrescrevê-lo. Exemplo: se o disco que esta os data files der algum problema, com os archives logs podemos reconstruir o banco de dados até o momento anterior ao problema, devido a um backup recente dos data files e aos arquivos de redo log que foram gerados desde que ele ocorreu. Abaixo, uma imagem para ilustrar o processo ARC, copiando os arquivos do redo log e passando para a localização do archive log.



Chega de teoria e vamos para a pratica; verificando se esta ativado o archivelog:

SQL> select log_mode from v$database;

LOG_MODE
————
NOARCHIVELOG

 

Com esta seleção, percebemos que a resposta é que não esta com o archive log mode ativado, outra forma de verificar se esta em archive log mode é:

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     61
Current log sequence           63

 

Caso queira mudar a localidade dos archives logs, você pode mudar com o seguinte comando:

alter system set LOG_ARCHIVE_DEST_1=’LOCATION=/u01/app/oracle/flash_recovery_area/ mandatory’ scope=both;

 

Ok, vimos que o modo archivelog esta desabilitado, para habilitar precisamos parar o banco:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

 

Subindo a base no estado mount:

SQL> startup mount;
ORACLE instance started.

Total System Global Area  535662592 bytes
Fixed Size                  1337720 bytes
Variable Size             327157384 bytes
Database Buffers          201326592 bytes
Redo Buffers                5840896 bytes
Database mounted.
SQL>

 

Alterado o banco para o modo archivelog:

SQL> alter database archivelog;
Database altered.

 

Abrindo o banco:

SQL> alter database open;
Database altered.

 

Verificando o estado do archive log:

SQL> archive log file;
SP2-0718: illegal ARCHIVE LOG option
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     78
Next log sequence to archive   80
Current log sequence           80

 

Forçando a troca do archive log, com isso, podemos ver se já foi gerado o arquivo de archive log:

SQL> alter system switch logfile;
System altered.

 

Descobrindo a onde estão sendo salvos os archives logs:

SQL> show parameter DB_RECOVERY_FILE_DEST

NAME                                 TYPE        VALUE
———————————— ———– ——————————
db_recovery_file_dest                string      $ORACLE_BASE/flash_recovery_area
db_recovery_file_dest_size           big integer 2G

 

Agora podemos verificar se foi gerado o archivelog, com o comando pwd mostro o diretório corrente e com o ls eu listo os arquivos da pasta:

[[email protected] 2011_07_13]$ pwd
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_07_13

[[email protected] 2011_07_13]$ ls -lah
total 22M
drwxr-x— 2 oracle oinstall 4.0K Jul 13 10:08 .
drwxr-x— 3 oracle oinstall 4.0K Jul 13 09:59 ..
-rw-r—– 1 oracle oinstall 21M Jul 13 09:59 o1_mf_1_80_71v96hr3_.arc
-rw-r—– 1 oracle oinstall 978K Jul 13 10:08 o1_mf_1_81_71v9pr0h_.arc

 

Algumas views importantes para informações do archive log:

Views Descrição
V$DATABASE Mostra se a base de dados esta em ARCHIVELOG ou NOARCHIVELOG
V$ARCHIVED_LOG Exibe historico dos ARCHIVELOGS do CONTROL FILES. Se você usar um catálogo de recuperação, a view RC_ARCHIVED_LOG contém informações semelhantes.
V$ARCHIVE_DEST Descreve o estado atual da instância, todos os destinos dos archives e o tamanho atual.
V$ARCHIVE_PROCESSES Exibe informações sobre o estado dos processos de arquivo diferentes para uma instância.
V$BACKUP_REDOLOG Contém informações sobre todos os backups dos archived logs. Se você usa o recovery catalog, o RC_BACKUP_REDOLOG contém informações similares.
V$LOG Exibe todos os grupos de redo log para o banco de dados e indica que precisam ser arquivados.
V$LOG_HISTORY Contém informações de logs registros, que marca os archives com o range de SCN, para cada archive log.

 

Um forte abraço!

Tags:
  1. Lúcio
    6, agosto, 2012 em 16:33 | #1

    Post ótimo, fácil e objetivo. Ativando o archivelog sem perder muito tempo e complicações.

  2. Daniel Saibt
    24, setembro, 2012 em 20:37 | #2

    Muito bom… Simples e direto..

    Obrigado pela dica…

  3. Willian Guedes
    17, março, 2013 em 20:48 | #3

    Ai sim … logo mais tah dando palestra rs. Abraço brother

  4. João Ferreira
    6, maio, 2013 em 01:27 | #4

    Parabéns pelos post, estou iniciando neste mundo de dba e o seu blog está me ajudando 100%. Se possível continue com os post mais teórico sobre o Oracle.

    Obrigado.

  5. Lucas Bessa
    11, dezembro, 2013 em 11:12 | #5

    Ótimo post.
    Queria saber se tem algum post sobre recuperação do banco pelo arquivelog?

  6. Cesare Eiras da Rossi
    16, janeiro, 2014 em 22:44 | #6

    Simples, interessante e objetivo. Excelente post, meu caro!

    Abraços.

  7. Alvaro
    17, janeiro, 2014 em 11:23 | #7

    Muito direto e esclarecedor.

    Obrigado.

  8. Rogerio Picolo
    23, janeiro, 2014 em 20:23 | #8

    Boa noite,

    Eu sou obrigado a utilizar o rman se eu habilitar o archivelog?
    O expdp faz bkp de todos os arquivos do Oracle?

    Um abraço,

  9. Paulo
    11, abril, 2014 em 23:11 | #9

    Muito Bom…..

  10. Guilherme
    16, abril, 2014 em 12:47 | #10

    é possivel saber com expdp o ultimo bkp feito?

    alguma forma de saber via sql qual o ultimo bkp executado

  11. Guilherme
    16, abril, 2014 em 12:48 | #11

    Guilherme :
    é possivel saber com expdp o ultimo bkp feito?
    alguma forma de saber via sql qual o ultimo bkp executado

    @Guilherme

  12. Cristiano Quadros
    18, junho, 2014 em 17:20 | #12

    Muito facil e intuitiva.

  13. Jeferson
    4, maio, 2015 em 10:35 | #13

    Show de bola.

  14. Alex
    6, março, 2016 em 16:28 | #14

    Excelente…..

  15. Luis Rigo
    22, abril, 2016 em 03:15 | #15

    Show de bola. Resolveu meus problemas.

  16. Ysmaylyka
    7, julho, 2016 em 11:18 | #16

    Ótimo post!
    Perdão pela ignorância, mas como eu faria para voltar novamente ao modo NOARCHIVELOG ?

  1. 11, outubro, 2012 em 09:01 | #1