Alterando banco de dados Single para modo ARCHIVELOG

Este artigo propoe alterar uma base de dados single de modo NOARCHIVELOG para modo ARCHIVELOG, para qual proposito? Simples, a partir do momento que sua base está funcionando em modo ARCHIVELOG podemos realizar backups online (hot), quando em modo NOARCHIVELOG conseguimos apenas realizar backups offline (cold) e como o proprio nome ja diz, sua base precisa estar parada, offline, algo complicado certo?

Porém o principal fator que impoe importancia no modo ARCHIVELOG é de que desta forma é possível realizar uma recuperação até o ultimo commit executado no database, praticamente sem perdas de informações (archives/redologs online disponíveis), quando utilizando um backup offline para recuperação a perda de informações são do momento em que o backup foi realizado até o momento da falha.

Bem, visto a importância do modo ARCHIVELOG, vamos alterar nossa base de dados single para o modo archivelog.

Primeiramente vamos confirmar se ela está em modo NOARCHIVELOG:

SQL> select NAME, OPEN_MODE, LOG_MODE from v$database;

NAME      OPEN_MODE  LOG_MODE
--------- ---------- ------------
ORCL10G   READ WRITE NOARCHIVELOG

ou

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     285
Current log sequence           287

Confirmado que a base está em modo NOARCHIVELOG, vamos ajustar um destino para os archives (redolog arquivados) que serão gerados.

Sintaxe:alter system set log_archive_dest_1=’LOCATION=’ scope=spfile;

SQL> alter system set log_archive_dest_1='LOCATION=/oraarchive/orcl10g' scope=spfile;

System altered.

Desta forma o parâmetro de destino 1 foi ajustado para o local “/oraarchive/orcl10g”, note que antes do caminho de destino devemos especificar “LOCATION”. O scope será definido como spfile (podemos tratar mais sobre o scope em outro artigo já que não é o foco deste). Agora iremos ajustar o formato que os archives serão gerados.

Sintaxe:alter system set log_archive_format=’_%t_%s_%r.arc’ scope=spfile;

SQL> alter system set log_archive_format='orcl10g_%t_%s_%r.arc' scope=spfile;

System altered.

ORACLE_SID = Nome da instance; %t = Número da thread; %s = Número de sequencia do log; %r = Resetlog ID.

O próximo passo é a parada da base de dados e startup em modo mount.

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

SQL> startup mount;
ORACLE instance started.

Total System Global Area  234881024 bytes
Fixed Size                  1273008 bytes
Variable Size             125829968 bytes
Database Buffers          104857600 bytes
Redo Buffers                2920448 bytes
Database mounted.

Alteramos agora o database para modo ARCHIVELOG e abrimos a base,

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

Verificando se a base foi alterada para ARCHIVELOG,

SQL> select NAME, OPEN_MODE, LOG_MODE from v$database;

NAME      OPEN_MODE  LOG_MODE
--------- ---------- ------------
ORCL10G   READ WRITE ARCHIVELOG

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /oraarchive/orcl10g
Oldest online log sequence     285
Next log sequence to archive   287
Current log sequence           287

Para certificarmos que os archives estão sendo gerados com sucesso podemos forçar um switch e verificar se foram criados abaixo do destino especificado.

SQL> alter system switch logfile;

System altered.

SQL> !
[oracle@orcl ~]$ cd /oraarchive/orcl10g
[oracle@orcl orcl10g]$ ls -lrt
-rw-r----- 1 oracle dba 15048704 Set  4 20:52 orcl10g_1_287_757628597.arc

Pronto, nossa base já está em modo ARCHIVELOG, agora so basta implementar/ajustar as rotinas de backup.

%name Alterando banco de dados Single para modo ARCHIVELOG

Autor: Anderson Graf

Bacharel em Sistemas de Informação e MBA em Gestão de Banco de Dados Oracle. Entusiasta da tecnologia Oracle, ACE Associate ♠, autor em vários blogs e OTN. Consultor Oracle Senior na Exímio Soluções em TI

Envolvido em soluções de:
– Implementação, migração, gerenciamento e suporte a produtos Oracle, multiplataforma
– Monitoramento de ambientes 24×7
– Backup e Recovery
– Performance e Tuning
– Alta disponibilidade (HA) – RAC, Data Guard
– EM database/grid/cloud control
– Particionamento & Advanced Compression
– Oracle Engineered Systems – ODA, Exadata

Blog pessoal: http://www.andersondba.com.br
Articulista na Oracle Technology Network (OTN) – https://goo.gl/99R6yW
ACE Associate – https://goo.gl/MBB51b
Articulista GPO – http://profissionaloracle.com.br