Este artigo propõe 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 impõe importância 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 NOARCHIVELOGou
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 só basta implementar/ajustar as rotinas de backup.
0 comentários:
Postar um comentário