我第一次从来没有让这个工作,但现在我似乎根本无法做到。
在某处使用数据库的连接池,因此在应用程序使用数据库时尝试删除数据库应该会出现此错误。问题是当我发出这些命令时没有连接到数据库:
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 =>
有人有任何线索吗?我以本地管理员(windows 2008)的身份运行 cmd-windows,这也是 DB2 的管理员。连接池用户在静默状态期间无法连接。
如果 Arun 的提示不起作用,就像提示一样,因为远程应用程序正在立即重新连接到数据库。
不过,不确定是否
db2 force
有db2 terminate
必要。这只是我们的最佳实践。我只使用 'db2stop force',然后使用 'db2start',然后删除 db。这种方式比本质上是异步的 quiesce 命令要好。
您的问题可能是由于 和 的差异而发生
connect reset
的terminate
。看看这个讨论。您还可以查看 IBM 文档。因此,如果您运行 adb2 terminate instead
of a ,它可能对您有用db2 connect reset
。停顿将阻止 drop 工作。我们参与了大规模的清理工作,在运行 revoke/connect 和静默数据库后,我们等了几个月才删除测试数据库。除非我们取消静默数据库然后删除,否则我们的 drop 命令将不起作用。
从命令行执行这些步骤。这将删除数据库:
强制应用所有;
停用数据库;
删除数据库;
当数据库被停顿时,它仍然在数据库管理器的数据库链上,尽管被标记为停顿。当您尝试删除它时,我们将检查它是否在此链上;如果是这样,那么它仍在使用中 ==> 你不能放弃它。
您必须发出 unquiesce db 或发出 db2stop 和 db2start 然后尝试删除它。它应该工作。
我有类似的问题,但无论我如何强制应用程序停止,它都会自动返回。
就我而言,它是一个锁定数据库的服务。
我可以通过使用在 DB2 应用程序列表中找到的 PID 从 Windows 任务管理器终止 PID 服务来解决这个问题。
要查找 PID,请打开 DB2 控制中心、所有数据库、数据库(您要删除的那个)、应用程序列表、显示锁链、显示锁详细信息并向下滚动以找到客户端进程 ID 并终止此 PID 并重试。
希望这对未来的人们有所帮助。