REDO LOG FILE

 

Conceito: 

 

Esse arquivo é uma cadeia contínua e cronológica de cada vetor de alteração (“instruções” para desfazer um DML de alteração – insert, update, delete).

Uma utilidade de fácil entendimento desses arquivos é na recuperação de uma base após um problema que necessite “voltar” o backup. 

Para que não haja perda de trabalho até o momento do crash ou erro.

Os arquivos de redo log podem ser aplicados ao backup para refazer o trabalho, adiantando-os no tempo até o momento em que o dano ocorreu.

 

 

Verificando Os grupos e seus membros/arquivos

 

SQL> SELECT a.group#, a.member, b.bytes FROM v$logfile a, v$log b   WHERE a.group# = b.group# order by a.group#;

EX :

 

 1 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01b.log  52428800 

 1 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01a.log  52428800

 2 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo02a.log  52428800

 2 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo02b.log  52428800

 3 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo03a.log  52428800

 3 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo03b.log  52428800

 

* 52428800 = (50MB)

 

 

 

Verificação dos status dos grupos de “redo logs”.

 

SQL> select group#, status from v$log;

EX :

 

    GROUP# STATUS

---------- ----------------

         1 CURRENT

         2 INACTIVE

         3 INACTIVE

 

 

Vamos Amentar o tamanho do REDO no grupo 1

 

1.) Execução do “switch” dos “redo logs”, para tira o grupo 1 de CURRENT.

SQL> alter system switch logfile;

 

2.) Caso não altere devemos executar o checkpoint manualmente

SQL> ALTER SYSTEM CHECKPOINT GLOBAL;

 

3.) Confirmando

SQL> select group#, status from v$log;

EX :

 

    GROUP# STATUS

---------- ----------------

         1 UNUSED

         2 CURRENT

         3 INACTIVE 

 

<< talvez  tenhamos que dar o alter system switch logfile; mais de uma vez >>>

 

4.) Apagando o grupo 1

SQL> alter database drop logfile group 1;

Database altered.

 

5.) Recriando o grupo 1 utilizando os membros/arquivos já existente dando mais espaços para os arquvios crescerem.

SQL> alter database add logfile group 1 ('/local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01b.log','/local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01a.log') size 1024m reuse;

 

Voce tambem pode adicionar novos aqurivos tipo :

alter database add logfile group 1 '/local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01bv2.log' size 1024M;

 

 

Repita os passos acima para o grupo 2 e 3.

 

 

Verificando Os grupos NOVAMENTE

 

SQL> SELECT a.group#, a.member, b.bytes FROM v$logfile a, v$log b   WHERE a.group# = b.group# order by a.group#;

EX :

 

 1 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01b.log  1073741824

 1 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo01a.log  1073741824

 2 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo02a.log  1073741824

 2 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo02b.log  1073741824

 3 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo03a.log  1073741824

 3 /local/aondecoloqueiobanco/eosiddobanco/onlinelog/redo03b.log  1073741824

 

 * 52428800 = (1024MB)