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时不出现问题。

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

SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试的更多相关文章

  1. 阿里云重磅发布RDS for SQL Server AlwaysOn集群版

    2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...

  2. 数据库机器迁移对AlwaysON 集群影响测试

    1主3从(共享文件见证)     模拟事故 AlwaysON集群 结论 主域控服务器重启 共享文件夹见证失败,SQL集群无影响 无影响 修改共享文件夹见证路径 第一次测试修改后:整个集群突然重启,查询 ...

  3. SQL Server AG集群启动不起来的临时自救大招

    SQL Server AG集群启动不起来的临时自救大招 背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导 ...

  4. 搭建SQL server AwaysOn集群

    1.环境 系统:windows server 2012 R2 数据库版本:SQL server 2012 三台服务器,IP分别是:10.10.10.111,10.10.10.112,10.10.10. ...

  5. Application Request Route实现IIS Server Farms集群负载详解

    序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...

  6. IIS Server Farms集群负载

    序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...

  7. 在 WebSphere Application Server V7 集群环境中管理 HTTP session[阅读]

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1012_dingsj_wascluster/1012_ding ...

  8. 实战之elasticsearch集群及filebeat server和logstash server

    author:JevonWei 版权声明:原创作品 实战之elasticsearch集群及filebeat server和logstash server 环境 elasticsearch集群节点环境为 ...

  9. Application Request Route实现IIS Server Farms集群负载

    首先你装一个web 平台安装程序:https://www.microsoft.com/zh-CN/download/details.aspx?id=6164 安装完之后会出现打开界面,iis中也可找到 ...

随机推荐

  1. 并发库应用之五 & ReadWriteLock场景应用

    Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象.两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象. 读写锁:分为读 ...

  2. PAT1042:Shuffling Machine

    1042. Shuffling Machine (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Shu ...

  3. java并发之读写锁ReentrantReadWriteLock的使用

    Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象.两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象. 读写锁:分为读 ...

  4. CUDA编程模型之内存管理

    CUDA编程模型假设系统是由一个主机和一个设备组成的,而且各自拥有独立的内存. 主机:CPU及其内存(主机内存),主机内存中的变量名以h_为前缀,主机代码按照ANSI C标准进行编写 设备:GPU及其 ...

  5. Windows上使用Git托管代码到Coding

    作者:荒原之梦 Git简介: Git是一款分布式版本控制系统,可用于项目的版本管理.Git可以管理本地代码仓库与远程代码仓库间的连接以及进行版本控制,使得我们可以在本地离线进行修改等操作,之后再将代码 ...

  6. Oracle12c中功能及性能新特点之with子句的增强

    1. 设置创建测试表.DROP TABLE test PURGE; CREATE TABLE test ASSELECT 1 AS idFROM   dualCONNECT BY level < ...

  7. struts2(三)---struts2中的服务端数据验证框架validate

    struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...

  8. Android 不规则图像填充 小玩着色游戏

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45788433: 本文出自:[张鸿洋的博客] 一.概述 近期群里偶然看到一哥们在 ...

  9. Python List 删除元素

    1. 使用del删除指定元素 li = [1, 2, 3, 4] del li[3] print(li) # Output [1, 2, 3] 2. 使用list方法pop删除元素 li = [1, ...

  10. HTTP状态码的详细解释,供参考

    HTTP状态码详解 常用对照表 状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经 ...