Eliminar o banco de dados no DB2 9.5 - SQL1035N O banco de dados está atualmente em uso

8

Eu nunca tive esse trabalho pela primeira vez, mas agora não consigo fazer nada.

Existe um pool de conexão em algum lugar usando o banco de dados, portanto, tentar eliminar o banco de dados quando um aplicativo estiver usando o banco de dados deve gerar esse erro. O problema é que não há conexão com o banco de dados quando eu emita estes comandos:

db2 connect to mydatabase
db2 quiesce database immediate force connections
db2 connect reset
db2 drop database mydatabase

Isso sempre dá:

SQL1035N  The database is currently in use.  SQLSTATE=57019

executando este comando não mostra conexões / aplicativos

DB2 list applications

Eu posso até mesmo desativar o banco de dados, mas ainda não posso descartá-lo.

db2 => deactivate database mydatabase
DB20000I  The DEACTIVATE DATABASE command completed successfully.
db2 => drop database mydatabase
SQL1035N  The database is currently in use.  SQLSTATE=57019
db2 =>

Alguém tem alguma pista? Estou executando o cmd-windows como o administrador local (windows 2008) e este também é o administrador do DB2. O connectionpool-user não pode se conectar durante o estado quiesce.

    
por Tommy 28.10.2009 / 10:31

7 respostas

9

Apenas como uma dica, se a dica de Arun não funcionar, porque um aplicativo remoto está instantaneamente se reconectando ao db.

db2 force applications all 
db2 terminate 

db2set DB2COMM= 
db2stop 
db2start 

db2 force applications all 
db2 terminate 

... do your stuff here ...

db2set DB2COMM=TCPIP 
db2stop 
db2start 

Não tenho certeza se o db2 force e o db2 terminate são necessários. É apenas nossa melhor prática.

    
por 18.01.2010 / 17:07
2

Eu apenas uso 'db2stop force', depois 'db2start' e, em seguida, descarta o db. Desta forma, é melhor que o comando quiesce, que é assíncrono por natureza.

    
por 14.12.2009 / 14:27
2

Seu problema pode ocorrer devido às diferenças de connect reset e terminate . Dê uma olhada em esta discussão . Você também pode dar uma olhada na documentação da IBM. Por isso, pode funcionar se você executar db2 terminate instead de db2 connect reset .

    
por 11.02.2010 / 16:21
1

O quiesce impedirá que a queda funcione. Nós estávamos envolvidos em um grande esforço de limpeza e depois de executar a revogação / conexão e desativação dos bancos de dados, esperamos alguns meses para descartar o teste dbs. Nosso comando de drop não funcionaria a menos que nós desquizássemos o db e então caíssemos.

    
por 17.01.2011 / 19:26
0

Siga estas etapas na linha de comando. Isso derrubará o db:

Forçar todos os aplicativos;

desativar db;

soltar db;

    
por 11.10.2010 / 20:32
0

Quando um db está em quiesce, ele ainda está na cadeia de bancos de dados com o gerenciador de db, embora marcado como quiesce. Quando você tentar soltá-lo, verificaremos se ele está nessa cadeia; se assim for, então ainda está em uso == > Você não pode desistir.

Você tem que emitir um db unquiesce ou emitir um db2stop e db2start e então tentar soltá-lo. Deve funcionar.

    
por 21.03.2012 / 23:52
0

Eu tenho um problema parecido, mas não importa o quanto eu forço o aplicativo a parar, ele retornará automaticamente.

No meu caso, é um serviço que está bloqueando o banco de dados.

Consegui resolver isso encerrando o serviço PID do Gerenciador de Tarefas do Windows com o PID localizado na Lista de Aplicativos do DB2.

Para localizar o PID, abra o Centro de Controle do DB2, Todos os Bancos de Dados, BANCO DE DADOS (aquele que você está tentando eliminar), Lista de Aplicativos, Mostrar Cadeia de Bloqueio, Mostrar Detalhes de Bloqueio e role para baixo até localizar ID de Processo do Cliente e encerrar este PID e tente novamente.

Espero que isso ajude as pessoas no futuro.

    
por 06.02.2017 / 22:02

Tags