我第一次从来没有让这个工作正常进行,但现在我似乎根本无法做到这一点。
某个地方有一个使用数据库的连接池,因此当应用程序正在使用数据库时尝试删除数据库应该会出现此错误。问题是当我发出以下命令时没有与数据库的连接:
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 的管理员。连接池用户在静默状态期间无法连接。
答案1
如果 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 force
必要db2 terminate
。这只是我们的最佳实践。
答案2
我只是使用 'db2stop force',然后使用 'db2start',然后 drop db。这种方法比本质上是异步的 quiesce 命令更好。
答案3
您的问题可能是由于connect reset
和的差异而发生的terminate
。请查看这次讨论。您还可以查看 IBM 文档。因此,如果您运行 ,它可能会对您db2 terminate instead
有用db2 connect reset
。
答案4
从命令行执行以下步骤。这将删除数据库:
强制所有应用程序;
停用 db;
删除数据库;