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.
Parte 8: 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
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
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.
$ 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.
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!