Alwayson无域安装测试

一、 IP及名称规划

IP

名称

说明

192.168.1.111

WIN16-TEST.test.com

节点1

192.168.1.112

WIN16-TEST02.test.com

节点2

192.168.1.113

test-cluster

Windows群集名

192.168.1.114

lsnr-test

SQL Server侦听器名

二、 安装windows server 2016操作系统

系统选择,一定要选择带【桌面体验】的,不然就会安装了没有GUI界面

区别参考

Windows Server 2016 Standard 和 Datacenter 版本的比较 - GJJ2019 - 博客园

安装完会自动重启,然后设置管理员密码

好了,可以用了

参考  windows server 2016怎么安装教程-百度经验

配置主机ip及DNS

克隆一台机器作为从库

三、 配置Windows故障转移群集

  1. 安装Windows故障转移群集(所有节点)

2. 配置计算机名和DNS后缀

每个节点的计算机不需要加入域,但需要添加DNS后缀,且每个节点的后缀必须要相同(例如:test.com,需重启生效),如下图:

3. 将DNS服务器地址改为本地

如果是直接分配好的机器,需要修改DNS地址为本地

4. 添加sqlserver管理用户

在每个节点上都添加一个本地用户(mssql.admin),且用户名及密码每个节点都一致,使2台服务器能访问共享文件夹,也作为sqlserver管理员用户。

5. 配置主机名解析

在每个节点的 hosts 文件中添加每个节点的服务器IP地址和主机名称、群集IP地址和名称、侦听器IP地址和名称:

hosts文件路径:C:\Windows\System32\drivers\etc

6. 设置允许应用或功能通过防火墙

所有节点均要设置,按照下面图中红框设置,注意选项后面打勾的位置。

https://img-blog.csdn.net/20171202003025431?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm92ZW4yNTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

7. 启用所需服务并且改成自启动

注意computer browser服务依赖于workstation和Server服务,需要先启动,否则computer browser服务会启动失败。

8. 创建故障转移群集

可以用administrator或者添加到管理员组的普通用户来创建,两节点用户名密码必须相同;如果是后者,还需要在两节点注册表添加 LocalAccountTokenFilterPolicy为1

以管理员模式打开powershell,执行:

new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

https://support.microsoft.com/zh-cn/help/942817/how-to-change-the-remote-uac-localaccounttokenfilterpolicy-registry-se

否则添加第二台机器时会遇到以下报错

开始创建

直接输入服务器名称然后点添加,通过浏览来查找可能会报错

注意不要勾下面这个,否则磁盘会从本地offline

7. 配置群集仲裁设置

由于我们是两个节点的故障转移集群,所以需要配置群集仲裁设置,如果是奇数节点,这一步是不需要做的

也可以点击浏览直接新建一个共享文件夹

四、 两节点安装sqlserver软件及SSMS

略,参考单实例安装手册,注意两边版本和选择安装的功能要一样

注:sqlserver 2016 SP2开始可以不安装.NET Framework 3.5

SQL Server 2016 & 2017: Hardware & software requirements - SQL Server | Microsoft Learn

五、 启用SQL Server AlwaysOn AG特性

所有节点均操作

两边用户名和密码要设成一样

重启SQL Server服务

六、 配置证书认证

以下将开始数据库中操作,可以先打个虚拟机快照备份

所有节点均需操作

节点1

USE master;

GO

--创建主密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'xxxx';

--创建证书  这里有两个"CERT1",建议每台机器都改成不同的名称以作区分

CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';

--把刚才创建的证书备份到文件 这里也有两个CERT1要改

BACKUP CERTIFICATE CERT1 TO FILE = 'C:\cert\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

节点2(注意修改相关内容)

USE master;

GO

--创建主密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'xxxx';

--创建证书  这里有两个"CERT1",建议每台机器都改成不同的名称以作区分

CREATE CERTIFICATE CERT2 WITH SUBJECT = 'CERT2', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';

--把刚才创建的证书备份到文件 这里也有两个CERT1要改

BACKUP CERTIFICATE CERT2 TO FILE = 'C:\cert\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

证书通过共享文件互相复制粘贴

载入其它节点证书(不用载入自己的证书)

节点1

CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';

GO

节点2

CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';

GO

七、 新建可用性组

在节点1建一个测试库并进行全备

可以选备份配置

配置侦听器(建完ag后配也可以)

八、 数据同步测试

九、 自动故障转移测试

关闭节点一 sqlserver服务,可以看到节点2变成了主库

重新启动节点一服务,开启后主从不会自动再次切换

测试数据同步

十、 手动故障切换测试

可以看到角色发生了变化

 

参考

sql server 2016 AlwaysOn实现无域高可用全教程_WSD_csdn的博客-CSDN博客_sqlserver2016 allwayson

Implement SQL 2016 Availability Group without Active Directory Part 1

Implement SQL 2016 Availability Group without Active Directory Part 2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值