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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 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

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
3月前
|
SQL 存储 数据库
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
|
4月前
|
SQL 数据库
SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用
NULL 值是指字段没有值的情况。如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值。此时,该字段将保存为 NULL 值。需要注意的是,NULL 值与零值或包含空格的字段不同。具有 NULL 值的字段是在记录创建期间留空的字段。
56 0
|
3月前
|
算法 异构计算 索引
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
42 1
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
413 1
|
1月前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
13 0
|
3月前
|
SQL Java 流计算
Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
【1月更文挑战第1天】【1月更文挑战第2篇】Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
83 0
|
28天前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
22 0
|
3月前
|
存储 资源调度 算法
m基于FPGA和IP核的RS编译码verilog实现,包含testbench测试文件
m基于FPGA和IP核的RS编译码verilog实现,包含testbench测试文件
34 1
|
3月前
|
SQL Kubernetes 调度
DataphinV3.14 Flink SQL任务支持基于Session集群调试,模拟生产代码逻辑的调试效果
实时研发一直以来的都是通过local-debug的方式来调试开发中的Flink SQL任务,该方式有如下不足: 1. 支持的采样数据有限,且非是流式数据的调试。 2. 手动上传构造数据的方式较为繁琐,局限性较大。 为便于Flink SQL任务的调试,DataphinV3.14版本支持Flink SQL任务基于Session集群调试,期望做到像离线即席查询般方便地获取实时任务的输出结果,方便用户对线上的真实数据进行代码逻辑上的调试。
|
3月前
|
SQL 数据挖掘 关系型数据库
「SQL面试题库」 No_87 学生们参加各科测试的次数
「SQL面试题库」 No_87 学生们参加各科测试的次数