Modificar o modo de log de arquivamento do Oracle, o caminho de arquivamento e o tamanho do espaço

É necessário habilitar o arquivamento de logs ao criar um banco de dados ORACLE? O banco de dados Oracle pode operar em dois modos: modo de arquivamento (archivelog) e modo sem arquivamento (noarchivelog). O modo de arquivamento melhora a capacidade de recuperação do banco de dados Oracle. Todos os bancos de dados de produção devem operar nesse modo, e o modo de arquivamento deve ser combinado com uma estratégia de backup adequada. Apenas o modo de arquivamento, sem uma estratégia de backup correspondente, causará apenas problemas...

Descarregar Gratuitamente
para VM, SO, DB, Ficheiro, NAS, etc.
joao

Updated by João on 2026/06/25

É necessário habilitar o arquivamento de logs ao criar um banco de dados ORACLE?

O banco de dados Oracle pode ser executado em dois modos: modo de arquivamento (archivelog) e modo sem arquivamento (noarchivelog).

O modo de arquivamento pode melhorar a capacidade de recuperação do banco de dados Oracle.

Todos os bancos de dados de produção devem operar neste modo, e o modo de arquivamento deve ser combinado com a respectiva estratégia de backup. Apenas o modo de arquivamento, sem uma estratégia de backup correspondente, causará apenas problemas.

Por padrão, o banco de dados Oracle é criado no modo de arquivo de log sem registro,

No modo de log não arquivado, o log de reexecução será reescrito diretamente quando o log for alternado. Se o arquivo de dados for danificado devido a uma falha de mídia nesse momento, os dados reescritos serão perdidos durante a restauração do banco de dados;

No modo de log de arquivamento, o banco de dados pode utilizar todos os arquivos de log de arquivamento gerados a partir do backup mais recente do banco de dados para garantir que nenhum dado seja perdido; a maioria dos bancos de dados de produção opera no modo archivelog.

Após o banco de dados Oracle ativar o modo de log de arquivamento, ele iniciará automaticamente um novo processo: o arquivador ARCn. Por padrão, são iniciados 4 processos. Em aplicações reais, é possível iniciar até 30 processos de arquivamento.

[oracle@dbserver1 archivelog]$ ps -ef | grep -i ora_oracle   26567     1  0 08:48 ?        00:00:00 ora_arc0_orcloracle   26573     1  0 08:48 ?        00:00:00 ora_arc1_orcloracle   26575     1  0 08:48 ?        00:00:00 ora_arc2_orcloracle   26577     1  0 08:48 ?        00:00:00 ora_arc3_orcl

O Archive Log é um backup inativo do redo log. Ao utilizar os archive logs, todos os registros históricos do redo podem ser mantidos. Quando o banco de dados está no modo ARCHIVELOG e ocorre a alternância de logs,

O processo em segundo plano ARCH salvará o conteúdo do log de redefinição no log de arquivamento. Quando ocorrer uma falha de mídia no banco de dados, o backup dos arquivos de dados, o log de arquivamento e o log de redefinição poderão ser utilizados para restaurar completamente o banco de dados.

#########################

Alteração do modo não arquivado para o modo arquivado

Antes da modificação:


Confirme o ambiente. Verifique o banco de dados, se deseja ativar o modo de arquivamento: — As informações exibidas abaixo pressupõem que, ao instalar o banco de dados, você não optou por ativar o flashback nem optou por ativar o arquivamento.

Modificar arquivo Oracle – 1
SQL> archive log listDatabase log mode           Modo de arquivamento desativadoAutomatic archival           DesativadoArchive destination           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/archSequência mais antiga de log online     4Sequência atual de log           6

SQL> select name,log_mode from v$database;
NAME      LOG_MODE
–------- ------------
ORCL      NOARCHIVELOG

SQL>  show parameter db_recovery
NOME                     TIPO     VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest             string
db_recovery_file_dest_size         inteiro grande 0

Modificar o arquivo do Oracle – 1

#########  O seguinte testa a operação de alternar o banco de dados do modo sem arquivamento para o modo com arquivamento quando o flashback não está ativado ############

Modificar o arquivo do Oracle – 1
SQL> desligar imediatamente
Banco de dados fechado.

SQL> iniciar montagem
Instância ORACLE iniciada.

SQL> alterar banco de dados para modo archivelog;
Banco de dados alterado.

SQL> alterar banco de dados para aberto;
Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de Arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online     4
Próxima sequência de log a ser arquivada   6
Sequência atual de log           6

SQL> select name from v$archived_log;
nenhuma linha selecionada

SQL> alter system archive log current;
Sistema alterado.

SQL> select name from v$archived_log;
NAME
–------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf

SQL>  show parameter recover;
NOME                         TIPO     VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest             string
db_recovery_file_dest_size         inteiro grande 0
db_unrecoverable_scn_tracking     booleano     TRUE
recovery_parallelism             inteiro     0

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
nenhuma linha selecionada

Modificar o arquivo do Oracle – 1

Quando log_archive_log é definido com o valor padrão, o diretório de arquivamento torna-se ?/dbs/arch.

Modificar o arquivo do Oracle – 1
SQL> alter system set log_archive_dest_1='';
Sistema alterado.

SQL> archive log list
Modo de log do banco de dados: Modo de arquivamento
Arquivamento automático: Habilitado
Destino de arquivamento: ?/dbs/arch
Sequência mais antiga de log online: 5
Próxima sequência de log a ser arquivada: 7
Sequência atual de log: 7

SQL> desligar imediatamente
Banco de dados fechado.
Banco de dados desmontado.
Instância ORACLE desligada.

SQL> startup mount
Instância do ORACLE iniciada.

Modificar o arquivo do Oracle – 1

Após reiniciar o banco de dados para montagem, o diretório de arquivamento volta ao diretório padrão original.

Modificar o arquivo Oracle – 1
SQL> archive log listModo de log do banco de dados           Modo de arquivamentoArquivamento automático           HabilitadoDestino de arquivamento           /home/oracle/u01/app/oracle/product/11.2.2.0/dbhome_1/dbs/archOldest sequência de log online mais antiga     5
Próxima sequência de log a ser arquivada   7
Sequência de log atual           7
--- Defina o número máximo de processos abertos para arquivamento
SQL> alter system set log_archive_max_processes = 5;
Sistema alterado.---Modificar o formato de armazenamento de logs SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile; Sistema alterado.SQL> desligamento imediato
Banco de dados desmontado.
Instância ORACLE desligada.

SQL> startup
Instância ORACLE iniciada.

SQL> desligamento imediato
Base de dados desmontada.

Área Global Total do Sistema  939495424 bytes
Tamanho Fixo            2258840 bytes
Tamanho Variável          637536360 bytes
Buffers do Banco de Dados      293601280 bytes
Buffers de Redo            6098944 bytes
Banco de dados montado.
Banco de dados aberto.

SQL> archive log list
Modo de log do banco de dados           Modo de arquivamento
Arquivamento automático           Habilitado
Destino de arquivamento           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online     5
Próxima sequência de log a ser arquivada   7
Sequência atual de log           7

SQL>  show parameter db_recovery
NOME                     TIPO     VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest             string
db_recovery_file_dest_size         inteiro grande 0

SQL> select name from v$archived_log;
NAME
–------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf

SQL> alter system switch logfile;
Sistema alterado.

SQL> select recid, nome, first_time de v$archived_log;

NOME
–------------------------------------------------------------------------------
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_6_947091054.dbf
/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/archarchive_1_7_94709105
4.log

SQL> SELECT NAME, SPACE_LIMIT/1024/1024/1024, SPACE_USED/1024/1024/1024, NUMBER_OF_FILES FROM V$RECOVERY_FILE_DEST;

nenhuma linha selecionada

SQL> select flashback_on from v$database;
FLASHBACK_ON
–----------------
NÃO

Modificar o arquivo do Oracle – 1

#############################

Ativar o recurso de retrocesso (flashback) do banco de dados. Definir o caminho e o tamanho da área de recuperação rápida para teste. Primeiro, desative o modo de arquivamento e, em seguida, ative o caminho padrão após o arquivamento, que corresponde ao caminho de retrocesso (flashback) do banco de dados.

Verifique o banco de dados para saber se o recurso de retrocesso (flashback) está ativado


Observação: Se você ativar a função de retrocesso, é necessário estar no modo de arquivamento; caso contrário, não faz sentido usar o retrocesso! ! ! !

No entanto, se você abrir o arquivo, não é necessário, necessariamente, ativar a função de retrocesso! ! !

Se o recurso de flashback estiver ativado e, em seguida, o modo de arquivamento for ativado, caso o log de arquivamento não especifique um novo caminho, ele será salvo, por padrão, na área de flashback do banco de dados e exibido como: USE_DB_RECOVERY_FILE_DEST, que, na verdade, corresponde ao caminho da área de flashback.

Além disso, a localização e o tamanho da área de flashback e do caminho do arquivo podem ser definidos manualmente.

Modificar o arquivo do Oracle – 1
SQL> select flashback_on from v$database;FLASHBACK_ON------------------NO SQL> shutdown immediateSQL> startup mount

SQL> alter database flashback on;   Ao instalar o banco de dados, não optei por ativar o recurso flashback e ocorreu o seguinte erro

alter database flashback on
*
ERRO na linha 1:
ORA-38706: Não é possível ativar o registro de FLASHBACK DATABASE.
ORA-38709: A Área de Recuperação não está habilitada.

Modificar o arquivo do Oracle – 1


Configurar a área de recuperação flash:

Definir o tamanho da área de recuperação de flash: a área de recuperação de flash padrão do Oracle é de 2 GB

SQL>  alter system set db_recovery_file_dest_size=5g scope=spfile;

Visualizar o tamanho do espaço do caminho especificado na área de retrocesso:

SQL> show parameter db_recovery_file_dest_size

NOME                         TIPO     VALOR
–---------------------------------- ----------- ------------------------------
db_recovery_file_dest_size         inteiro grande 30G

Definir o local da área de flashback:

SQL> alter system set db_recovery_file_dest='/home/oracle/u01/app/oracle/account_flashback_area' scope=spfile;

Defina o período de flashback como 5 dias, em minutos (o Oracle usa por padrão 1440 minutos, ou seja, um dia)

SQL> alter system set db_flashback_retention_target=7200 scope=spfile;

Crie diretórios relacionados ao flashback no nível do sistema operacional:

Modificar o arquivo do Oracle – 1
[oracle@dbserver oracle]$ mkdir -p /home/oracle/u01/app/oracle/account_flashback_area

SQL> alter database flashback on;
Banco de dados alterado.
SQL> alter database open;
Banco de dados alterado.

SQL> select flashback_on from v$database;
FLASHBACK_ON
–----------------
SIM

SQL> archive log list
Modo de log do banco de dados           Modo de arquivamento
Arquivamento automático           Habilitado
Destino de arquivamento           USE_DB_RECOVERY_FILE_DEST
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

Modificar o arquivo do Oracle – 1

Conclusão: Se o flashback estiver ativado e o modo de arquivamento for novamente ativado, e nenhum novo caminho for especificado para os logs de arquivamento, esses logs serão salvos, por padrão, na área de flashback do banco de dados e exibidos como: USE_DB_RECOVERY_FILE_DEST, o que corresponde, na verdade, ao caminho da área de flashback.


Atualmente, testaremos o desligamento do flashback e reiniciaremos o banco de dados para visualizar o caminho do log de arquivamento.

Modificar o arquivo do Oracle – 1
SQL> select open_mode from v$database;OPEN_MODE--------------------LEITURA E GRAVAÇÃO

SQL> shutdown immediate
Banco de dados fechado.

SQL> startup mount
Instância ORACLE iniciada.

Modificar o arquivo do Oracle – 1

Fechar o modo de arquivamento — lembra-nos de que o banco de dados está executando no modo de arquivamento. Quando o flashback estiver ativado, o arquivamento não poderá ser desativado diretamente.

SQL> alter database noarchivelog;alter database noarchivelog*ERRO na linha 1:ORA-38774: não é possível desabilitar a recuperação de mídia – o flashback do banco de dados está habilitado

Em seguida, desabilitamos primeiro o flashback

Modificar o arquivo do Oracle – 1
SQL> alter database flashback off;Banco de dados alterado.

SQL> alter database noarchivelog;
Banco de dados alterado.

SQL> alterar banco de dados para aberto;
Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de Arquivamento Desativado
Arquivamento automático           Desativado
Destino do arquivamento           USE_DB_RECOVERY_FILE_DEST
Sequência mais antiga de log online     6
Sequência atual de log           8

SQL> select flashback_on from v$database;
FLASHBACK_ON
–----------------
NÃO

Modificar o arquivo do Oracle – 1

Reinicie, abra a visualização de arquivos e verifique o caminho do arquivo

Modificar o arquivo do Oracle – 1
SQL> shutdown immediate
Banco de dados fechado.
SQL> startup mount
Instância ORACLE iniciada.
SQL> alter database archivelog;
Banco de dados alterado.
SQL> alter database open;
Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo Arquivamento
Arquivamento automático           Habilitado
Destino de arquivamento           USE_DB_RECOVERY_FILE_DEST
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

SQL> select flashback_on,open_mode from v$database;
FLASHBACK_ON       OPEN_MODE
–---------------- --------------------
NO           READ WRITE

Modificar o arquivo do Oracle – 1


Conclusão: Se você abrir o arquivo, não é necessário ativar necessariamente a função de retrocesso; você não precisa ativar o retrocesso!!!

Teste 3: Modificar o caminho padrão de arquivamento


Modificar o arquivo do Oracle – 1
SQL> desligar imediatoSQL> iniciar montagemINSTÂNCIA ORACLE iniciada.

SQL> lista de arquivos de log de arquivamento
Modo de log do banco de dados           Modo de arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           USE_DB_RECOVERY_FILE_DEST
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

SQL> alter system set log_archive_dest_1=‘location=/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch’;
Sistema alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de Arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

SQL> select flashback_on,open_mode from v$database;

RETROCESSÃO_ATIVADA       MODO_ABERTO
–---------------- --------------------
NÃO           MONTADO

Teste 4: Fechamos o arquivo de arquivamento; primeiro ativamos o flashback, depois ativamos o arquivo de arquivamento, iniciamos o banco de dados, verificamos o caminho do arquivo de arquivamento e verificamos se o caminho personalizado foi configurado; em seguida, modificamos-no para o caminho padrão de flashback.

 SQL> alterar banco de dados para noarchivelog; Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo sem arquivamento
Arquivamento automático           Desativado
Destino do arquivamento           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online     6
Sequência atual de log           8

SQL> alter database flashback on;   –– O recurso Flashback não pode ser ativado no modo não arquivado

alter database flashback on
*
ERRO na linha 1:
ORA-38706: Não é possível ativar o registro de FLASHBACK DATABASE.
ORA-38707: A recuperação de mídia não está habilitada.

Conclusão: o modo retrocesso não pode ser ativado no modo não arquivado

################################################

SQL> alter database archivelog;Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8
SQL>
SQL> alter database flashback on;
Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de Arquivamento
Arquivamento automático           Habilitado
Destino de arquivamento           /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

Conclusão: Se o caminho de armazenamento para os logs de arquivamento for especificado, então, ao ativar o recurso Flashback, o caminho de armazenamento dos logs de arquivamento permanecerá o caminho originalmente definido pelo usuário
#############################
Continuação:
Altere os logs de arquivamento para o caminho de armazenamento padrão do banco de dados. Repita a operação acima para confirmar se o caminho dos logs de arquivamento corresponde ao caminho da área de flashback

SQL> shutdown immediate
Banco de dados fechado.
SQL> startup mount
Instância ORACLE iniciada.

SQL> archive log list
Modo de log do banco de dados: Modo de arquivamento
Arquivamento automático: Habilitado
Destino de arquivamento: /home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Sequência mais antiga de log online: 6
Próxima sequência de log a ser arquivada: 8
Sequência atual de log: 8

SQL> alter system set log_archive_dest_1=’’;  –-Modificar o log de arquivamento como caminho de armazenamento padrão do banco de dados

Sistema alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           ?/dbs/arch
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

SQL> alterar banco de dados para aberto;
Banco de dados alterado.

SQL> archive log list
Modo de log do banco de dados           Modo de arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           ?/dbs/arch
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

SQL> select flashback_on,open_mode from v$database;
FLASHBACK_ON       OPEN_MODE
–---------------- --------------------
YES           LEITURA E GRAVAÇÃO

SQL> desligar imediatamente
Banco de dados fechado.

SQL> startup
Instância ORACLE iniciada.

SQL> archive log list
Modo de log do banco de dados           Modo de Arquivamento
Arquivamento automático           Habilitado
Destino do arquivamento           USE_DB_RECOVERY_FILE_DEST
Sequência mais antiga de log online     6
Próxima sequência de log a ser arquivada   8
Sequência atual de log           8

Conclusão: O log de arquivamento é o caminho de armazenamento padrão do banco de dados. Quando a função de retrocesso (flashback) está habilitada, mude para o modo de arquivamento. Por padrão, o caminho do log de arquivamento é o mesmo do diretório de retrocesso (flashback area).

Partilhar em:

Categories: Database Tips