Oracle 10g: Startup automático

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.

[ Hits: 185.199 ]

Por: Sérgio Roberto Carneiro em 22/04/2006


Testando as novas configurações



Se você foi criterioso durante o processo de configuração, não tenha medo de rebootar o seu servidor.

$ su
# reboot


Checando o listener


Quando o sistema voltar, verifique se a instância do listener foi iniciada digitando os seguintes comandos em seu terminal:

# su - oracle
$ lsnrctl status


Caso o listener tenha sido iniciado com sucesso, você receberá a seguinte mensagem:

LSNRCTL for Linux: Version 10.1.0.3.0 - Production on 15-DEC-2005 10:18:39

Copyright (c) 1991, 2004, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.1.0.3.0 - Production
Start Date 14-DEC-2005 10:12:46
Uptime 1 days 0 hr. 5 min. 52 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/Db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/Db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.99.233)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "oradsv" has 1 instance(s).
Instance "oradsv", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

Caso contrário, o comando retornará:

LSNRCTL for Linux: Version 10.1.0.3.0 - Production on 15-DEC-2005 11:03:04

Copyright (c) 1991, 2004, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.99.233)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused

Checando o banco de dados


Para verificar se o banco está rodando, há duas maneiras.

Primeira maneira - Autentique-se no "sqlplus" digitando os seguintes comandos em seu terminal:

# su - oracle
$ sqlplus /nolog

$ sql> conn / as sysdba;
Connected.


Caso o banco não tenha sido iniciado, ao invés de "Connected" você verá a mensagem "Connected to an idle instance". Traduzindo para o português: "Conectado a uma instância vazia".

Segunda maneira - Utilize o comando "ps" no terminal:

# ps -aux | grep ora

Se a saída apresentar processos similares aos listados abaixo, significa que seu banco está rodando normalmente após o startup:

oracle 11604 0.0 2.1 245916 10988 ? S 10:35 0:00 ora_pmon_oradsv
oracle 11606 0.0 2.8 245316 14396 ? S 10:35 0:00 ora_mman_oradsv
oracle 11608 0.0 3.6 247860 18548 ? S 10:35 0:00 ora_dbw0_oradsv
oracle 11610 0.0 2.0 259784 10756 ? S 10:35 0:00 ora_lgwr_oradsv
oracle 11612 0.0 2.2 246340 11400 ? S 10:35 0:00 ora_ckpt_oradsv
oracle 11614 0.0 8.6 245376 44244 ? S 10:35 0:01 ora_smon_oradsv
oracle 11616 0.0 2.9 245340 15076 ? S 10:35 0:00 ora_reco_oradsv
oracle 11618 0.0 5.6 246424 28780 ? S 10:35 0:00 ora_cjq0_oradsv
oracle 11620 0.0 1.8 246476 9372 ? S 10:35 0:00 ora_d000_oradsv
oracle 11622 0.0 1.7 245904 9128 ? S 10:35 0:00 ora_s000_oradsv
oracle 11628 0.0 2.0 245320 10536 ? S 10:35 0:00 ora_qmnc_oradsv
oracle 11630 0.0 7.5 247452 38680 ? S 10:35 0:02 ora_mmon_oradsv
oracle 11632 0.0 2.9 245360 15360 ? S 10:35 0:00 ora_mmnl_oradsv
oracle 11634 0.0 13.7 246480 70680 ? S 10:35 0:12 ora_j000_oradsv
oracle 15597 0.0 2.3 245344 11968 ? S 12:59 0:00 ora_j001_oradsv
oracle 15599 0.0 3.2 246388 16716 ? S 12:59 0:00 ora_j002_oradsv
oracle 16971 0.0 2.0 245340 10464 ? S 13:48 0:00 ora_q001_oradsv
oracle 17108 0.0 2.1 245344 10868 ? S 13:53 0:00 ora_q002_oradsv

Esses processos atuam no "background" do servidor e, entre algumas tarefas, têm a responsabilidade de gerenciar recursos.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Arquitetura básica de um banco de dados Oracle
   3. Arquivos e diretórios: uma rápida pesquisa
   4. Escrevendo um script de startup
   5. Corrigindo os scripts dbstart e dbshut
   6. Automatizando o startup e o shutdown do banco
   7. Ajustando o arquivo oratab
   8. Testando as novas configurações
   9. Considerações e agradecimentos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando um servidor PHP5 com suporte ao Oracle no Ubuntu 9.10

Memórias Database Oracle (SGA x PGA) - Entenda a diferença e como calcular a HugePages

Migração de arquivos do tipo BLOB para sistema de arquivos

Configurando o SuSE Linux para o Oracle 10g

Instalação do Oracle Express 10.2 no Slackware 13.1

  
Comentários
[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.

Ótimo artigo, parabéns!

[2] Comentário enviado por royrocha em 28/11/2007 - 15:13h

Show de bola o artigo.. fiz aqui e funcionou blz! Muito bom!

[3] Comentário enviado por fpassanha em 29/01/2008 - 09:15h

Gostei muito, estou iniciando no mundo de DBA e este é um artigo que vai me ajudar muito.

[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.

[5] Comentário enviado por jhugor em 09/12/2009 - 15:51h

Obrigado a todos ai! Tambem estou iniciando no campo e com certeza vai me ajudar muito! Valeu Valeu! Espero poder retribuir em breve!

[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.

Agradeço pelo excelente trabalho.


[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".

A frase "É dando que se recebe." é verdadeira. =)

Grande abraço. E mais uma vez, Obrigado!

Sucesso a todos.

[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.

Parabéns.

[10] Comentário enviado por dolivervl em 20/09/2012 - 10:49h

Muito obrigado, esse artigo me ajudou muito, precisei fazer somente algumas pequenas alterações.

OBRIGADO !!!!

[11] Comentário enviado por renatu em 27/05/2013 - 10:18h

Amigo obrigadão pelo tutorial, estou necessitando implantar essa automatização nos clientes. Vou seguir o tutorial agora.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts