阿里云ECS当前可以部署 SQL Server Alwayson 可用性组,但是在阿里云上实现故障转移的高可用虚拟IP还无法实现。在阿里云上安装完成 Alwayson 可用性组后,数据库的监听器只能在主副本上面连接,所以每一次的切换,必须还要判断当前alwayson角色是否为主副本。阿里云还未发布的产品——HAVIP,高可用虚拟IP。havip 可在云上绑定相关服务器节点和监听器,自动识别主节点。alwayson 可以添加多个节点,但 havip 只能绑定到2个ECS实例。
系统环境: window server 2012 r2 datacenter + sql server 2016
基本结构:
主备实例绑定相应ECS 数据库主副本和辅助副本;
高可用虚拟IP绑定alwayson监听器IP。
部署步骤:
0. 向阿里云申请开发 【高可用虚拟IP】(当前未开放!)
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”
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
12. 创建监听器,用“第10步” 创建的计算机名称!
如之前没有手动在域控中创建计算机(监听器) 名称,当创建监听器时则错误如下:
13. 在阿里云上创建 高可用虚拟IP(HAVIP)
参考:
在阿里云ECS上轻松实现无域控的SQL Server AlwaysOn可用性组
Cannot create a high-availability group in Microsoft SQL Server 2012