Olá pessoal!
O processo para inicialização de uma instância no banco
Oracle é feito a partir da leitura do seu arquivo de inicialização, e os
tipos desse arquivo é o assunto que vou abordar hoje.
Existem dois tipos de arquivos de inicialização para
o Oracle: o PFILE (que é um arquivo texto conhecido também por init.ora) e o
SPFILE que é um arquivo binário de parâmetros do servidor (conhecido como
spfile.ora).
No post de hoje vou falar sobre alguns conceitos
relacionados a esses arquivos, porém não vou entrar no detalhe sobre
parâmetros, ou pelo menos não é minha ideia, pois o intuito desse artigo é
falar sobre o que são esses arquivos, como e quando são usados.
O PFILE
Esse arquivo armazena os parâmetros de inicialização
para "levantar" uma instância Oracle. Através desse arquivo, o DBA
pode controlar a memória em seu banco de dados Oracle, atribuindo valores para
os parâmetros de memória no arquivo INIT.ORA para o seu sistema. A localização
deste arquivo varia, dependendo do sistema operacional em questão. Por exemplo:
- No UNIX ou
Linux, o init.ora poderá ser encontrado em: $ORACLE_HOME/dbs
- No Windows,
o diretório será: ORACLE_HOME/database
É possível que em alguns sistemas, exista mais de um
arquivo init.ora, o que possibilita ter diferentes bases de dados com seus
próprios parâmetros.
Por exemplo, initDESENV.ora pode controlar o banco de
dados de desenvolvimento, initHML.ora o banco de dados de homologação, e
initPROD.ora banco de dados de produção; ou ainda diferentes ambientes, como:
initRH.ora, initFIN.ora, initADM.ora...
Como o PFILE é um arquivo de texto puro, ele pode ser
editado no VI do UNIX ou no Notepad do Windows.
Para saber quais parâmetros podem ser alterados no
PFILE, recomendo a leitura dos artigos: “INIT.ORA Parameters A-L” e “INIT.ORA
Parameters M-Z” da TOAD WORLD.
O SPFILE (server
parameter file)
O arquivo SPFILE é uma versão binária do PFILE. O
SPFILE não pode ser alterado diretamente, porém através do comando ALTER SYSTEM é possível mudar alguns de seus
parâmetros dinamicamente, ou seja, sem a necessidade de reiniciar o banco de
dados. Para saber quais parâmetros podem ser alterados dinamicamente, pode-se
executar uma consulta em uma view do schema SYS, conforme script abaixo:
SELECT * FROM
V$PARAMETER;
O SPFILE possui
algumas vantagens em relação ao PFILE, pois a Oracle criou procedimentos de
otimização automática do banco baseadas no uso do SPFILE.
É possível verificar se existe o SPFILE com o
seguinte comando:
SHOW PARAMETER SPFILE;
Para criar o SPFILE a partir do PFILE, pode-se
utilizar os seguintes comandos:
CREATE SPFILE FROM PFILE;
ou
CREATE SPFILE FROM
PFILE=’/U01/APP/ORACLE/PRODUCT/11.2.0/DBHOME_1/DBS/initSID.ORA’
ou
CREATE SPFILE=’/U01/APP/ORACLE/PRODUCT/11.2.0/DBHOME_1/DBS/spfileSID.ORA’
FROM PFILE=’/U01/APP/ORACLE/PRODUCT/11.2.0/DBHOME_1/DBS/initSID.ORA’
Após de qualquer um desses comandos, para efetivar a
criação, é necessário reiniciar o banco:
SHUTDOWN
IMMEDIATE;
STARTUP
Pode existir a necessidade, devido a alguma mudança dinâmica
dos parâmetros do banco, que o DBA necessite gerar um novo init.ora (PFILE), a
partir do SPFILE. O comando para realizar essa criação é:
CREATE PFILE FROM SPFILE;
Executando esse script, será criado um PFILE chamado
init.ora no diretório $ORACLE_HOME/dbs (Linux/Unix) ou no $ORACLE_HOME/database
(Windows).
É possível também que o DBA especifique um diretório
de sua preferência para gravar o PFILE, basta executar comando:
CREATE PFILE=C:/TEMP/initTESTE.ORA
FROM SPFILE;
Caso seja necessário iniciar um banco Oracle com o
PFILE pode-se utilizar o seguinte comando:
STARTUP OPEN
PFILE='/OPT/ORACLE/PRODUCT/9IR2/DBS/initSID.ORA'
Uma consulta interessante para saber se sua instância
está utilizando o SPFILE ou PFILE, é apresentada abaixo:
SELECT DECODE (VALUE, NULL, 'PFILE',
'SPFILE') "INIT FILE TYPE" FROM SYS.V_$PARAMETER WHERE NAME =
'SPFILE';
É importante saber que para iniciar uma instância
Oracle, os parâmetros de inicialização são buscados nos diretórios devidos
(mencionados anteriormente com a variação entre UNIX e WINDOWS), na seguinte
ordem:
1.
spfileSID.ora
2.
spfile.ora
3.
initSID.ora
4.
init.ora
Bom pessoal, por hoje é só!
Espero ter ajudado a entender um pouco sobre arquivos de inicialização no banco Oracle.
Sinta-se a vontade para deixar seu comentário com críticas, sugestões ou elogios sobre os artigos. Isso me ajuda a saber se agrado ou não com meus artigos e seus temas.
Grande abraço e até a próxima!
Referências:
ORACLE HOME. Disponível em:
http://www.oracle-home.ro/Oracle_Database/Maintenance/PFILEvsSPFILE.html.
Acessado em: 20/05/2013.
Carvalho, Pedro - Arquivos de Parâmetros PFILE e
SPFILE do Oracle. Disponível em:
http://www.pedrofcarvalho.com.br/PDF/ORACLE_SPFILE_PFILE.pdf. Acessado em:
20/05/2013.
Oracle
- Starting Up a Database. Disponível em:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/start001.htm. Acessado
em: 21/05/2013.
Oracle - Specifying Initialization Parameters.
Disponível em:
http://docs.oracle.com/cd/B28359_01/server.111/b28310/create005.htm. Acessado
em: 21/05/2013.
TOAD
WORLD - INIT.ORA Parameters A-L. INIT.ORA Disponível em:
http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/ARC513A/Default.aspx.
Acessado em: 21/05/2013.
TOAD
WORLD - INIT.ORA Parameters M-Z. Disponível em:
http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/ARC513B/Default.aspx.
Acessado em: 21/05/2013.
TOAD
WORLD - INIT.ORA Parameters. Disponível em:
http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/ARC513/Default.aspx.
Acessado em: 21/05/2013.
TOAD
WORLD - Creating an SPFILE. Disponível em: http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/SPF1/Default.aspx.
Acessado em: 21/05/2013.