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

简介: SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试背景SQL Server 搭建AlwaysOn后,我们就希望程序连接时使用虚拟的侦听IP(Listener IP),而不再是主Server 的IP。

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互换。

  1. 测试目的
    为减少因使用AlwaysOn的Listener IP而必须调整现有程式的工作,考虑测试把Listener IP改成原主Server IP。

对调的好处:

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

2) 外部接口(厂商、SAP、ETL、xDS、BI、MIS, etc)不用修改;如修改,沟通成本大。

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

  1. 测试环境
    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显示如下:

  1. 测试步骤
    (第一部分更新主节点的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

  1. 总结
    可以成功实现调换主Server IP与Listener IP。

测试环境下:

更改主Server IP为temp IP时,AG自动恢复正常状态需要耗时约15秒。
更改Listener IP为原主Server IP时,需要手动重启一次AG Role,耗时约3~4秒。
更改temp IP为原Listener IP,AG自动恢复正常状态需要耗时约15秒。
正式环境下,可能需时要长一些,可能需要1~2分钟,甚至更长。

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

切换完成后,建议做两次auto-failover切换(最后恢复到辅Server还是辅Server),同时请支持部门的同学配合测试程序,确保真正发生Auto-failover时不出现问题。
原文地址https://www.cnblogs.com/xuliuzai/p/10747343.html

相关文章
|
11月前
|
人工智能 自然语言处理 JavaScript
利用MCP Server革新软件测试:更智能、更高效的自动化
MCP Server革新软件测试:通过标准化协议让AI实时感知页面结构,实现自然语言驱动、自适应维护的自动化测试,大幅提升效率,降低脚本开发与维护成本,推动测试左移与持续测试落地。
|
JSON Java Shell
多线程的 udp client server 测试demo
本示例展示了使用 Python 实现的 UDP 客户端与服务端通信,支持多线程、线程池、JSON 格式传输、UUID 生成、超时设置及 search_id 校验功能,适用于高并发场景下的数据交互需求。
多线程的 udp client server 测试demo
|
测试技术 Go 开发者
如何为 gRPC Server 编写本地测试代码
本文介绍了如何使用 Go 语言中的 gRPC 测试工具 **bufconn**,通过内存连接实现 gRPC Server 的本地测试,避免端口冲突和外部依赖。结合示例代码,讲解了初始化内存监听、自定义拨号器及编写测试用例的完整流程,并借助断言库提升测试可读性与准确性。适用于单元及集成测试,助力高效开发。
331 1
|
SQL 安全 测试技术
墨者学院sql手工测试记录
墨者学院sql手工测试记录
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
1062 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
760 9
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
462 6
|
Linux C#
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
285 0