1.简介
1、参考SQL Server 高可用(always on)配置指南之域(AD)环境搭建 https://blog.51cto.com/waringid/5851856 完成域控服务器(Domain Control ,以下简称DC)
2、参考SQL Server 高可用(always on)配置指南之节点配置 https://blog.51cto.com/waringid/5851970 完成2个节点服务器的配置。
3、参考SQL Server 高可用(always on)配置指南之搭建故障转移群集 https://blog.51cto.com/waringid/5854694 完成故障转移群集搭建
4、参考SQL Server 高可用(always on)配置指南之数据库安装 https://blog.51cto.com/waringid/5854730 完成数据库软件的安装配置
1.1. Alwayson 可用性组要求
加入到AlwaysOn可用性组的数据库必须符合下面要求
- 数据库的恢复模式必须是“完整”恢复模式
- 数据库已进行了一次完整备份
- 需要是用户库,系统库不能加入可用性组
- 数据库可以读写,只读库不能加入到可用性组
- 数据库处于多用户模式
- 数据库没有使用AUTO_CLOSE
- 不属于任何其他的可用性组
- 数据库没有配置数据库镜像
一个可用性组最大支持100个数据库
2.准备测试数据
1、test-node1使用自行初始化数据库的方式,先新建一个测试库和测试表并插入一些测试数据,对数据库做一个完整备份和日志备份
2、把完整备份文件和日志备份文件搬到test-node2机器上依次还原完整数据库和数据库日志。(注意还原时选项框中要点选restore with norecovery)
3.配置可用性组
1、 在“Alwayson高可用性”节点上右键选择“新建可用性组向导
2、点击“下一步”,输入一个从未使用过的高可用性组名称 testAG
3、点击下一步,选择要添加的数据库
4、 点击“下一步”,使用添加副本将其他节点添加到可用性组中,并选择自动故障转移节点和同步提交节点
5、将辅助副本设置为可读,能够自动故障转移,同步提交模式
6、“端点”tab页面设置端点
注意:端点URL使用IP的方式,不要用FQDN长名的方式,因为服务器通常会有两个网卡,一个public网卡,一个private网卡,端点建议使用private网卡地址
这样在端点直接传送的数据就会经由private网卡来传送,使用FQDN长名的方式是不能保证端点数据通过private网卡来传送
7、 “备份首选项”和“侦听器”不需要设置,保持默认就行,可用性侦听器我们后面再添加,可以直接点击“下一步”
8、选择初始数据同步,这里选择“仅联接”模式
9、点击“下一步”来验证配置,对应侦听器配置警告可以忽略,后期来添加侦听器
因为使用的是“仅联接”数据库初始化方式,验证跳过像可用磁盘空间这样的检查
10、点击“下一步”来检查并确认之前的配置信息,若无误,点击“完成”。另外,此处也可保存建立可用性组脚本,以便分步诊断故障之用。
11、所有摘要均成功完成,显示绿色对勾。如果出现黄色警告,则需进行进一步判断是否成功。若出现红色错误,表示AG创建不成功
4.可用性组状态检测
1、查看服务器和数据库的变化。主副本数据库变为已同步
辅助副本这时候是可读的,在主副本上对Table_test表做的更改都能同步到辅助副本上的Table_test表
此时打开辅助副本的表可能会显示如下信息,无法打开
只需要在可用性组属性出打开可读性副本即可
2、检查故障转移集群管理器,可用性组变为一个集群角色
3、显示面板可以显示可用性面板
4.配置侦听器
1、在创建可用性组后,在“可用性组侦听器”上右键添加侦听器来创建侦听器,选择静态IP的网络模式(尽量不要选择DHCP网络模式)
2、输入一个从未使用过的名称(该名称将被用来创建网络名称资源)和访问端口
3、域控的DNS管理器上会自动注册一条A记录,AD的Computers容器里会自动添加一个故障转移集群虚拟网络名称账户
4、故障转移集群管理器里的角色节点,可以看到客户端访问名称和IP地址,客户端通过这个访问名称进行访问数据库
5、可以使用侦听器名称进行登录SQL Server,也可以通过侦听器地址来登陆
5.故障转移测试
1、使用侦听器名称来登录SQL Server,查看当前是在主副本是在哪个机器
2、手动故障转移测试
3、连接到 test-node2这台辅助副本机器
4、查询确认