SqlServer AlwaysOn高可用群集搭建 - 教程
网络拓扑结构
拓扑结构:
理论拓扑结构
实际拓扑结构
请求流程:
- Web前端通过前端Nignx将请求发送至侦听器虚拟Ip地址
- 侦听器Ip根据服务器服务状态选择转发到S1还是S2服务器
- Java Web服务接受请求后,需读写数据库时将请求转发至侦听器,
- 监听器检测数据库状态,转发请求到数据库
注意:(DC)域控服务器负责对Sql主备服务器进行投票裁决, DC服务器宕机之后会出现主备切换失败的现象
DC启动后重启其他宕机服务器即可应对此问题
系统环境
系统选择
这里我选择的系统版本为SqlServer2019数据中心桌面版, 系统版本在框架安装时可以选择,示例图(网络图片)如下:
- Standard是标准版,最多在两颗处理器上运行两个虚拟机
- 数据中心版,最多两颗处理器上运行不限数量个虚拟机就是Datacenter
服务器需求
需要准备三台服务器,我用三台虚拟机替代,这里三台虚拟机分别命名为DC/S1/S2.
DC作为域控服务器(DC),负责服务的数据库请求的转发和服务监控
S1,S2服务器作为服务实例,互为热备
集群服务器部署
修改服务器名称
将服务器名称分别修改为DC,S1,S2
注意:如果提前安装了SqlServer,数据库Windows登录会失败,需要重新设置SqlServer中的服务器名称,此处自行找资料变更即可.
配置服务器IP
DC服务器IP配置
DC服务器这里的IP配置为231
S1,S2服务器IP配置
注意:加域后需要将DNS设置成为DC服务器IP
我这里S1服务器IP配置为232
我这里S2服务器IP配置为233
配备服务器域控
所有服务器安装域服务
我们得安装Active Directary服务和DHCP服务,安装后服务管理器面板出现"AD DS"和"DHCP".
DC服务器上创建域
点击更多,点击将此服务器提升为域控服务器
打开域服务配置向导,自定义根域名,输入自定义模式密码,然后下一步
下一步至安装,点击安装,安装完成后需要重启,重启之后登录界面发生变更
域名\用户名+密码 登录域账户
计算机名\用户名+密码 登录本地账户
密码与之前的一致
此时我们用mytest\administrator+密码登录域账户能够查看到计算机已经属于mytest域了
将S1和S2服务器添加到域中
加域之后需要进行系统重启,重启后域用户登录后可以查看用户信息
通过此时登录DC服务器能够查看和管理域下的计算机
此时能够直接在S1中ping S2 主机名称或者IP
配置共享磁盘
安装使用iSCSI服务
(体系会默认预安装,检查一下)
点击新建虚拟磁盘,打开虚拟磁盘向导
自定义磁盘名称,下一步,输入磁盘大小,下一步
这个地方不用太大5G差不多够用了,我这里给了5G
选择新建,下一步,输入目标名,下一步
安装共享磁盘IP白名单,下一步,
通过配置CHAP身份验证,我这里没有配置,如果是正式环境能够允许配置身份验证
下一步至结束
S1,S2连接加载共享磁盘
通过iSCSI发起程序打开属性对话框,输入IP或域名链接共享磁盘.
链接完毕后打开磁盘管理工具,右键磁盘,选择联机,初始化磁盘,并新建简单卷
安装配置故障转移集群
安装故障转移集群
DC,S1,S2 三个服务器安装故障转移群集,然后重启
S1服务器创建故障转移集群
打开验证安装向导,将需要加入集群的服务器添加到列表,下一步到群集测试
勾选使用验证的节点创建集群,打开集群创建向导
输入集群名称,找一个没用的IP作为集群Ip配置,此处我设置为230
然后点击至完成,此时可查看集群信息
此时打开DC服务器,也可以查看到群集信息
S1,S2配置防火墙白名单
S1,S2调整端口出入栈规白名单
Sql Server Always On搭建
SqlServer Always On环境需求
数据库版本
做Sql Server Always On数据库版本需要用2013以上的Developer版本或者企业版.
此处我的数据库版本选择了Sql Server 2019 Develeper版本.
安装SqlServer
SqlServer安装
S1 S2安装SqlServer
我这里是在线安装,如果是离线环境,行先下载离线安装包,此处就不做演示了
注意:需开启SqlServer复制功能
配置SqlServer代理配置为自启动,并指定安装Sa管理员账户备用
下一步至搞定,然后重启
安装SSMS
镜像源:https://learn.microsoft.com/zh-cn/ssms/release-notes-19
我这里安装的版本是18.12.1 (2022年的版本)
安装步骤按序执行,此处不做演示
S1服务器安装后创建数据库进行测试
S1服务器建库建表,初始化数据, S2服务器不要创建
我这里创建了 XiaoMing, XiaoHuang和XiaoLan作为初始数据
运用域账户进行Windows远程登录测试
如果登录失败,检查配置管理中心IP协议,开启后重启sql服务实例和代理服务再次测试,不行就重启服务器
数据库完整备份
在S1服务器创建共享目录,这里是C:\dbBackup
将数据库完整备份到S1共享目录 这里是:C:\dbBackup
配置SqlServer AlwaysOn
S1和S2开启AlwaysOn
打开sqlserver配置管理器,找到Sql服务实例, 启用AlwaysOn
并将Sql服务实例登录身份设置为域账Administrator账户
测试域账户登录,此时在DC服务器能够通过域账户登录S1和S2的数据库
S1服务器创建AlwaysOn可用性群组
注意:选择前请先对数据库做完整备份
打开新建可用性群组对话框
输入可用性群组名称
选择刚刚备份的数据库,点击下一步
添加S2节点为辅助节点
勾选S1,S2为自动转移故障节点
节点上限为5,不做改变
可用性模式 选择同步提交
这里可读副本选择是
是 代表既可以读,也可以写
否 代表只读不写
切换到”备份”选项卡,选择副本备份
数据同步,选择完整的库和日志
监听器选择暂不创建 ,点击下一步
注意:路径为刚刚配置的共享文件夹网络路径,属性可以查看网络路径
下一步,提示未配置侦听器,暂不处理,下一步至完成
下一步至完成,此时可以在S1,S2数据库中查看Always on群组信息和同步信息
此时查询S2数据库,发现素材已经同步
S1 配备可用性群组侦听器
在刚刚创建的可用性群组中配备侦听器,
找一个没用的Ip作为alwayon 侦听器IP, 我这里设置为234. 后期可通过该Ip链接数据库.
自定义侦听器名称,端口采用SqlServer默认端口1433
测试侦听器虚拟Ip登录
创建完成后此时S2服务器行打开查看侦听器
此时许可在DC服务器使用侦听器虚拟Ip登录
AlwaysOn高可用测试模拟
测试S2(备机)宕机更新
停止S2备用SqlServer服务
查看S1服务器材料并更新内容和结构, 给TestTb表中新增Age字段,并赋值8
重启备用服务器S2,查看是否自动挂载
查询TestTb,查看数据是否自动更新
测试主备机切换
停止S1 SqlServer服务,模拟异常关机
注意:主服务器宕机后 主备服务器切换时(大约1分钟),数据可能会丢失
切换到服务器S2查看主节点,辅助节点是否已经切换
更新S2服务器内容和表结构
重新启用S1服务器,查看是否已经挂载,主备服务器是否已经正确切换
查询S1表数据,查看数据是否更新
所有主机同时宕机
简单概述所有节点宕机后的操作,此处不再做相关演示,按顺序执行即可.
启动dc域控主机
接着重启所有节点服务器
找到主服务器节点(比如S1)
主服务器数据库做完整备份(比如S1中的TestDb)
删除所有辅助服务器数据库(比如S2中的TestDb)
删除并重建 Always On群集(要找到当初创建群集的机器)
重建listener监听器
程序部署和测试
前端Web页面和后台Web服务将Ip均指向侦听器Ip即可,侦听器Ip会随着主备服务器切换自动飘逸,此处不做演示.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943086.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!