sábado, 9 de fevereiro de 2013

Conhecendo Melhor seu Banco de Dados : CONTROL FILE

Olá á todos, como vocês tem passado? Espero que bem. 

Hoje trago até vocês um artigo sobre um assunto não tão novo, mais que de certa forma ainda intriga e persegue muitos iniciantes do mundo Oracle, o que não foi diferente comigo quando comecei a trabalhar na área. Muitos dos novos profissionais absorvem muitos conceitos e conteúdos diversos em seus respectivos cursos de Banco de Dados ou no caso dos auto-didatas em suas leituras.

Naturalmente é dificil para qualquer individuo que leve uma vida não só dedicada aos estudos de absorver muitas coisas ao mesmo tempo, isso não é limitação é apenas reflexo de multiplos focos que desenvolvemos ao amadurecermos e ingressarmos no mercado de trabalho.

Bem mas, vamos então tratar do nosso assunto, o objetivo aqui será tentar passar á vocês um pouco mais de conhecimento sobre uma pequena, mas de extrema importancia estrutura do nosso banco de dados, presente em qualquer base de dados ativa hoje no mercado, estamos falando dos CONTROL FILES ( Arquivos de Controle ).

O QUE SÃO OS CONTROL FILES?

Conceitualmente os control files são estruturas de armazenamento de informações cruciais para o banco de dados, que indicam desde sua criação as diversas alterações estruturais que possam vir a ocorrer no tempo de vida util deste banco de dados, informações essas que vão desde endereçamento de arquivos de dados, número de sequencia de mudanças do banco de dados ( SCN - System Change Number) como também toda a parte de arquitetura do seu banco de dados ( diretórios onde foram criados seus respectivos arquivos de dados e etc).

QUANDO MEU CONTROL FILE É ATUALIZADO?

A resposta para isso é muito simples, e se resume em "SEMPRE", pois a cada desligamento do banco de dados ele é atualizado, a cada inicialização ele é atualizado, a cada alteração ou adição de arquivos novos de dados agregados ao seu Banco de dados ele é incorporado ao control file também. Sendo assim analogamente podemos criar um pensamento que seria mais ou menos assim, o CONTROL FILE seria o CÉREBRO HUMANO, ao passo que a INSTANCIA ( SGA + PGA + Outros) seriam os  NEURÔNIOS trabalhando em conjunto para manter a máquina funcionando e sempre "UP TO DATE".

O QUE POSSO ENTÃO FAZER COM O MEU ARQUIVO DE CONTROLE?

Não há performance em cima do arquivo de controle , o que se pode no máximo realizar com esses arquivos é :

- BACKUP PERIÓDICO 
- MULTIPLEXAÇÃO EM PELO MENOS 3

MAS SÓ ISSO? Sim, isso porque o mais importante é que nós compreendamos que o nosso banco de dados pode sobreviver com apenas 1 único arquivo de controle. ISSO É O RECOMENDADO? Não, a própria fabricante em todos os seus manuais de DBA ou até mesmo guias de referencias em sites da web, indica e recomenda que se tenha pelo menos 3 cópias de segurança deste mesmo arquivo para casos de falhas e/ou corrupções que possam vir a ocorrer no dia-a-dia.



E O BACKUP? DEVO FAZELO MESMO SEMPRE? Sim, é de suma importância que para seu ambiente produtivo ou um ambiente não produtivo mais de grande relevância para projetos que se mantenha sempre uma cópia de segurança ( Backup), que em casos extremos servirá como ponto vital para recuperação do seu ambiente.

QUAIS MÉTODOS DE BACKUP EU POSSO USAR PARA MEUS CONTROL FILES?

Isso vai de acordo com o que você tem em mente de necessidade para seu ambiente. Os backups de arquivos de controle podem ser realizados de diversas maneiras :

- via RMAN a cada FULL DATABASE BACKUP ( Lv 0)
- via ALTER DATABASE sempre que achar necessário
- via geração de TRACEFILE apartir de um CONTROL FILE  ( recriação do banco)

Caso opte por fazer um do tipo baseado em TRACE FILE  ( arquivo de rastreamento) lembre-se que assim como qualquer TRACE FILE, ele estará dentro do seu "USER_DUMP_DEST", local padrão para geração de TRACES, isso também se vocề não definir outro diretório na hora da execução do camando.

OK, JÁ ENTENDI, POSSO MANUSEAR MEU ARQUIVO DE CONTROLE DO JEITO QUE EU QUISER E SEMPRE QUE EU QUISER CERTO? 

Errado, este arquivo é muito importante e se faz necessário sempre cautela e prudência na hora de manusear qualquer um desses, a perda dos 3 membros ou mais que você tenha, pode acarretar no fim do seu banco se não houver outras fontes de cópia de segurança, e se essas fontes forem de muito tempo para trás, você terá sérios problemas de recuperação deste ambiente, que precisaŕa de uma outra estrutura d ebanco auxiliar chamada ARCHIVE LOG FILE, para trazer o seu banco no tempo até o momento atual de vida.

Utilizando do arquivo de paramentros SPFILE, você consegue alterar a localização destes arquivos em arquivos de parametros do tipo SPFILE, para alterar o INIT.ORA é necessário edita-lo manualmente e determinar as novas localizações dos arquivos de controle. O comando para essa alteração é :

ALTER SYSTEM SET CONTROL_FILE="path_dos_arquivos" SCOPE=SPFILE;

Pronto dessa forma esta alterado o arquivo SPFILE, porém se houver uma perda deste arquivo de SPFILE, e você precisar iniciar seu banco de dados via INIT.ORA, certifique-se primeiro de que este reflete dentro do parametro CONTROL_FILES o caminho correto dos mesmos.

É POSSIVEL QUE EU ENCONTRE ERROS DENTRO DESSAS ATIVIDADES ACIMA DESCRITAS?

Sim, muito comum alias que os erros relacionados aos arquivos de controle apareçam, principalmente em bases sem equipe de administração local.

QUAIS SÃO ELES?

ORA-0200 : Você tentou criar um arquivo de controle e a operação falhou. Pode ocorrer por "N" razões que vão deste falta d epermissão até diretórios inexistentes.

ORA-0201 : Tentativa de inicializar um banco de dados com um arquivo de controle desatualizado. Isso pode ocorrer se você tem problemas de sincronização , onde o SCN que consta nos datafiles do banco não são os mesmos registrados no seu arquivo de controle.

ORA-203 : Utilização de arquico errado, pode ser de um outro banco restaurado errado.

ORA-204 : Falha na leitura consistente do arquivo. Implica em corrupção do mesmo no processo de restauração ou a cópia já foi feita danificada, por isso o erro.

Esses são só alguns mas ainda temos os ORA-206,207,208,209,210,213 e etc. Cada um com as suas respectivas ações, são erros já identificados pela Oracle e com suas ações pré-determinadas até então.

Bom, espero que tenham gostado, logo mais eu volto para falarmos de mais alguma estrutura de Banco de Dados interessante. Sucesso á todos SEMPRE!!!