阻止与数据库db2的所有连接

时间:2017-10-26 05:20:16

标签: database command-line db2

我正在研究日志。我想重现一个应用程序无法连接到服务器的日志。

目前我正在使用的命令是

db2 force applications all

这将关闭所有连接,然后逐个使用

停用每个数据库
db2 deactivate db "database_name"

它会临时阻止连接,一分钟之后我的应用程序就能再次创建连接,因此我无法重新生成日志。任何想法我该怎么做?

2 个答案:

答案 0 :(得分:1)

您要找的是QUIESCE

默认情况下,用户可以连接到数据库。它变为活动状态,并初始化内部内存数据结构。当最后一个连接关闭时,数据库变为非活动状态。激活数据库会使它们初始化并准备好使用"。

停顿数据库会使它们进入管理状态。普通用户无法连接。您可以停顿单个数据库或整个实例。有关管理对静默实例的访问的一些选项,请参阅文档。以下内容强制所有用户离开当前数据库并将其保留:

db2 quiesce db immediate

如果您想为应用程序生成连接错误,还有其他选项。你有没有试过连接到一个不存在的端口,Db2没有收听它?或者撤消尝试连接的用户的连接权限。

答案 1 :(得分:0)

可以使用多种测试策略,它们涉及破坏客户端和服务器之间的网络连接:

  • 更改客户端上的IP路由表以将DB2服务器地址路由到不存在的子网
  • 通过可以关闭的代理软件使用连接,有一个特殊的代理ToxiProxy,旨在测试网络中断
  • 从客户端计算机上拔下以太网电缆,观察然后重新插入(我已完成此操作)

这样做的好处是不会禁用DB2服务器进行其他正在进行的测试。