BLOG RODRIGO ALMEIDA

O que é um Control file ?

by Rodrigo Almeida on jan.25, 2010, under Conceito

Olá,

Alguns profissionais iniciantes em Oracle, ainda tem muitas dúvidas sobre diversos conceitos de arquitetura do banco de dados Oracle, por isso, resolvi discutir sobre um ponto bem importante, O que é um Control file?

Tradução

Control file = Arquivo de Controle, tradução em português para a palavra que é muito utilizado na literatura Oracle brasileira.

Visão Geral

O arquivo de controle é um arquivo binário necessário para iniciar e operar com sucesso o banco de dados. O arquivo de controle é atualizado constantemente pelo Oracle durante sua utilização, onde fica disponível para escrita, apenas quando o banco de dados está aberto, ou seja, OPEN. Caso o arquivo de controle não esteja acessível por alguma razão, o banco de dados não irá funcionar corretamente, podendo trazer problemas ao iniciar a instância. Todo arquivo de controle é sempre associado somente com um único banco de dados, não pode existir um arquivo de controle que seja utilizado por mais de uma instância, até em ambientes de Real Application Cluster (RAC), existe um arquivo de controle para cada instância.

Contéudo

Um arquivo de controle possui diversas informações de um banco de dados que é requerida pela instância. Durante o processo de startup ou uma operação normal, somente o Oracle Server pode modificar as informações no arquivo de controle, deste modo, nenhum DBA ou usuário pode modificar seu contéudo.

As informações que o arquivo de controle possui são:

  • Nome do banco de dados
  • Data de criação do banco de dados
  • Os nomes e localizações de cada datafile e redo log associados ao banco de dados
  • Informações sobre as tablespaces
  • Possíveis datafiles com status offline
  • O histórico de logs
  • Sobre os archives gerados
  • Backupsets e backup pieces, gerados pelo RMAN
  • Backups de datafiles e informações de redo log
  • Cópia de datafiles
  • O valor atual do número da sequência do log
  • Informações de checkpoint

Para cada datafile ou redo log que é adicionado, renomeado, modificado ou excluído do banco de dados, o arquivo de controle é atualizado pelo Oracle Server para garantir a modificação da estrutura física da base. Essas modificações pode ser:

  • O Oracle pode identificar os datafiles e redo logs que foram abertos durante o processo de startup
  • Identificar os arquivos que são necessários ou disponíveis em caso de recuperação do banco de dados

Portanto, para cada modificação na estrutura física do banco de dados, podendo ser feito atráves do comando ALTER DATABASE, é altamente recomendado que seja feito um backup do seu arquivo de controle para evitar possíveis problemas no próximo processo de startup do banco de dados.

Como o arquivo de controle armazena informações sobre os checkpoints, a cada três segundos, o processo de plano de fundo (CKPT) registra as posições do redo log, essas posições serão utilizadas posteriormente  durante um processo de recuperação do banco de dados, onde o Oracle irá dizer se todas as entradas dos grupos de redo log serão necessárias para realizar tal recuperação.

Referência

Oracle Concepts 10g Documentation

Abraços,

:, , , , , , ,

4 Comments for this entry

  • Rodrigo Almeida

    Olá Clécio,

    O banco suporta sim caracteres chineses, existem até Data types para esse tipo de caracteres, que são os NVARCHAR2 e NCLOB, pois esses caracteres ocupam muito mais espaço.

    Porém, se quiser deixar o banco de dados com esse conjunto nativo, deverá criar o banco de dados com o CHARACTER SET correspondente, existe uma documentação na OTN que tem uma lista de characteres e o nome do seu conjunto.

    Abraços,
    Rodrigo Almeida

  • Clecio R. Tavares

    Olá Rodrigo, tenho uma duvida não sei se poderá me ajudar e se esse é o lugar correto para tirar a duvida com vc, mas lá vai….

    Estou implementado um ambiente teste com o Oracle na empresa em que trabalho, mas antes de fazer a implementação deste banco eu tenho uma duvida quanto aos caracteres, o Banco de Dados Oracle suporta caracteres Chineses? Como faço essa configuração, se tenho que fazer?

    Att,
    Clécio Ricardo Tavares

  • Rodrigo Almeida

    Olá Erik,

    Bom, quando você utiliza o DBCA (Database Create Assistent) para criar um banco de dados, ele automaticamente cria 3 arquivos de controle, que geralmente estão na mesma unidade de disco, para você colocar os arquivos de controle desejados em outras unidades de disco, você deverá realizar as seguintes etapas:

    1) shutdown immediate;

    Parar o seu banco de dados, pois ele atualiza constantemente o seu control file.

    2) Copiar o control file para nova unidade de disco

    Você irá pegar uma das cópias do arquivo de controle e copiar e colar em outro destino, no seu caso, uma nova unidade de disco ou partição. Dica: Mantenha o padrão no nome das pastas com o Oracle, exemplo: D:\oracle\oradata\\controlfile01.ctl

    3) Alterar o parâmetro control_files = (“\controlfile01.ctl”);

    Você deverá ir até o init.ora da sua instância e alterar o caminho do arquivo que você copiou para o novo destino. Altere APENAS do arquivo que você copiou.

    ATENÇÃO

    Talvez o seu banco de dados não esteja com arquivo de parâmetro (init.ora) e sim com SPFILE, então, faça um PFILE primeiro e depois siga as orientações acima.

    SQL> CREATE PFILE= “\init.ora” FROM SPFILE;

    Abraços,
    Rodrigo Almeida

  • Erik

    Muito bom o artigo.
    Algumas dúvidas, se possível me esclareça.

    Na instalação do Oracle e na criação do banco, são criados 3 control files correto? Todos esses arquivos o Oracle fica sempre utilizando? Caso eu queira criá-los em outra partição do disco como que faço para o Oracle começar a utilizá-lo?

Leave a Reply

Oracle Community


Comunidad Oracle Hispana


OracleMania