Oracle: ORA-01089: encerramento imediato em andamento - nenhuma operação é permitida

0

Eu tenho o Oracle XE 10.0.2 instalado no meu sistema de desenvolvimento.

Recentemente, não consegui reiniciá-lo:

$ sudo /etc/init.d/oracle-xe stop
Shutting down Oracle Database 10g Express Edition Instance.
Stopping Oracle Net Listener.

$ sudo /etc/init.d/oracle-xe start
Starting Oracle Net Listener.
Starting Oracle Database 10g Express Edition Instance.

$ sqlplus 

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 4 19:54:53 2014

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

Enter user-name: hr
Enter password: 
ERROR:
ORA-01089: immediate shutdown in progress - no operations are permitted

Então eu tentei matar todos os processos oracle manualmente:

$ sudo killall oracle tnslsnr

Isso mata os processos (eles não estão mais listados em ps ). Eu tentei iniciar o Oracle novamente:

$ sudo /etc/init.d/oracle-xe start
Starting Oracle Net Listener.
Starting Oracle Database 10g Express Edition Instance.

O SQL * Plus apresenta o mesmo erro.

/usr/lib/oracle/xe/app/oracle/admin/XE/bdump/alert_XE.log diz:

Starting Oracle Database 10g Express Edition Instance.
Tue Feb  4 19:59:30 2014
Starting ORACLE instance (normal)

Eu não reconfigurei a Oracle recentemente, mas a desliguei com força (desligue), então pode estar em um estado inconsistente que eu preciso forçá-la a se recuperar.

    
por Ole Tange 04.02.2014 / 20:23

2 respostas

1

Um guia completo sobre como liberar o Oracle no GNU / Linux do ORA-01089 é aqui .

A ideia é basicamente fazer o login no Oracle como sysdba e emitir um comando de desligamento (o usuário oracle no OS é o padrão neste exemplo do link fornecido):

root# sudo su - oracle
oracle$ sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Feb 9 15:16:09 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Enter user-name: / as sysdba
Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> shutdown abort
ORACLE instance shut down.

Em uma única linha:

echo shutdown abort | sudo su - oracle -c "sqlplus / as sysdba"

Se isso não funcionar, experimente alguns dos feitiços no link e termine com:

/etc/init.d/oracle-xe stop
/etc/init.d/oracle-xe start
    
por 09.02.2014 / 15:26
0

Se o envio de um sinal simples TERM não eliminar um processo ( kill por padrão, envia um processo a TERM sinal, que é uma maneira de pedir educadamente que um processo feche e salve dados e / ou arquivos em uso e fim), pode-se enviar um sinal KILL para um processo, por exemplo:

sudo killall -9 oracle tnslsnr

Somente faça isso depois de enviar o processo com um sinal TERM e dando um tempo razoável para fechar as coisas (possivelmente corromper os bancos de dados e o que não, mas se forem 10 minutos, talvez o programa esteja desativado )

OK, uma pesquisa rápida no Google sobre ORA-01989 mostra a seguinte discussão:

link

Onde alguém aponta isso:

ORA-01089: immediate shutdown in progress - no operations are permitted --> happends when you connect to database with a current user, not as sysdba.

E eles dizem que esse erro pode ser corrigido fazendo login no banco de dados como a conta sysdba e desligando ou atualizando o banco de dados Oracle.

(Não, nunca administrei um banco de dados Oracle. Mas minha experiência com códigos de erro é a melhor maneira de obter ajuda do onisciente Google, pesquisando o código de erro ou a mensagem exata)

    
por 04.02.2014 / 21:56