Serviço oracle-xe no Linux executa mas não levanta o banco

Pessoal,
hoje me deparei com o problema abaixo ao instalar o Oracle-XE em um Servidor Linux (FC5):
Fiz todas as configurações que julgava necessárias, porém quando reiniciei o Linux o script /etc/init.d/oracle-xe rodou automaticamente com a opção "start" porém o banco não subiu.
Rodei o /etc/init.d/oracle-xe stop seguido de um start, não recebi erro nenhum, teoricamente parou o banco e iniciou novamente. O detalhe é que foi rápido demais e novamente o banco não subiu. A única forma que fiz o banco subir foi conectando no sqlplus e dando um startup.
Analisando o script cheguei no sript sql startupdb.sql que é o responsável por fazer o startup do banco. Rodei o comando abaixo e recebi estas mensagens:

-bash-3.1$ $ORACLE_HOME/bin/sqlplus /nolog @$ORACLE_HOME/config/scripts/startdb.sql

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 11:06:34 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

ERROR:
ORA-01031: insufficient privileges

ORA-01031: insufficient privileges

Foi aí que percebi que a falha era de autenticação no banco, porém o script de inicialização não retornava erro algum.
Abri o script "startupdb.sql" que contém o seguinte:

-bash-3.1$ more $ORACLE_HOME/config/scripts/startdb.sql
connect / as sysdba
startup
exit

Tentei rodar a sequencia de comandos na mão e então verifiquei que não estava conseguindo autenticar no banco sem informar a senha.
Conferi o arquivo sqlnet.ora e vi que o parâmetro SQLNET.AUTHENTICATION_SERVICES estava com valor (NONE). Como estava como NONE não me preocupei, achei que não deveria estar bloqueando, sendo assim fui procurar outros possíveis problemas (conferi se o usuário oracle estava no grupo DBA, analisei outros arquivos de configuração), até que resolvi comentar este parâmetro. Desta forma meu arquivo sqlnet.ora do Servidor ficou assim:

#SQLNET.AUTHENTICATION_SERVICES= (NONE)

NAMES.DIRECTORY_PATH= (TNSNAMES)

SQLNET.EXPIRE_TIME = 5

Fiz o teste de conexão novamente e após comentar a linha acima o script rodou normalmente autenticando sem senha.

Parei o banco:
[root@servidor ~]# service oracle-xe stop

Shutting down Oracle Database 10g Express Edition Instance.
Stopping Oracle Net Listener.

Iniciei novamente:
[root@servidor ~]# service oracle-xe start
Starting Oracle Net Listener.
Starting Oracle Database 10g Express Edition Instance.

Conectei como Oracle para ver se o database iniciou mesmo:
[root@servidor ~]# su - oracle
-bash-3.1$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 26 11:18:14 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn / as sysdba
Connected.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
Recebi a mensagem de que o banco já está rodando.


Obs.: O Oracle-xe não cria automaticamente o arquivo sqlnet.ora, eu geralmente coloco este arquivo depois, assim como faço nas estações. De agora em diante vou sempre criar este arquivo com esta opção comentada ou mesmo sem ela.
1 comentário

Postagens mais visitadas deste blog

[Kettle] - Ajuste de problema com horário de verão

[eXo] - Remover janela de solicitação de Registro

Pegando informações de Sessão no Oracle e equivalente no MSSQL