在DB2 9.5上删除数据库 – SQL1035N数据库当前正在使用中

我从来没有第一次做这个工作,但现在我似乎根本无法做到。

在使用数据库的地方有一个连接池,所以在应用程序使用数据库时试图删除数据库应该给这个错误。 问题是我发出这些命令时没有连接到数据库:

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

这总是给:

 SQL1035N The database is currently in use. SQLSTATE=57019 

运行此命令将显示没有连接/应用程序

 DB2 list applications 

我甚至可以停用数据库,但仍然无法删除它。

 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 => 

任何人有任何线索? 我以本地pipe理员身份运行cmd-windows(windows 2008),这也是DB2的pipe理员。 在quiesce状态期间,connectionpool-user不能连接。

就像Arun的提示不起作用一样,因为远程应用程序会立即重新连接到数据库。

 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 

不知道是否需要db2 forcedb2 terminate 。 这只是我们的最佳做法。

我只是使用'db2stop force',然后'db2start',然后删除数据库。 这种方式比本质上是asynchronous的quiesce命令更好。

由于connect resetterminate的差异,您的问题可能会发生。 看看这个讨论 。 您还可以查看IBM文档。 所以如果你运行db2 terminate instead db2 connect reset它可能会对你db2 connect reset

停顿会阻止工作的下降。 我们参与了大量的清理工作,在运行撤销/连接和停止数据库之后,我们等了几个月才放弃testing数据库。 我们的drop命令不起作用,除非我们解除数据库然后丢弃。

从命令行执行这些步骤。 这将放弃db:

强制所有应用程序

停用数据库;

drop db;

当数据库处于停顿状态时,数据库仍然处于dbpipe理器链中,尽pipe标记为停顿。 当你试图放下它时,我们将检查它是否在这个链上。 如果是这样,那么它仍然在使用==>你不能删除它。

您必须发出一个unquiesce数据库或发出db2stop和db2start,然后尝试删除它。 它应该工作。

我有类似的问题,但不pipe我如何强制应用程序停止,它会自动回来。

就我而言,这是一个locking数据库的服务。

我可以通过从Windows任务pipe理器终止PID服务来解决这个问题,在DB2应用程序列表中findPID。

要查找PID,请打开DB2控制中心,所有数据库,DATABASE(您要删除的那个),应用程序列表,显示locking链,显示locking详细信息并向下滚动以查找客户端进程ID并终止此PID,然后重试。

希望这有助于未来的人们。