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.