假设有一个应用程序在不停止循环中尝试从数据库中读取。 我尝试了以下但它不起作用:
db2 CONNECT TO SAMPLE
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
db2 TERMINATE
db2 DEACTIVATE DB SAMPLE
db2 BACKUP DATABASE SAMPLE
似乎(DEACTIVATE DB
)没有做任何事情,因为循环中的应用程序仍然可以从数据库中读取。
我一直收到错误"数据库目前正在使用"在尝试备份时。
答案 0 :(得分:0)
您必须确保没有应用程序连接到数据库(db2 list applications)。此外,您必须确保数据库不活动(db2 list active databases)。
请记住,静默或强制应用程序是异步任务。这意味着您执行其中任何一个,但是当返回控件时,并不意味着应用程序已断开连接。
典型情况是批量处理的回滚,当回滚需要几分钟时。
答案 1 :(得分:0)
QUIESCE DATABASE
不会阻止新连接进入。我相信您至少有两种选择:
使用QUIESCE INSTANCE <instance> USER <username> RESTRICTED ACCESS IMMEDIATE FORCE CONNECTIONS
。这将强制所有现有连接并限制对新连接的访问。只有USER
中指定的用户才能连接。据推测,这将是您的管理帐户。
如果这是禁止使用,或者如果您无法阻止USER
生成新连接,您可能需要(暂时)UNCATALOG DB
和/或禁用{{1注册表变量以防止新连接。
HTH。