Para melhor visualização, recomendo resolução de no mínimo 1280 x 800 e navegador Mozilla Firefox


segunda-feira, 14 de janeiro de 2008

A importância de multiplexar os arquivos de controle (control files) no Oracle

Por Eduardo Legatti

Olá,

O arquivo de controle (control file) de um banco de dados Oracle é um arquivo binário que contém algumas informações críticas do banco de dados, tais como:
  • Nome do banco de dados
  • Informações de checkpoint
  • Números de seqüência de registro de log
  • Histórico de logs de arquivamento (Archive Log history)
  • Timestamp da criação do banco de dados
  • Os nomes dos arquivos de dados e de registro de redo log
  • Redo threads – informações do arquivo de redo log corrente)
  • Modo de operação corrente do banco de dados (ARCHIVELOG ou NOARCHIVELOG)
  • Informações de blocos de banco de dados corrompidos
  • Informações de backup do RMAN (catálogo do RMAN se o mesmo estiver sendo usado)
O tamanho do arquivo de controle é determinado pelos seguintes parâmetros:
  • maxlogfiles
  • maxlogmembers
  • maxloghistory
  • maxinstances
  • control_file_record_keep_time
O arquivo de controle é usado pela instância do Oracle para montar, abrir e atualizar o banco de dados a sua perda pode fazer com que a instância seja abortada. A perda completa de todos os arquivos de controle junto com algum outro arquivo de dados pode significar um dos cenários de recuperação mais difíceis para o DBA. Esse é o motivo pelo qual o arquivo de controle está entre os arquivos de banco de dados mais críticos e deve ser protegido a qualquer custo.

O Oracle fornece o mirroring de software (espelhamento) também chamando de multiplexing para o arquivo de controle, por meio do qual várias cópias do arquivo de controle podem ser especificadas. Essas cópias são todas gravadas simultaneamente pela instância do Oracle e, no caso de perda de uma cópia, as outras cópias ainda estarão disponíveis.

O número das cópias do arquivo de controle e sua localização são especificados com o parâmetro de inicialização de instância do banco de dados CONTROL_FILES. Esse parâmetro deve ser definido com pelo menos duas localizações diferentes (de preferência três), de preferência, cada uma em um disco diferente e um controlador de disco diferente. Todas as cópias do arquivo de controle no mesmo disco anularia o propósito, porque uma falha de disco afetaria todas as cópias simultaneamente. Uma controladora diferente para cada disco adiciona outra camada de segurança, porque além de proteger contra a falha de disco, essa configuração também protege contra a perda de uma controladora de disco. Em resumo, se o arquivo de controle foi multiplexado para três discos diferentes, e se todos esses três discos, usassem a mesma controladora, a instância ainda estaria sujeita a um único ponto de falha. Isso acontece porque uma falha na controladora de disco faria com que todos os três discos e, portanto, os arquivos de controle se tornassem indisponíveis.

Existem duas maneiras de multiplexar os arquivos de controle:

- Através do spfile (A partir do Oracle 9i)
- Através do init pfile (Oracle 8i e anteriores)


Através do spfile

1 - alter system set control_files = 'caminho do controlfile 1', 'caminho do controlfile 2', ... SCOPE=SPFILE;
2 - feche o banco de dados (shutdown immediate).
3 - realize a cópia dos control files para os locais desejados utlizando comandos do SO.
4 - abra o banco de dados (startup).


Exemplo:

SQL> alter system set control_files = '/disco1/oracle/oradata/BD01/control01.dbf',
  2  '/disco2/oracle/oradata/BD01/control02.dbf',
  3  '/disco3/oracle/oradata/BD01/control03.dbf' scope=SPFILE;


Através do init pfile

1 - feche o banco de dados (shutdown immediate).
2 - realize a cópia dos control files para os locais desejados utlizando comandos do SO.
3 - altere o parâmetro control_file manualmente no arquivo de init com as respectivas localizações dos arquivos de controle.
4 - abra o banco de dados (startup pfile=initSID.ora).




Nenhum comentário:

Postagens populares