本文源自:https://blog.csdn.net/activeRabbit/article/details/107906083
简介
环境介绍
服务器配置
安装故障转移
修改主机名并加入域
修改hosts文件
关闭防火墙
修改DNS
新建故障转移集群(任一台服务器)
验证故障转移是否成功(任意一台电脑关机)
设置共享文件
数据库安装
数据库配置
数据库开启Always On
在数据库里面安装证书(特别特别要小心)
互换和载入对方的证书
新建可用性组(此操作在连接集群ip上进行操作)
简介
看了下现在网上的很多文章,搭建Always On的环境都需要配置域服务器,配置步骤很多也很复杂,对说实话我对WinServer操作系统不是很熟,很多组件配置东西都是网上找资料,图形化界面用着很不顺手(有点怀念Linux 的命令行 😂),现在手头上正好有个新项目,客户只提供了两台服务器,正好SQL Server 2019也支持无域模式的Always On,故此记录一下。
环境介绍
软件 版本
操作系统 WinServer 2019
SQL SERVER SQL SERVER 2019
服务器 IP
主数据库 192.168.1.105
辅助数据库 192.169.1.200
服务器配置
安装故障转移
两台服务器都需要配置
修改主机名并加入域
两台服务器都需要配置
这里我把主数据库命名为master,辅助数据库命名为backup,计算机全名修改为自己需要的后缀
修改hosts文件
两台服务器都需要配置
这里总共需要4个IP,
192.168.1.105 master.xxxx.com
192.168.1.200 backup.xxxx.com
192.168.1.201 alwaysOn 集群IP,虚拟的
192.168.1.203 mk-SQL 监听器IP
关闭防火墙
设置允许应用或功能通过windows防火墙,这里我为了图省事直接把防火墙关了。
修改DNS
首选DNS服务器修改为 集群IP
新建故障转移集群(任一台服务器)
分别输入master、backup添加,效果如图
查看节点状态
在这里跟着提示一路走下去,增加服务器选项时分别输入 master 、backup并逐一添加
验证故障转移是否成功(任意一台电脑关机)
最好测试两台电脑(也可跳过不做这一步)
如192.168.1.105关机(有人问怎么打开这个界面?在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:mk-alwayson)
验证成功后接下来就可以继续安装SQL SERVER 2019数据库了
设置共享文件
在C盘中新建一个gdmk文件夹(两台都要建)
设置共享人为Everyone,修改权限级别为读取/写入
数据库安装
数据库配置
数据库开启Always On
右击属性
在数据库里面安装证书(特别特别要小心)
主数据库,在SSMS中执行
USE master;
GO
--创建主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
--创建证书 这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件 这里也有两个CERT1要改
BACKUP CERTIFICATE CERT1 TO FILE = 'C:\gdmk\CERT1.cer';
--创建终结点,设为证书验证 这里第二行有1个CERT1要改
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';
--创建证书 这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
CREATE CERTIFICATE CERT2 WITH SUBJECT = 'CERT2', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件 这里也有两个CERT1要改
BACKUP CERTIFICATE CERT2 TO FILE = 'C:\gdmk\CERT2.cer';
--创建终结点,设为证书验证 这里第二行有1个CERT1要改
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
互换和载入对方的证书
将自己的证书分别拷贝至对方服务器
主数据库
CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';
辅助数据库
CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';
这里注意一下,不要载入错了(更保险一点的可以删除该目录下自己本机生成的证书)
新建可用性组(此操作在连接集群ip上进行操作)
为需要同步的数据库创建完整备份
添加副本
更改为任意副本
添加侦听器
连接的时候连接监听器地址192.168.1.201 就可以了
这时测试下,可以让其中一台电脑故障(关机也可以),这时会自动转移到另外一台数据库上,在另外一台数据库里做增删改查等操作,但凡这台电脑开机,正常运行了,数据也会自动同步到这台电脑数据库里,这台电脑挂了,另外一台电脑的数据库依然接着继续运行,保证数据一切正常。
特别要注意的是
监听器ip可以不用做 连接集群ip就可以了
建立集群的时候必须要在集群ip上建立
集群建立好之后先创建数据库 看到主副本数据库同步之后才能转移
调节的时候我是将主数据库调节为同步模式 副本调节为异步模式
测试的时候 在集群ip上创建数据库高可用性模式 ,看能否同步到主从数据库上
————————————————
版权声明:本文为CSDN博主「精神抖擞君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/activeRabbit/article/details/107906083