从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程

发布时间:2021年04月30日 阅读:434 次

一、简介
环境:

Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的SQL Server AlwaysOn 高可用。


下面就来一步一步配置2个节点的无域的SQL AlwaysOn 


环境准备:


(1)2台物理服务器,也可以是2台虚拟机。操作系统:Windows Server 2016 Datacenter  


(2)2台服务器上均安装SQL Server 2016 (也可以是SQL Server 2012)


猪逻辑公园使用的服务器是windows server 2016(系统服务器) + sql server 2016(数据库服务器)


(windows server 2016 + sql server 2016下载地址:http://msdn.itellyou.cn/)

windows server 2016 下载

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第1张

 

 


sql server 2016 下载

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第2张

 

 

下面进入主题吧!

ip地址
二、安装故障转移和.net3.5
主机名 IP 说明
win-138   192.168.66.138 服务器138,也就是节点138
win-139   192.168.66.139 服务器139,也就是节点139
mk-AlwaysOn 192.168.66.137 集群IP,虚拟的,自己随便写,同网段就行,后续会用到
mk-SQL    192.168.66.140 监听器IP,也是虚拟的,自己随便写
在服务器中添加角色和功能(两台计算机都要安装)
默认下一步,下一步,勾选NET Framework 3.5 功能和故障转移群集,直到安装完成。

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第3张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第4张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第5张

 

 


二.修改并加入域(两台计算机都要改)
在我的电脑中点击属性(也可以使用win+E进入文件夹,在此电脑中右键后点击属性)—>更改设置–>在弹出的窗口点击更改–>弹出的窗口点击其他–>最后点击确定(点击确定之后会重启电脑,点击立即重新启动)

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第6张

 

 

修改HOST文件(两台计算机都要安装)
在文件夹中 C:\Windows\System32\drivers\etc 打开文件hosts,在hosts以笔记本或写字板方式打开,并进行新增和保存(保存不了的,把hosts文件复制到桌面后进行修改,修改完再覆盖C:\Windows\System32\drivers\etc中的hosts)
新增内容hosts(注意是自己的IP,请参考下面的表格图):

主机名 IP 说明
win-138   192.168.66.138 服务器138,也就是节点138
win-139   192.168.66.139 服务器139,也就是节点139
mk-AlwaysOn 192.168.66.137 集群IP,虚拟的
mk-SQL    192.168.66.140 监听器IP
192.168.66.137 mk-AlwaysOn
192.168.66.138 win-138.gdmk01.cn
192.168.66.139 win-139.gdmk01.cn
192.168.66.140 mk-SQL
 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第7张

 

 


三、关闭防火墙(两台电脑执行)
关闭防火墙,要不然故障转移会有问题

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第8张

 

 


设置允许应用或功能通过windows防火墙
还是在刚刚的防火墙中点击设置允许应用或功能通过windows防火墙,设置以下几项

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第9张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第10张

 

 

四、修改DNS(两台电脑执行)
在右下角网络中打开internet网络,设置DNS服务器

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第11张

 

 


五、新建故障转移(任意一台电脑执行)
打开PoserShell运行以下代码,注意修改成自己的IP跟计算机名(参考上面的表格)

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第12张

 

 

New-Cluster -Name mk-AlwaysOn -Node win-138,win-139 -StaticAddress 192.168.66.137 -AdministrativeAccessPoint DNS
 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第13张

 

 


六、验证故障转移是否成功(任意一台电脑关机)
最好测试两台电脑(也可跳过不做这一步)
如WIN-139关机(有人问怎么打开这个界面?在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:mk-alwayson)

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第14张

 

 

恭喜各位故障转移已全部搞定,接下来就是sql server 2016的高可用性安装了
七、安装sql server 2016(两台电脑都要装)
下载地址:http://msdn.itellyou.cn/ 上面有提过的

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第15张

 

 


安装的话就不介绍了,不懂的小朋友请参考特别注意安装的功能和目录要一致,否则高可用会失败https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html

八、设置共享文件
在C盘中新建一个gdmk文件夹(两台都要建)
设置共享人为Everyone,修改权限级别为读取/写入

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第16张

 

 


九、在配置管理器中启用高可用和修改账户名登录(两台节点上都要操作)
1.点击SQL Server服务,再点击【SQL Server(MS…】

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第17张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第18张

 

 

2.勾选“启用AlwaysOn可用性组(E)”

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第19张

 

 

3.选择【登录】,设置电脑的账号名、密码(电脑开机的密码)注意注意:两台电脑的开机密码一定要一样的!!!

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第20张

 

 


十、在数据库里面安装证书(特别特别要小心)/客户机上操作

先将两台安装客户端登录到数据库并且启用sa权限可以远程登陆
1.这是sql的客户端下载地址:
SQL Server Management Studio (SSMS) 下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017
2.在sql的客户端连接两台电脑装的数据库,用sa用户登录
3.使用客户端去访问两台虚拟机的服务器。(可以在物理机里访问,物理机连接两台服务器的数据库),,注意:一定先要在两台虚拟机备份,快照,以防坏了不好恢复。步骤如下:

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第21张

 

 

3.新建查询,执行以下语句:

节点1:WIN-138(数据库)

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



节点2:WIN-139

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


 

3.1将两边得共享文件夹里面证书互换,确保两节点上gdmk文件夹里面都有CERT1跟CERT2证书

4.证书通过共享文件互相复制粘贴,共享文件地址:win-138\gdmk

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第22张

 

 


5.执行完上一步,接着运行win-138,win-139里面的内容

节点1:WIN-138

--载入其它节点证书
--不用载入自己的证书!
--不用载入自己的证书!
--不用载入自己的证书!
--CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';
CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';
GO



节点2:WIN-139

--载入其它节点证书
--不用载入自己的证书!
--不用载入自己的证书!
--不用载入自己的证书!
CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';
--CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';
GO



十、新建可用性组(此操作在连接集群ip上进行操作)
数据库先备份

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第23张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第24张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第25张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第26张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第27张

 

 

 

这里添加副本辅助角色选择为:win-139

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第28张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第29张

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第30张

添加监听器IP及名称

 

 

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第31张

 

 

  从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第32张

 

 

最后一直下一步,直到完成!

 从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程 系统运维 第33张

 

 

大功告功!

 

连接的时候连接监听器地址192.168.66.140就可以了   

 

 

这时测试下,可以让其中一台电脑故障(关机也可以),这时会自动转移到另外一台数据库上,在另外一台数据库里做增删改查等操作,但凡这台电脑开机,正常运行了,数据也会自动同步到这台电脑数据库里,这台电脑挂了,另外一台电脑的数据库依然接着继续运行,保证数据一切正常。

sqlserver 2019  on windows server2019集群上也是一样的  

特别要注意的是: 

1.监听器ip可以不用做,连接集群ip就可以了. 

2.建立集群的时候必须要在集群ip上建立.

3.集群建立好之后先创建数据库,看到主副本数据库同步之后才能转移.

4.调节的时候我是将猪调节为同步模式,副本调节为异步模式.   

5.测试的时候,在集群ip上创建数据库跟可用性模式,看能否同步到主从数据库上.


本文标题:从零搭建故障转移,sql server2016 AlwaysOn无域高可用性全教程
本文链接:http://malonghua.com/post/142.html
作者授权:除特别说明外,本文由 SylarM 原创编译并授权 猪逻辑公园工作室 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
Tag:sql server 2016 windows server2016 AlwaysOn 无域 高可用
相关文章

发表评论: