SQL Server 阿里云ECS实现AlwaysOn可用性组

时间:2022-10-15 01:23:52

阿里云ECS当前可以部署 SQL Server Alwayson 可用性组,但是在阿里云上实现故障转移的高可用虚拟IP还无法实现。在阿里云上安装完成 Alwayson 可用性组后,数据库的监听器只能在主副本上面连接,所以每一次的切换,必须还要判断当前alwayson角色是否为主副本。阿里云还未发布的产品——HAVIP,高可用虚拟IP。havip 可在云上绑定相关服务器节点和监听器,自动识别主节点。alwayson 可以添加多个节点,但 havip 只能绑定到2个ECS实例。


系统环境: window server 2012 r2 datacenter + sql server 2016


基本结构:

SQL Server 阿里云ECS实现AlwaysOn可用性组

主备实例绑定相应ECS 数据库主副本和辅助副本;

高可用虚拟IP绑定alwayson监听器IP。


部署步骤:

0. 向阿里云申请开发 【高可用虚拟IP】(当前未开放!)

SQL Server 阿里云ECS实现AlwaysOn可用性组

1. 购买 ECS windows 实例,配置专有网络 IP(本测试使用两台服务器)。

2.申请弹性公网IP绑定到两台ECS实例,可远程访问。

3.更改服务器名称、静态IP(与云上分配一致)、加入域中。

4. 域账户添加到本地管理员组。

5.安装故障转移群集,安装 SQL Server

6.域管理员启动故障转移群集工具,创建群集

7.群集名称$ 授予以下权限: “create computer objects”,“read permissions”,“read all properties”,“list contents”

SQL Server 阿里云ECS实现AlwaysOn可用性组

8. 启用 alwayson 可用性组

9. 配置 alwayson 可用性组,暂不创建监听器。

10. 域控中手动创建一台计算机,此计算机名称将作为 alwayson 监听器名称!

11.  同样授予计算机名称权限:“create computer objects”,“read permissions”,“read all properties”,“list contents”

以及下面的权限:

Read 
Allowed To Authenticate 
Change Password 
Receive As 
Reset Password 
Send As 
Validate write To DNS Host Name 
Validate Write To Service Principle Name 
Read Account Restrictions 
Write Account Restrictions 
Read DNS Host Name Attributes 
Read MS-TS-GatewayAccess 
Read Personal Information 
Read Public Information

SQL Server 阿里云ECS实现AlwaysOn可用性组


12. 创建监听器,用“第10步” 创建的计算机名称!

如之前没有手动在域控中创建计算机(监听器) 名称,当创建监听器时则错误如下:

SQL Server 阿里云ECS实现AlwaysOn可用性组

13. 在阿里云上创建 高可用虚拟IP(HAVIP)

SQL Server 阿里云ECS实现AlwaysOn可用性组



参考:

在阿里云ECS上轻松实现无域控的SQL Server AlwaysOn可用性组

Create Listener Fails with Message ‘The WSFC cluster could not bring the Network Name resource online’

Cannot create a high-availability group in Microsoft SQL Server 2012