如何使用db2备用读取功能

时间:2018-10-05 08:56:45

标签: jdbc db2

IBM DB2具有用于HADR数据库的功能-备用时读取。这样可以将备用数据库连接到只读查询(对数据类型和隔离级别有一定限制)

我正在尝试将其配置为在Websphere自由配置文件上运行的应用程序中的数据源。

以前,该应用程序使用的是自动客户端重新路由(可确保所有连接都定向到当前主服务器)

但是,我希望以这样的方式进行配置:我可以让SELECTs /只读流在备用数据库上运行,而其他可以在主数据库上运行。当在数据库上执行了接管(即,备用数据库成为主要数据库,反之亦然)时,这也应该起作用。这样做的目的是在所有可用数据库之间划分创建的连接数

正确的方法是什么?

我尝试过的事情(假设我的服务器是dbserver1和dbserver2):

  1. 创建2个数据源,一个使用dbserver1的数据库url,另一个使用dbserver2的数据库。

    • 这一直有效,直到执行接管并切换服务器的角色为止。
  2. 创建2个数据源,一个带有dbserver1的db url(带有“自动客户端重新路由”参数),另一个带有dbserver2的数据源。

    • 使用这种配置,应用程序可以正常工作,但是如果dbserver2成为主服务器,则所有查询都将在其上执行。
  3. 设置haproxy并使用它来标识哪个是主要的,哪个是备用的。创建2个指向haproxy的数据源

    • 在数据库上执行接管后,连接异常开始发生(不仅是在接管时,而且接管了一段时间)

1 个答案:

答案 0 :(得分:0)

Enabling continuous access to read on standby databases using Virtual IP addresses链接的白皮书“ Db2 documentation for Read-on-standby”中描述了适当的方法。

虚拟IP地址已分配给主要角色和备用角色。它们被分类为数据库别名。 Websphere或其他客户端将连接到主要或备用数据源。进行接管或故障转移时,虚拟IP地址将重新分配给特定服务器。客户端将继续被路由到所需的服务器,例如备用。