对于DB2/HADR,我们有一个非常独特的场景。
我们使用connect_proc监视数据库的登录,并根据有效主机名表退回连接的主机名。如果主机名在该列表中,则授予并记录访问权限;如果主机名不在该列表中,则会返回20001错误,并显示"ACCESS RESTRICTED“。
我们的问题是连接到数据库:
假设我们的连接字符串是这样的: jdbc:db2://host3:1000/vpcdb:clientRerouteAlternateServername=host3,host2,host1;clientRerouteAlternatePortNumber=1000,1000,100;queryCloseImplicit=2;enableSeamlessFailover=yes;enableClientAffinitiesList=yes;blockingReadConnectionTimeout=1200;
如果host1是主要的HADR DB,我们将获得1776,如果host3是主要的HADR DB,我们将获得访问权限。
如果使用: update db cfg using connect_proc NULL@ access禁用触发器
专门使用了多个DB2驱动程序: 4.14.111和4.13.80。这里另一个有趣的事情是,上面的任何一种配置在Squirrel中都可以在触发器处于活动状态时工作,但在activemq或任何其他应用程序中用作连接器时则不能。
发布于 2013-01-29 05:38:03
您是否验证了辅助服务器(host3)上的CONNECT_PROC配置参数也已按预期进行了设置?
并非所有对数据库配置的更改都是通过HADR复制的,因此您还需要手动更新备用主机上的配置。
https://stackoverflow.com/questions/14531147
复制相似问题