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



我正在处理日志。我想重现应用程序无法连接到服务器的日志。

目前我正在使用的命令是

db2 force applications all

这将关闭所有连接,然后我一个接一个地停用每个数据库

db2 deactivate db "database_name"

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

你要找的是 QUIESCE。

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

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

db2 quiesce db immediate

如果要为应用生成连接错误,还有其他选项。您是否曾经尝试过连接到一个非终止端口,而 Db2 没有侦听它?或者撤消尝试连接的该用户的连接权限。

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

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

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