Habilitando o archive log mode no Oracle 10G ou 11G
E ai galera aqui eu vou abordar como podemos habilitar o archive log no Oracle 10G ou 11G.
Primeiro vamos listar como que está o estado do archive log no oracle
Vamos conectar na instancia que queremos verificar da seguinte forma
. oraenv ORACLE_SID = [orcl] ? orcl The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle
Vamos logar no Oracle
sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri May 24 17:17:27 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL>
Agora verificar como esta o estado do archive log
SQL> archive log list; Modo log de banco de dados Modo Sem Arquivamento Arquivamento automatico Desativado Destino de arquivamento USE_DB_RECOVERY_FILE_DEST A sequencia de log on-line mais antiga 5 Sequencia de log atual 7 SQL>
Como podemos notar o archive log está desabilitado e quando ativarmos ele ele vai ficar por padrão em USE_DB_RECOVERY_FILE_DEST que é a FRA este é o padrão porem podemos mudar isso
Agora vamos listar aonde está variável USE_DB_RECOVERY_FILE_DEST vai armazenar os archives log
SQL> show parameter recovery_file_dest; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string +FRA db_recovery_file_dest_size big integer 3882M
No meu caso ele vai armazenar em uma partição do +ASM que é a +FRA caso precise alterar podemos fazer da seguinte forma
Vamos criar o diretório no sistema de arquivos
mkdir -p /u01/app/oracle/oradata/orcl/arch
Caso tenha criado o diretório com um usuário diferente do oracle precisa ajustar as permissões do diretório
chown -R oracle:dba /u01/app/oracle/oradata/orcl/arch
Agora vamos alterar o caminho de armazenamento dos archives
SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/orcl/arch' scope = both; Sistema alterado. SQL>
OBS: O caminho tem que existir no sistema de arquivos e tem que ter permissão de escrita para o usuário oracle e o seu grupo ex o dba
Agora os archives logs não vão ser armazenados na +FRA agora eles vão ser armazenados em /u01/app/oracle/oradata/orcl/arch
Agora se mandarmos listar as configurações do archive log vamos ter algo como abaixo
SQL> archive log list; Modo log de banco de dados Modo Sem Arquivamento Arquivamento automatico Desativado Destino de arquivamento /u01/app/oracle/oradata/orcl/arch A sequencia de log on-line mais antiga 5 Sequencia de log atual 7 SQL>
Agora para podermos habilitar o archive log precisamos baixar o banco
SQL> shutdown immediate; Banco de dados fechado. Banco de dados desmontado. Instancia ORACLE desativada. SQL>
Agora vamos subir o banco em modo mount
SQL> startup mount; Instancia ORACLE iniciada. Total System Global Area 1269366784 bytes Fixed Size 2212976 bytes Variable Size 889195408 bytes Database Buffers 369098752 bytes Redo Buffers 8859648 bytes Banco de dados montado. SQL>
Agora podemos habilitar o archive log o comando é muito dificil como diria meu professor Zandona
SQL> alter database archivelog; Banco de dados alterado. SQL>
Agora já podemos dar um open no banco para liberar ele para os usuários
SQL> alter database open; Banco de dados alterado. SQL>
Agora vamos listar a opção de archive log
SQL> archive log list; Modo log de banco de dados Modo de Arquivamento Arquivamento automatico Ativado Destino de arquivamento /u01/app/oracle/oradata/orcl/arch A sequencia de log on-line mais antiga 5 Proxima sequencia de log a arquivar 7 Sequencia de log atual 7 SQL>
Note que agora o arquivamento automático está ativo :D
Agora vamos dar um switch o logfile para verificar a criação do archive log
SQL> alter system switch logfile; Sistema alterado. SQL>
Agora vamos verificar o nosso archive log
[oracle@oracle11 oradata]$ ls -l /u01/app/oracle/oradata/orcl/arch/ total 24804 -rw-r----- 1 oracle dba 25364992 Mai 24 17:38 1_7_816275674.dbf
Como podemos notar o nosso arquivo foi criado com sucesso :D
Desabilitando o Archive log mode
Vamos listar o archive log mode
SQL> archive log list; Modo log de banco de dados Modo de Arquivamento Arquivamento automatico Ativado Destino de arquivamento /u01/app/oracle/oradata/orcl/arch A sequencia de log on-line mais antiga 6 Proxima sequencia de log a arquivar 8 Sequencia de log atual 8 SQL>
Como podemos notar o archive log está ativo
Agora vamos baixar o banco
SQL> shutdown immediate; Banco de dados fechado. Banco de dados desmontado. Instancia ORACLE desativada. SQL>
Agora vamos subir o banco em mount
SQL> startup mount; Instancia ORACLE iniciada. Total System Global Area 1269366784 bytes Fixed Size 2212976 bytes Variable Size 889195408 bytes Database Buffers 369098752 bytes Redo Buffers 8859648 bytes Banco de dados montado. SQL>
Agora vamos desabilitar o archive log mode
SQL> alter database noarchivelog; Banco de dados alterado. SQL>
Agora vamos liberar o banco
SQL> alter database open; Banco de dados alterado. SQL>
Agora vamos listar as configurações do archive log
SQL> archive log list; Modo log de banco de dados Modo Sem Arquivamento Arquivamento automatico Desativado Destino de arquivamento /u01/app/oracle/oradata/orcl/arch A sequencia de log on-line mais antiga 6 Sequencia de log atual 8 SQL>
Como podemos notar agora ele está desabilitado.