Este artigo tem o objetivo de explicar de forma detalhada a configuração de um "startup" automático do banco de dados Oracle para versões 10g. Isso é útil para bancos que precisam rodar em 24x7.
Fazem parte do pacote Oracle Database 10g inúmeros shell scripts e arquivos de configurações que auxiliam o administrador na tarefa de gerenciar o banco em sistemas *NIX. Para esta preposição, entretanto, são necessários apenas 3 (três) desses arquivos:
Arquivo
Descrição
dbstart
Script shell que, efetivamente inicia o nosso
banco de dados.
dbshut
Script shell que para o serviço do nosso
banco de dados.
oratab
Arquivo responsável por indicar quais bancos deverão
ser iniciados no startup do sistema.
Para localizar os arquivos "dbstart" e "dbshut" existem 2 (duas) alternativas:
1ª alternativa:
Abra um terminal como root e digite os seguintes comandos:
$ su
# find / -name [nome_do_arquivo] - print
Onde [nome_do_arquivo] refere-se a um dos arquivos apresentados na tabela acima.
Ao localizar o arquivo em seu S.O., não poderá haver duplicidade de arquivos, ou seja, não pode haver dois arquivos iguais. Se isso ocorrer, significa que há mais de uma instalação do Oracle 10g em seu servidor. Geralmente isso representa tentativas de instalação mal-sucedidas e os arquivos duplicados são resíduos dessas operações.
2ª alternativa:
Se o seu servidor Oracle estiver rodando normalmente, pressupõe-se que você tenha as seguintes variáveis ambientais configuradas em seu S.O:
$ORACLE_HOME
$ORACLE_SID
Caso não saiba se essas variáveis existem em seu S.O, abra um terminal como root e digite:
# su - oracle
# echo $ORACLE_HOME $ORACLE_SID
Se as variáveis estiverem iniciadas, você deverá obter um saída similar a esta:
/u01/app/oracle/product/10.1.0/Db_1 orasid
Onde, separados por espaço, aparecem os valores das duas variáveis.
Note-se: O primeiro valor corresponde ao diretório onde estão localizados binários, configurações, logs, entre outros arquivos do software Oracle. O segundo valor corresponde ao nome do seu banco de dados na máquina em questão. Recomendo que guarde esses valores, já que esses caminhos variam de uma instalação ORACLE para outra e, certamente, os valores descritos acima refletem apenas a minha realidade.
Sabendo que o seu $ORACLE_HOME é /u01/app/oracle/product/10.1.0/Db_1, você encontrará o arquivo "dbstart" e "dbshut" no subdiretório bin do PATH acima. Você pode averiguar a existência desses arquivos com os comandos:
$ su
# cat /u01/app/oracle/product/10.1.0/Db_1/bin/[dbstart|dbshut]
Onde, [dbstart|dbshut] representa um dos arquivos que se pretende visualizar.
[1] Comentário enviado por israel_miranda em 22/11/2007 - 15:38h
Cara, muito bom artigo. Muito descritivo e bem objetivo. Nunca programei aplicação para oracle, e sou totalmente inexperiente no SGDB, instalei o oracle10g hoje no debian etch 4.0, e o script funcionou com algumas alterações.
Gostaria de fazer apenas algumas observações:
* No release 2 do oracle 10g, os scripts dbstart e dbshut, já apontam para o caminho certo: /etc/oratab
* No arquivo de inicialização initora, vc não colocou o comando export depois da definição da variável de ambiente TNS_ADMIN. Não sei se é preciso que essa variável seja exportada, coloquei o export na dúvida.
TNS_ADMIN=$ORACLE_HOME/network/admin/listener.ora; export TNS_ADMIN
* Também no arquivo de inicialização initora, a linha que inicia o banco de dados está faltando abrir aspas, e o parâmetro - , não sei porque não funcionou no meu sistema, utilizei o -l que é sinônimo:
su oracle -c -l "/u01/app/oracle/product/10.2.0/bin/lsnrctl start"
* no debian, o arquivo /etc/rc.local tem o comando exit 0 no final, portanto o comando echo /usr/local/sbin/initora >> /etc/rc.local não funcionaria, já que a linha seria adicionada no final do arquivo, e não seria executada, mas aí foi só editar o arquivo manualmente.
[4] Comentário enviado por agiongo em 01/10/2009 - 09:57h
Estou aqui e criei a conta especialmente para agradecer o autor. Raramente escrevo comentarios em artigos, mas este merece meus agradecimentos e consideracao. Outros artigos falam vagamente das coisas e ensinam de forma bem direta e pouco comentada dificultando o entendimento, este por sua vez soube explicar e realmente tudo que diz no artigo funciona como deveria.
[6] Comentário enviado por elias_dbaora em 16/12/2009 - 09:58h
Olá a todos. Muito bom o artigo. Mesmo para quem já está familiarizado com instalações do Oracle, sempre vale uma consulta, o texto ficou muito claro (créditos prá quem merece, não? é). Uma sugestão, para facilitar a configuração do runlevel em /etc/init.d, adicionar no artigo, menção aos aplicativos específicos que vão mudar a cada distribuição:
Para REDHAT:
chkconfig
Para Suse:
yast runlevel
Ambos são usados para criar os arquivos de link simbolico K e S no diretório rc3.d (ou rc5.d ou rc.local, depende do Default-Start) automaticamente e sem erros de sintaxe e mostrando com mais facilidade se estão sendo carregados automaticamente no boot dependendo do cabeçalho do script de poderia ser adicionado em INITORA, assim mesmo com # que indicando comentário, mas é lido pelos aplicativos acima indicados:
#!/bin/sh
### BEGIN INIT INFO
# Provides: Oracle_Alfa
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# chkconfig: 35 80 05
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: start/stop Oracle 9
# Description: start/stop listener e o banco Oracle 9
### END INIT INFO
#
[7] Comentário enviado por diplo91 em 16/12/2010 - 11:07h
Como o "agiongo", fiz questão de criar a conta devido à qualidade do trabalho e também pelo nível dos comentários que "excede expectativas" em virtude do zelo com as informações.
O motivo maior em postar esta nota foi a humildade observada no pedido de revisão do texto (isso é raro) e principalmente pela virtude em compartilhar o conhecimento.
[8] Comentário enviado por rafaeloaf em 06/01/2011 - 10:09h
Caro Sr.Carneiro,
A bastante tempo atrás você, quando iniciou com o linux, deve se lembrar da felicidade que ficou quando, ao realizar alguma tarefa com qualquer nível de complexidade que seja (no meu caso, instalar o Oracle 10g R2 e configurá-lo), tudo correu bem e deu certo. Então, o sorriso automaticamente aparece, seguido de um "PU%$ M@$$$$$$$$$$!!! Essa P*@@$ deu certoooo!!!"... =)
Pois bem. É assim que me sinto. Estou feliz demais por isto dar quase certo (ainda me falta configurar inicialização do "dbstart", que está por umfio). Só me falta fazer algumas correções pra que tudo funcione corretamente.
Mas, o que me trás a comentar em seu artigo, é que eu realmente fiquei impressionado com a riqueza de detalhes encontrada em sua escrita.
Por causa de seu artigo, tornou-se possível o afastamento de minhas "dores de cabeça", o término de minha tarefa - instalação e configuração do Oracle 10g R2 no CentOS 5.5 - e, o mais importante de tudo para mim, o grande e excelente aprendizado sobre esse Sistema Operacional, que a cada dia, se mostra ainda mais fantástico, de todos os pontos de vista.
(Digo isso por que sempre tive vontade de aprender, mas sempre tive medo de não conseguir realizar determinada tarefa ou ter de recorrer novamente ao Windows XP para fazer algo. E como muitos, não tentava.)
E para finalizar, quer dizer que seu Artigo foi extremamente útil e importante em minha tarefa e de 0 a 10... Merece 11. Muito bem escrito. Muito bem explicado. E como nosso amigo ::diplo91:: explicitou, também fiz o mesmo sobre o que o usuário ::agiongo:: fez, criei uma conta para realizar a escrita deste comentário. A última observação fica para o que também disse ::diplo91:: "... a humildade observada no pedido de revisão do texto (isso é raro) e principalmente pela virtude em compartilhar o conhecimento".
[9] Comentário enviado por icfranca em 18/08/2012 - 13:09h
Muito bom.
Mesmo tanto tempo depois me ajudou bastante.
Pra quem for utilizar ficar ligado apenas em alguns caminhos que ligam o dbstart e dbshut pois o caminho está faltando o /bin, o que se resolve facilmente.
Outro detalhe é no scritp initora su oracle -c "...." - o comando de inicialização tem que ficar entre aspas.