Pessoal,
Neste Post vamos falar um pouco sobre um assunto que tenho muito interesse, o Tuning do Banco Oracle.
Tuning é um assunto muito grande e complexo, por isso vou atacar neste Post apenas uma parte do Tuning do Redo Log, porém de forma objetiva e eficaz.
O tamanho e a quantidade dos REDO LOG's influenciam muito no desempenho de gravação do Banco. Tanto para um processo de importação de dados quanto para instruções DML.
Para melhoria de performance a Oracle recomenda que os arquivos de Redo Log estejam em um disco diferente do disco onde localiza-se os os arquivos de dados (Data Files) e que a troca dos arquivos de redo log seja feita entre 20 à 30 minutos no máximo, pois menos causa contenção de escrita e mais que 30 minutos aumenta muito o tempo de recuperação.
Como posso identificar de quanto em quanto tempo a troca do Redo Log está sendo realizada ?
Para isso você deve fazer uma regra de três no tamanho do redo:Ex: você tem troca de redo a cada 10 minutos, o tamanho do seu redo log é de 100MB cada grupo.
Então você deve recriar com 300MB para que o tempo suba para 30 minutos.
A query que faz esta verificação é a seguinte:
select group#,
thread#,
to_char(first_time,'DD/MM HH24:MI') TROCA_REDO,
(BYTES /1024/1024) TAMANHO_MB
FROM V$LOG ORDER BY 2, FIRST_TIME;
Como faço para alterar o tamanho dos arquivos de Redo Log ?
Abaixo segue o procedimento para realizar a alteração:
-- Para verificar o arquivo de redo log corrente:
SELECT * FROM V$LOG;
-- Para alterar/recriar o arquivo de redo log ele deve estar com STATUS INATIVO, caso necessite forçar a troca do arquivo de Redo Log, execute o comando abaixo:
ALTER SYSTEM SWITCH LOGFILE;
-- Não é possível alterar o tamanho do Redo Log já existente, portanto deve-se eliminar o arquivo ou grupo de Redo Log:
ALTER DATABASE DROP LOGFILE GROUP <<numero_grupo>>;
Exemplo:
ALTER DATABASE DROP LOGFILE GROUP 1;
-- Agora basta adicionar o novo grupo de Redo Log com o novo tamanho:
ALTER DATABASE ADD LOGFILE GROUP <<numero_grupo>> ('<<caminho dos membros>>') size <<tamanho>>;
Exemplo:
ALTER DATABASE ADD LOGFILE GROUP 1 (‘\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01A.LOG’, ‘\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01B.LOG’) SIZE 200M;
A T E N Ç Ã O ! ! !
Por padrão ao criar a Instância Oracle é criado 3 grupos de Redo Log. Porém para que a mesma possa ser iniciada é necessário no mínimo 2 grupos de Redo Log.
Enfim, ao apagar, garanta que tenha ao menos 2 grupos de Redo Log, só apague novamente outro grupo após criar mais um novo !!
Galera é isso aí !!! Espero que esse procedimento possa ajudar a todos caso seja necessário !!
Abraços e até o próximo post,
DIEGO GARCIA FRANCISCO
DBA Oracle
Oracle Database 11g Administrator Certified Associate
(21) 7925-4500 / (21) 8714-2496