AlwaysOn高可用功能,真正实现了数据库的灾备切换、高可用。
AlwaysOn通过Windows Server故障转移群集,部署高可用数据库组。
- 在故障转移群集基础上完成部署
- 读写分离,只读负载平衡
- 最多3个写入节点实现故障转移
- 最多3个数据实时同步节点
环境准备
两台服务器,配置都是8g2核,50g硬盘,操作系统版本Windows Server 2019 Datacenter
- 域服务器:adc,192.168.56.120
- 服务器1:server1:,192.168.56.121
- 服务器2:server2,192.168.56.122
本人使用虚拟机做模拟配置,在虚拟机操作系统上做如下配置
-
虚拟机配置两张网卡,以便和主机通讯
-
虚拟机启动远程桌面 ,右键左下角win图标-系统-远程桌面,点击启用
-
为方便测试,关闭系统防火墙,控制面板\系统和安全\Windows Defender 防火墙\自定义设置
-
安装Sql Server 2017企业版,个人的Express版本不支持事务日志复制
-
安装SSMS 19.2版本
前置条件
- 域环境部署完成
- 故障转移群集部署完成
Sql Server启用AlwaysOn高可用
打开 “Sql Server 2017 配置管理器”,右键SQL Server服务属性,启用AlwaysOn 可用性组,并修改服务登录账户(改成Administrator),然后重启服
注意:两台服务器要做同样的操作
打开SQL Server Management Studio,链接数据库。
1、创建共享文件夹,并备份测试库
Always On高可用性的先决条件是同步的数据库需要做一次完整的备份!
1)创建测试数据库test
2)创建共享文件夹c:\backup
3)完整备份一次test库到c:\backup目录
2、创建AlwaysOn高可用组
右键AlwaysOn高可用性-可用性组,点击“新建…”,输入组名称,点击下一步,勾选测试数据库“test”
点击添加副本,把server2添加进来,默认就是辅助库
勾选自动故障转移,把可读辅助副本改成是
切换到端点选项,把端点URL都改成ip地址访问
下一步,选择完整的日志备份,并选择前面创建的共享文件夹\SERVER1\backup,然后下一步,直到配置完成
至此,AlwaysOn高可用,主从同步的功能已经配置完成!server1上显示高可用组“test (主要)”,server2上显示高可用组“test (辅助)”
可以测试一下在主库insert一条记录,在从是否可以立即查询到。
3、数据库同步测试
在主库中创建一张表,并插入两条数据,在从库中可以实时查到!
从库删除数据测试,从库是只读库,所以删除失败!
4、故障转移
1)手动故障转移
在主库的alwaysOn上面右键,选择“故障转移”,下一步链接到辅助库服务器,下一步确定就可以转移,转移后,主库就变成从库了,从库就变成主库了
2)自动故障转移
当主库服务不可用时,从库会自动变成主库
5、配置监听器,实现故障转移时程序高可用
为了在群集主备节点切换的时候,应用程序不需要修改动数据库链接ip地址,我们需要创建一个监听器,应用程序只要链接监听器就可以,这样在主备切换节点切换的时候,监听器会自动路由的新的主节点上,应用程序无须做任何修改。
1)右键高可用组监听器,新建监听器。
2)给监听器配置固定ip,端口使用默认1433,随便输入一个名字,比如“alwayson”,点击确定!
注意:这里需要域环境支持
添加成功后,会在域控服务器中添加一个虚拟主机alwayson
可以看见之前创建的群集,同样有一条记录 sqlcluster
打开DNS管理器,同样会自动创建一条记录alwayson
可以看见之前创建的群集,同样有一条记录 sqlcluster