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

06-01 1622阅读

实操!实操!真实生产环境使用!觉对可行!亲测!踩坑无数!绝对靠谱!

查阅网络所有资料,手撸微软官方文档,总结了这篇!

一. 准备环境

额,其实需要额外一台服务器,这台服务器随便什么都行,其实就是选举投票用的。文件服务器也可以。我这里又随便找了一台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的数据库都可以正常的读写。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码