SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试

1. 背景

sql server 搭建alwayson后,我们就希望程序连接时使用虚拟的侦听ip(listener ip),而不再是主server 的ip。如果我们有采用中间件,则可以在配置中,直接用listener ip 替换掉 server ip,可有时候,我们不太确定,是否有些旧程序、不太常用的程序在使用。甚至在很多公司根本就没有使用中间件,这时候去修改每个应用、app、程序的数据库连接配置,太难了。

那么有没有其它好的方案呢?有一个—调换主server ip与listener ip,即将server ip与listener ip互换。

2. 测试目的

为减少因使用alwayson的listener ip而必须调整现有程式的工作,考虑测试把listener ip改成原主server ip。

对调的好处:

1)减少应用、app、程序的数据库连接配置的修改。

2) 外部接口(厂商、sap、etl、xds、bi、mis, etc)不用修改;如修改,沟通成本大。

3) 不用担心有老旧程序未修改为调用listener ip。

3. 测试环境

node1 node2 node3 cluster ip listener ip
168.172.40.112 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.117

role:primary

 availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

ssms 连接登入各ip显示如下:

4. 测试步骤

(第一部分更新主节点的server ip为临时ip,即将40.112–>40.118

step 1 通过控制面板更新主server ip

step 2 更新前为40.112

step 3 更新后为40.118

step 4  更新后查看状态如下(更新后,短暂不可访问,ag状态resolving。约15s自动恢复正常)

此时环境调整为:

node1 node2 node3 cluster ip listener ip
168.172.40.118 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.117

role:primary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

 

(第二部分更新listener ip为原主server ip,即将 40.117—>40.112

 

step 5 打开failover管理器—>role—>resources—>agname—>properties

step 6  选中地址ip,单击,使edit栏位变成活跃状态,点击edit。

 

step 7 弹出警告,单击yes选项。

step 8  修改listener ip

 修改前:

修改后:

step 9 修改完毕,点击ok。

 

step 10 弹出警告,单击yes选项

step 11 修改后可用组stop, ag状态为resolving。

step 12 重启ag role。

step 13  listener 修改完毕(117—>112)

此时环境调整为:

 

node1 node2 node3 cluster ip listener ip
168.172.40.118 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.112

role:primary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

 

 (第三部分更新原主的server的 ip由临时ip调整为listener ip,即将 40.118—>40.112

 

step 14 参照step 1—>step 5,可把原主server ip由临时ip调整为listener ip (118–>117)

此时环境调整为:

 

node1 node2 node3 cluster ip listener ip
168.172.40.117 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.112

role:primary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

role:secondary

availability mode:asynchronous commit

5. 总结

可以成功实现调换主server ip与listener ip。

测试环境下:

  1. 更改主server ip为temp ip时,ag自动恢复正常状态需要耗时约15秒。
  2. 更改listener ip为原主server ip时,需要手动重启一次ag role,耗时约3~4秒。
  3. 更改temp ip为原listener ip,ag自动恢复正常状态需要耗时约15秒。

正式环境下,可能需时要长一些,可能需要1~2分钟,甚至更长。

所以,请在周末或假期等业务线操作不繁忙的时候进行调换作业,避免出现异常时无足够的处理时间。

切换完成后,建议做两次auto-failover切换(最后恢复到辅server还是辅server),同时请支持部门的同学配合测试程序,确保真正发生auto-failover时不出现问题。

 

 本文版权归作者所有,未经作者同意不得转载,谢谢配合!!!

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐