IBM DB2 9.7,强制特定数据库的所有连接

IBM DB2 9.7,强制特定数据库的所有连接

我有一个包含多个数据库的 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

  • 静止数据库立即强制连接

  • 连接 重置

相关内容