我要关闭具有多个数据库的db2实例中的一个数据库。 我不想停用数据库,因为当我尝试连接时它将重新连接。应该将其完全关闭,以便在尝试连接到数据库时出现连接错误。
答案 0 :(得分:1)
这不是编程问题,因此可以视为非主题。
有不同的技术,每种都有优点/缺点。
您可以quiesce数据库,以后再取消其静默。
或者您可以撤销连接权限,然后再授予它们,但这取决于您完成角色分离的程度。
或者您强制关闭现有应用程序,然后将in exclusive mode
作为实例所有者连接(前提是您的应用程序绝不使用实例所有者凭据进行连接)。
答案 1 :(得分:1)
您可以使用的一个技巧是使用其他名称临时重新列出要停用的数据库。这将阻止应用程序使用原始名称与其进行连接,无论它们使用什么权限。
首先,通过查看其目录条目确定数据库路径:
db2 list db directory
您需要的是“本地数据库目录”属性的值。
现在您可以重新编录数据库:
db2 uncatalog db orig_db
db2 catalog db orig_db as foobar on <path>
其中<path>
是先前确定的本地数据库目录。
一旦您强制所有当前连接到该数据库的应用程序,您将能够停用该数据库:
db2 list applications
db2 "force application (<app id 1>, <app id 2>,...)
db2 deactivate db foobar
之后,您可以将目录条目恢复为其原始值:
db2 uncatalog db foobar
db2 catalog db orig_db on <path>