O banco de dados Oracle inicializa a partir da leitura de “um de seus arquivos” de inicialização. Como assim, um de seus arquivos?
São dois arquivos. O PFILE, mais conhecido por “init.ora”, e o SPFILE, que é um arquivo de parâmetro do servidor, conhecido como “spfile.ora”.
A instância Oracle inicialmente procura pelo SPFILE, caso não o encontre, buscará pelo PFILE. O SPFILE é uma versão binária do PFILE. Uma das maiores vantagens de se utilizar o SPFILE, é a possibilidade da alteração de diversos parâmetros de forma dinâmica, ativando-os sem a necessidade de reinicialização do banco de dados.
Para verificar a existência do SPFILE, basta executar o seguinte comando:
SQL> show parameter SPFILE;
Para criar o SPFILE a partir do PFILE, utilize os seguintes comandos:
SQL> create SPFILE from PFILE;
ou
SQL> create SPFILE from PFILE=’/u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora’
ou
SQL> create SPFILE=’/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileNomeInstancia.ora’ from PFILE=’/u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora’
Após isto, basta reiniciar o Oracle:
SQL> shutdown immediate;
SQL> startup
Durante o processo de reinicialização, o Oracle encontrará o SPFILE automaticamente.
Sempre faça um backup do SPFILE para um PFILE, pois um dia seu SPFILE pode corromper, então basta inicializar o Oracle a partir do PFILE. Como?
Criando um PFILE a partir do SPFILE, faça:
SQL> create PFILE=’u01/app/oracle/product/11.2.0/dbhome_1/dbs/initBACKUP.ora’ from SPFILE;
Caso o Oracle não inicie devido a um problema no SPFILE, inicialize-o a partir do PFILE salvo:
SQL> startup PFILE=’u01/app/oracle/product/11.2.0/dbhome_1/dbs/initBACKUP.ora’;
O Oracle inicializará normalmente – só por que você fez o backup do SPFILE. Já que agora está tudo mais tranquilo, aproveite para criar um novo SPFILE a partir do PFILE – já que o atual está corrompido – seguindo a dica lá em cima. Ok… Ok… Repetirei:
SQL> create SPFILE from PFILE=’/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initBACKUP.ora’;
SQL> shutdown immediate;
SQL> startup
Pronto, o Oracle voltou a iniciar a partir do SPFILE.
Lembre-se de sempre manter um backup “atualizado” do seu SPFILE em um PFILE.
Todas as operações acima são executadas com um usuário SYSDBA (sqlplus / as sysdba).
IMPORTANTE: Jamais edite de forma manual o SPFILE (spfile.ora), pois o mesmo é binário.
Até a próxima.
Colega, teu artigo salvou minha vida rsrs… Você parece que adivinhou a data em que isso aconteceria comigo.
Que bom!
Abraço
Caro
Salvou o meu dia
Bacana, amigo.
Logo logo estarei publicando novos artigos desta área.
Abraço
Boa tarde,
Luiz.
Muito bom o seu blog, encontrei ele hoje e já naveguei um pouco, mas vejo que está muito bem feito como esse artigo que você postou. Parabéns.
Abraços.
Valeu pela força, Sandro.
Abraço