terça-feira, 3 de novembro de 2009

Arquivos de Parâmetros PFILE e SPFILE do Oracle

Devido principalmente à semana de provas da faculdade, dei uma pausa rápida nas postagens, mas agora estou voltando com força total.
Além dos Control Files o Oracle ainda tem dois tipos de arquivos de parâmetro, estes arquivos são lidos na inicialização do banco de dados. Quando você inicializa a instância o Oracle verifica o conteúdo do diretório de parâmetros ($ORACLE_HOME/database no Windows ou $ORACLE_HOME/DBS no Linux), e procura primeiramente o SPFILE e depois o PFILE e por fim um arquivo init.ora (forma antiga do Oracle guardar parâmetros), caso ele não encontre nenhum destes arquivos a inicialização falha.

PFILE

O PFILE é um arquivo texto, dentro dele estão guardadas os parâmetros de configuração do banco de dados. Entre outras coisas estes parâmetros informam a quantidade de memória a ser alocada, onde estão os arquivos do banco de dados e onde gravar os arquivos necessários ao funcionamento do banco.
Como o PFILE é um arquivo de texto puro, ele pode ser facilmente editado no VI do UNIX ou no Notepad do Windows. Normalmente ele tem o nome de init.ora, onde SID é a identificação de seu banco de dados, exemplo se seu SID é bdteste então seu PFILE será nomeado como initbdteste.ora

SPFILE

Diferente do PFILE, o SPFILE é um arquivo binário e seu conteúdo não pode ser editado.
Para verificar se ele existe, use o comando:

SHOW PARAMETER SPFILE;

Embora não possa ser editado diretamente, através do comando ALTER SYSTEM você pode mudar seus parâmetros. Embora pareça ser mais fácil usar um PFILE, o SPFILE traz maiores benefícios, pois ele é incluído no backup feito pelo RMAN toda vez que é alterado, o que garante uma recuperação menos problemática em caso de falhas (falarei sobre o RMAN no futuro), a Oracle também introduziu várias rotinas de otimização automática do banco baseadas no uso do SPFILE, mas um dos maiores benefícios do SPFILE é que você pode fazer mudanças dinâmicas (com o banco em uso) em parâmetros persistentes, estas alterações são efetuadas usando o comando ALTER SYSTEM, como no exemplo a seguir:

ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10G;

Um SPFILE usa o mesmo formato de nome que um PFILE, exceto pela palavra SPFILE que fica no lugar de INIT. Por exemplo, se o seu ORACLE_SID é bdteste, o nome do SPFILE será spfilebdteste.ora.

Administrando o PFILE e o SPFILE

A sua maior preocupação com os SPFILE e PFILES será em manter cópias de backup deles, como dissemos antes você pode usar o RMAN para fazer isso, ou pode fazer o backup manualmente. Como o PFILE é apenas um arquivo texto, você pode copia-lo para outro diretório sem afetar a instância, mas no caso do SPFILE, você precisaria primeiro converte-lo em um PFILE, para fazer isso use o seguinte comando:

CREATE PFILE FROM SPFILE;

Será criado um PFILE chamado init.ora no diretório $ORACLE_HOME/database (Windows) ou no $ORACLE_HOME/dbs (Linux/Unix).
Você também pode gravar o PFILE em um outro diretório de sua preferência, basta acrescentar ao comando:

CREATE PFILE=//BACKUP.ORA FROM SPFILE;

Você também pode criar um SPFILE a partir do PFILE que você copiou, usando o comando:

CREATE SPFILE FROM PFILE=/PATH/TO/BACKUP.ORA

Atenção: se o banco de dados esta usando o SPFILE, antes de usar este comando você precisa parar o banco de dados com o comando:

SHUTDOWN IMMEDIATE;

Para ver quais os valores atuais dos parâmetros do banco de dados, use a view dinâmica V$PARAMETER.

0 comentários:

Postar um comentário