我有一个包含多个数据库的 DB2 9.7 LUW 实例。我尝试备份特定数据库,但 Data Studio 客户端报告仍有活动连接,因此备份失败。
我如何强制数据库删除与该特定数据库的所有活动连接?谢谢!
答案1
我假设您正在尝试进行离线备份。您可以使用db2 FORCE APPLICATION ALL
。如所列手册:
ALL - All applications will be disconnected from the database server.
不过,在采取强制措施之前,我建议你先看看QUIESCE
或者正确地停止应用程序。你的备份过程将如下所示:
# Stop your application
su - db2inst1 # Or whatever instance you have
timestamp=$(date +%Y-%m-%d-%H-%M)
mkdir backup-mydb-$timestamp
# Connect to your database and check existing connections
db2 CONNECT TO MYDB;
db2 list applications for database MYDB show detail
# QUISCE the database
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
db2 CONNECT RESET
# Perform the backup
db2 BACKUP DATABASE MYDB TO "/home/db2i2/backup-mydb-$timestamp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;
# UNQUISCE the database
db2 CONNECT TO MYDB
db2 UNQUIESCE DATABASE;
db2 CONNECT RESET;
# Test the backup
db2ckbkp -h backup-mydb-$timestamp/*
# Start your application
您还可以使用db2top
它来监视数据库连接并确定需要停止的应用程序。
答案2
您无法通过单个命令完成此操作;您必须先列出连接:
LIST APPLICATIONS FOR DB <databasename>
然后,使用上面列表返回的所有数字应用程序句柄发出语句FORCE APPLICATION
:
FORCE APPLICATION (1, 2, 3, 4, ...)
答案3
我使用以下步骤并且有效。
db2 connect to TFBDW
db2 list application for database TFBDW
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
db2 "force application (39)"
db2 CONNECT RESET
db2 backup database TFBDW_U to "/tmp/dbbackup/"
答案4
假设它是一个离线备份,这可以通过以下方式完成停用'ing 数据库或通过奎斯'数据库。
为了停用'数据库,请按照以下步骤操作:-
- 确认应用程序已关闭列出申请
DB_NAME
,如果发现,则使用强制应用全部 - 使用停用数据库停用数据库
DB_NAME
为了奎斯'数据库,请按照以下步骤操作:-
连接到
DBNAME
静止数据库立即强制连接
连接 重置