Como verificar o tamanho do Log do arquivo
neste post, falarei sobre os 3 tópicos a seguir.
- como definir o tamanho do Log do arquivo?
- todos os Logs de Arquivo têm o mesmo tamanho?
- Como verificar o tamanho do log do arquivo?
A. Como definir o tamanho do Log do arquivo?
Antes de determinar o tamanho do registro arquivado, você deve saber que os logs arquivados são derivados da troca de registros de refazer online. O que significa que os logs arquivados são aposentados e copiados online refazer logs. Em outras palavras, você não está determinando o tamanho do log arquivado, na verdade você está determinando o tamanho do log de refazer online.
Definir tempo médio para recuperar(MTTR)
mas agora a questão é: como definir um tamanho adequado e ideal para registros de refazer online? Há uma resposta simples para nós. Se o seu banco de dados for o Oracle 10g em diante, você poderá obter um valor ideal na configuração atual da instância.
primeiro, você deve se certificar de que FAST_START_MTTR_TARGET foi definido como um valor diferente de zero.
SQL> show parameter fast_start_mttr_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_mttr_target integer 1800
verifique o tamanho ideal do Log de refazer
se você definiu FAST_START_MTTR_TARGET, ou seja, 1800 segundos neste caso, então você pode obter um valor consultivo para otimizar o tamanho do arquivo de log por esta consulta.
SQL> select target_mttr, estimated_mttr, optimal_logfile_size from v$instance_recovery;
TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE
----------- -------------- --------------------
146 21 1469
como você pode ver, a terceira coluna OPTIMAL_LOGFILE_SIZE é a resposta. A Oracle recomenda que você defina o tamanho do log de refazer para 1469 MB.
em seguida, talvez seja necessário redimensionar os logs de refazer para estar em conformidade com o tamanho recomendado.
B. Todos os Logs de Arquivo têm o mesmo tamanho?
principalmente, os logs arquivados são do mesmo tamanho, mas podem ser afetados pelos seguintes fatores.
refazer todos os logs definidos como do mesmo tamanho?
embora devamos definir todos os grupos de redo log e membros do mesmo tamanho, você pode ver tamanhos diferentes entre os logs de redo são definidos em poucos bancos de dados. Normalmente, os logs de refazer maiores são adicionados após a criação do banco de dados. É por isso que vimos registros arquivados de tamanhos diferentes.
você já definiu o intervalo do interruptor de log?
a comutação de Log pode ser feita em um intervalo fixo, definindo o parâmetro de inicialização ARCHIVE_LAG_TARGET para ajudá-lo a controlar a frequência de arquivamento.
se o parâmetro for definido diferente do valor padrão (0, desativado), alguma troca de log ocorrerá antes que os logs de refazer sejam preenchidos. Esses logs de refazer prematuros fazem logs arquivados de tamanhos diferentes.
Rman Backup
ao lado de definir o intervalo de comutação de log, fazer um backup de banco de dados com logs arquivados pelo RMAN acionará a comutação de log. Por exemplo, gostaríamos de ter um backup completo independente como este:
RMAN> backup database plus archivelog;
Starting backup at 27-JUN-16
current log archived
...
Starting backup at 27-JUN-16
current log archived
...
como você pode ver, 2 registros de refazer foram arquivados pelo RMAN, antes e depois do backup completo. Eles são menores que o tamanho definido.
C. Como verificar o tamanho do log do arquivo?
agora, vamos voltar ao nosso tópico principal, Como verificar o tamanho do log do arquivo no banco de dados?
Tamanho de Cada Logs Arquivados
Para ver o tamanho de cada registo arquivado, nós consulta de V$ARCHIVED_LOG:
SQL> column name format a50;
SQL> column "Size (MB)" format 9999.999;
SQL> select sequence#, name, blocks*block_size/1024/1024 "Size (MB)" from v$archived_log where status = 'A' and standby_dest = 'NO' and completion_time > sysdate-1;
SEQUENCE# NAME Size (MB)
---------- -------------------------------------------------- ---------
175398 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175398.arc 1023.999
175399 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175399.arc 1023.999
175400 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175400.arc 749.232
175401 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175401.arc 43.875
175402 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175402.arc 727.369
175403 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175403.arc 6.957
175404 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175404.arc 1023.993
175405 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175405.arc 1023.999
...
O tamanho de cada arquivo de log pode ser calculado a partir da multiplicação BLOCOS BLOCK_SIZE coluna. Além disso, calculamos apenas registros arquivados que são concluídos em 24 horas e disponíveis no banco de dados principal.
como você pode ver, nem todos os logs de arquivo estão no mesmo tamanho, a maioria dos logs arquivados estão em 1024 MB (ou seja, 1 GB).
Tamanho de Todos os Logs Arquivados
Todos os Disponíveis
Para ver o tamanho total do disponível logs arquivados no principal servidor de banco de dados, nós podemos fazer isso:
SQL> sselect sum(blocks*block_size)/1024/1024/1024 "Total Size (GB)" from v$archived_log where status = 'A' and standby_dest = 'NO';
Total Size (GB)
---------------
436.632
Como podemos ver, temos mais de 400 GB de logs arquivados, devemos eliminá-los de forma mais agressiva a partir de agora.
Últimas 24 Horas
A soma de todos os disponíveis log arquivado tamanho nas últimas 24 horas no principal servidor de banco de dados, nós podemos fazer isso:
SQL> column "Total Size (GB)" format 9999.999;
SQL> select sum(blocks*block_size)/1024/1024/1024 "Total Size (GB)" from v$archived_log where status = 'A' and standby_dest = 'NO' and completion_time > sysdate-1;
Total Size (GB)
---------------
101.828
Nós adicionamos um filtro para limitar o tempo de escopo de logs arquivados.