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。
测试环境下:
- 更改主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时不出现问题。
本文版权归作者所有,未经作者同意不得转载,谢谢配合!!!
SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试的更多相关文章
- 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...
- 数据库机器迁移对AlwaysON 集群影响测试
1主3从(共享文件见证) 模拟事故 AlwaysON集群 结论 主域控服务器重启 共享文件夹见证失败,SQL集群无影响 无影响 修改共享文件夹见证路径 第一次测试修改后:整个集群突然重启,查询 ...
- SQL Server AG集群启动不起来的临时自救大招
SQL Server AG集群启动不起来的临时自救大招 背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导 ...
- 搭建SQL server AwaysOn集群
1.环境 系统:windows server 2012 R2 数据库版本:SQL server 2012 三台服务器,IP分别是:10.10.10.111,10.10.10.112,10.10.10. ...
- Application Request Route实现IIS Server Farms集群负载详解
序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...
- IIS Server Farms集群负载
序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...
- 在 WebSphere Application Server V7 集群环境中管理 HTTP session[阅读]
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1012_dingsj_wascluster/1012_ding ...
- 实战之elasticsearch集群及filebeat server和logstash server
author:JevonWei 版权声明:原创作品 实战之elasticsearch集群及filebeat server和logstash server 环境 elasticsearch集群节点环境为 ...
- Application Request Route实现IIS Server Farms集群负载
首先你装一个web 平台安装程序:https://www.microsoft.com/zh-CN/download/details.aspx?id=6164 安装完之后会出现打开界面,iis中也可找到 ...
随机推荐
- 微信小游戏开发之四:使用three.js引擎
一.前言 微信小游戏中最魔性的'跳一跳'就是基于three.js 引擎开发的 源码放到github上了:GitHub地址 请自行下载. 二.下载 three.min.js 打开页面,复制代码到本地 ...
- linux定时任务cron配置
实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...
- css的input文本框的 propertychange、focus、blur
1.输入框检查的需求--即时搜索--解决方案 当input的value发生变化就会发生,无论是键盘输入还是鼠标黏贴的改变都能及时监听到变化,propertychange,只要当前对象属性发生改变.(I ...
- Qtp自动测试工具
QTP是基于GUI界面的自动化测试工具,用于系统的功能测试. QTP录制的是鼠标和键盘的消息.QTP录制回放时基于windows操作系统的消息机制.QTP在录制时监听应用程序的消息,监听到之后把消息放 ...
- 关于Linux虚拟化技术KVM的科普 科普一(先用起来!)
是骡子是马是拉出来溜溜,通过<KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机>跑一遍,就会对KVM.QEMU-KVM有个大概的认识了. qemu-kvm已经不单独存在,qemu加上 ...
- 怎样在Ubuntu中设置环境变量
首先启动终端. 单击屏幕左上角的Ubuntu图标,在弹出的窗口中点击搜索栏,输入"terminal", 稍等片刻,终端就会赫然在目!二话不说,直接点击! 然后打开环境设置文 ...
- Java 学习笔记 (一) If 语句
接触到的教程中if语句所包含boolean表达式都是以数字作为举例,所以误以为string类型的值也可以这样判断,结果发现下面的脚本不工作: String sysTitle = driver.getT ...
- nsq源码阅读笔记之nsqd(三)——diskQueue
diskQueue是backendQueue接口的一个实现.backendQueue的作用是在实现在内存go channel缓冲区满的情况下对消息的处理的对象. 除了diskQueue外还有dummy ...
- Java中的异常简介
Java中异常的分类 Java中的异常机制是针对正常运行程序的一个必要补充,一般来说没有加入异常机制,程序也能正常运营,但是,由于入参.程序逻辑的严谨度,总会有期望之外的结果生成,因此加入异常机制的补 ...
- 【爆料】-《南澳大学毕业证书》UniSA一模一样原件
☞南澳大学毕业证书[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&a ...