SQL Server 故障转移FCI 实例端口修改

本文所述端口修改,本质是一种替代方案,因为,我还无法找到一个直接修改默认端口1433的方案(在我所测试修改方案中,只要修改掉1433默认端口,FCI 数据库实例会挂机,无法启动)。所谓的替代方案是保留1433默认端口的侦听,新加入一个侦听端口。

本文的测试环境是Windows 2012 standard系统,域环境,SQL Server 2016企业版。

备份注册表

为防止修改操作失误,导致 FCI 崩溃,可以先备份数据库的注册表,以便出现问题的时候,可以还原恢复。备份注册表操作如下:

Ctrl+R→输入regedit,打开注册编辑器,找到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server,右击Microsoft SQL Server,点击导出:

命名导出注册表文件,并选择路径,点击保存即可备份完成,如下图。

还原注册表

同样在注册编辑器中,点击文件,点击导入,找到上面备份注册文件

点击打开,即可恢复备份注册表了。

关闭实例检查点

获取注册表中实例检查点的名称

get-clustercheckpoint -registrycheckpoint

在 FCI 的一个节点上移除SQLServer 注册表上的检查点,如下:

PS C:\Users\administrator.ALWAYSON0> get-clustercheckpoint -registrycheckpoint | remove-clustercheckpoint -registrycheckpointRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\Cluster”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): nRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\Replication”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): nRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\Providers”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): nRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\SQLServerSCP”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): nRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\CPE”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): nRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\SQLServerAgent”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): nRemove-ClusterCheckpoint你确定要删除资源“SQL Network Name (alwaysOnSQL)”上的注册表检查点“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\MSSQLServer”吗?[Y] 是(Y)  [N] 否(N)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): y

注意:只需要移除MSSQLServer 的检查点,即最后一个选择“Y”

配置管理器中增加侦听端口

在两个节点上分别使用 SQL Server 配置管理器,增加端口:

注意:

  • 端口用英文逗号分隔开来

  • 验证端口是否被占用(如果被占用,SQL Server实例将会处于挂起状态),两个节点都需要检查,验证方法如下:

netstat -aon | findstr "3433"

说明端口被任务3312占用,要查看是哪个应用占用了端口,可以使用如下脚本:

tasklist | findstr "3312"

当然也可以从任务管理器中查看:

在注册表中添加检查点

add-clustercheckpoint -resourcename "SQL Network Name (alwaysOnSQL)" -registrycheckpoint "SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQLServer"

切换节点,检查端口添加是否后,FCI能否正常转移。

检验使用新端口连接数据库是否成功。

网络策略中禁用1433端口,只允许使用新端口连接数据库。

如果喜欢,可以搜索关注公众号MSSQLSERVER,及时接收更多精彩博文。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值