手把手教学无域搭建SQL server always on 高可用集群部署故障转移

实操!实操!真实生产环境使用!觉对可行!亲测!踩坑无数!绝对靠谱!
查阅网络所有资料,手撸微软官方文档,总结了这篇!

一. 准备环境

额,其实需要额外一台服务器,这台服务器随便什么都行,其实就是选举投票用的。文件服务器也可以。我这里又随便找了一台Windows 10 系统的电脑。

两台数据服务器 + 一台任意服务器

系统名称ip地址服务器
Windows Server 2019master192.168.30.251数据服务器
Windows Server 2019backup192.168.30.252数据服务器
Windows 10-192.168.30.130任意服务器
-MyCluster192.168.30.253虚拟IP
-MK-SQL192.168.30.254虚拟IP

1.设置计算机网络

所有服务器都要配置成上面表格中的ip
image.png
image.png

2.设置dns

每台服务器都设置
打开文件路径 C:\Windows\System32\drivers\etc , 编辑 host 文件
添加如下内容,保存。

192.168.30.251 master.supcon.com
192.168.30.252 backup.supcon.com
192.168.30.253 MyCluster.supcon.com #集群IP,虚拟的
192.168.30.254 mk-SQL #监听器IP

image.png
然后刷新dns缓存。
打开cmd命令行窗口。输入 ipconfig /flushdns
image.png

3.修改计算机名

两台数据服务器都要修改。修改两台,一台叫master,一台叫backup。
image.png
image.png

二、搭建Windows故障转移集群

image.png
打开添加角色和功能,一路下一步,最后勾选 故障转移集群。
image.png
image.png
image.png
image.png
image.png
image.png
最后一步安装完成后,要重启一下服务器,两台数据服务器都要安装,都要重启。

2.配置

打开故障转移集群管理器
image.png
创建集群
image.png

image.png
这一步可以跳过验证,
(因为我已经配置过了,本地不能再配置,所有下面有一些是我在网上找的图,只需要修改我标注的地方)
image.png
image.png
这里的名字和ip是我们开头的表格中确定好的。上图中如果是多网卡的,要只勾选一个咱们用的的那个网卡。点击下一步。
image.png
正在创建
image.png
最后会提示创建完成,如果中间失败的话,看错误提示百度问题吧。
image.png
完成。 这就会在侧面看到咱们创建好的集群。
image.png
如果没有的话,在侧边可打开,
image.png

三、251、252安装SqlServer2019

1、C盘中新建一个gdmk文件夹(两台都要建),文件夹权限Everyone读取/写入

2、数据库安装:

注意事项:

SqlServer2019安装功能时全选,排除掉”机器学习服务“,用户验证选择“混合模式”,然后下一步…

3、251、252 开启AlwaysOn
image.png
开启alwayson
image.png

4、在数据库里安装证书
在主服务器运行
USE master;

GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
BACKUP CERTIFICATE CERT1 TO FILE = 'C:\gdmk\CERT1.cer';
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT1, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

在从服务器运行

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
CREATE CERTIFICATE CERT2 WITH SUBJECT = 'CERT2', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
BACKUP CERTIFICATE CERT2 TO FILE = 'C:\gdmk\CERT2.cer';
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT2, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

5、互换和载入对方的证书

将主服务器证书C:\gdmk\CERT1 拷贝到从服务器目录C:\gdmk\CERT1
将从服务器证书C:\gdmk\CERT2 拷贝到主服务器目录C:\gdmk\CERT2

载入对方证书。

主数据库,在SSMS中执行
CREATE CERTIFICATE CERT2 FROM FILE = ‘C:\gdmk\CERT2.cer’;
辅助数据库202 ,在SSMS中执行
CREATE CERTIFICATE CERT1 FROM FILE = ‘C:\gdmk\CERT1.cer’;
SSMS新建可用性组
image.png

6、新建数据库,并且运行sql文件导入数据

7、数据库备份,
image.png
直接确定就可以
image.png

8、创建alwayson

image.png
image.png
名字:myalwayson,下一步
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

ok,到目前就几本配置完成了,可以测试一下,直接连接 192.168.30.254 这个虚拟IP的数据库就能够连接成功。

4、故障转移仲裁

这一步骤的作用就是,主备切换用的,当主服务器宕机,要把从服务器切换到主。

image.png

因为我们只有两台数据服务器是双数,所以默认的多节点选举模式,我们用不了,因为当有任意一台服务器宕机,他们没办法靠自己来判断到底是谁断开连接了,所以咱们就要再让另一台服务器来再投一票,这样就可以知道谁是宕机谁是正常的了。

选择仲裁见证,下一步。
image.png
配置文件共享仲裁,下一步
image.png
选择共享路径,然后一路下一步,完成。

重点!!!重点!!!重点!!!
因为我们是没加域所以在这里,怎么选择都会报错,(这个地方我搜寻了好几天的资料,网上的几乎所有的博客都没有介绍这里报错怎么搞,最后终于在微软的官网文档找到了解决办法)

如果给服务器加了域,这里应该不会报错。(这我没试过,当初不加域,就是为了省事,省一台域服务器)
image.png
所以这个怎么解决呢,看下面。

1、在数据服务器中 打开 PowerShell 提示符。

2、运行以下命令,将群集仲裁配置为使用文件共享见证。 系统会提示输入文件共享见证的本地凭据。
下面的是我的服务器集群名和共享文件夹地址,你们要对应替换成自己的。 将 MyCluster 替换为群集的名称,将 \192.168.30.130\D\SQL_NET 替换为文件共享见证的路径。

Set-ClusterQuorum -Cluster MyCluster -FileShareWitness \\192.168.30.130\D\SQL_NET -Credential (Get-Credential)

3、验证群集仲裁设置,请运行以下命令。
同样替换MyCluster 为自己的。

Get-ClusterQuorum -Cluster MyCluster | Format-List *

ok , 这就成功了, 在打开集群页面。
image.png
可以看到图中的见证,已经配置上了,如果下面的状态显示的不是联机就手动右键连接一下。

这样就完成了,全部配置成功。

四、测试

随意拔掉 主服务器的网线,或者从服务器的网线,我们虚拟的192.168.30.254 的虚拟ip的数据库都可以正常的读写。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值