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.

Comentários

Anônimo disse…
Aprendi muito

Postagens mais visitadas deste blog

[Openfire] - Ajuste de horário no cliente Spark

Verificar uso de disco em partição ASM do Oracle 11g no Linux

[Kettle] - Ajuste de Memória de Utilização