一、简介

环境:小编使用的服务器是windows server 2016(系统服务器) + sql server 2016(数据库服务器)
(windows server 2016 + sql server 2016以上才可用无域高可用,windows server 2016 + sql server 2016下载地址http://msdn.itellyou.cn/

windows server 2016 下载

sql server 数据库服务器名称 sql server2016服务器名称_sql

sql server 2016 下载

sql server 数据库服务器名称 sql server2016服务器名称_db_02


下面进入主题吧!

ip地址

二、安装故障转移和.net3.5

主机名

IP

说明

win-138

192.168.66.138

服务器138,也就是节点138

win-138

192.168.66.138

服务器139,也就是节点139

mk-AlwaysOn

192.168.66.137

集群IP,虚拟的

mk-SQL

192.168.66.140

监听器IP

在服务器中添加角色和功能(两台计算机都要安装)

默认下一步,下一步,勾选NET Framework 3.5 功能故障转移群集,直到安装完成。

sql server 数据库服务器名称 sql server2016服务器名称_IP_03


sql server 数据库服务器名称 sql server2016服务器名称_sql_04


sql server 数据库服务器名称 sql server2016服务器名称_IP_05

二.修改并加入域(两台计算机都要改)

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

sql server 数据库服务器名称 sql server2016服务器名称_db_06

修改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-138

192.168.66.138

服务器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
  • 1
  • 2
  • 3
  • 4

sql server 数据库服务器名称 sql server2016服务器名称_db_07

三、关闭防火墙(两台电脑执行)

关闭防火墙,要不然故障转移会有问题

sql server 数据库服务器名称 sql server2016服务器名称_db_08

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

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

sql server 数据库服务器名称 sql server2016服务器名称_服务器_09


sql server 数据库服务器名称 sql server2016服务器名称_sql_10

四、修改DNS(两台电脑执行)

在右下角网络中打开internet网络,设置DNS服务器

sql server 数据库服务器名称 sql server2016服务器名称_sql_11

五、新建故障转移(任意一台电脑执行)

打开PoserShell运行以下代码,注意修改成自己的IP跟计算机名(参考上面的表格)

sql server 数据库服务器名称 sql server2016服务器名称_IP_12

New-Cluster -Name mk-AlwaysOn -Node win-138,win-139 -StaticAddress 192.168.66.137 -AdministrativeAccessPoint DNS
  • 1

sql server 数据库服务器名称 sql server2016服务器名称_服务器_13

六、验证故障转移是否成功(任意一台电脑关机)

最好测试两台电脑(也可跳过不做这一步)

如WIN-139关机(有人问怎么打开这个界面?在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:mk-alwayson)

sql server 数据库服务器名称 sql server2016服务器名称_服务器_14

恭喜各位故障转移已全部搞定,接下来就是sql server 2016的高可用性安装了

七、安装sql server 2016(两台电脑都要装)

下载地址:http://msdn.itellyou.cn/ 上面有提过的

sql server 数据库服务器名称 sql server2016服务器名称_服务器_15

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

八、设置共享文件

在C盘中新建一个gdmk文件夹

设置共享人为Everyone,修改权限级别为读取/写入

sql server 数据库服务器名称 sql server2016服务器名称_服务器_16

九、在配置管理器中启用高可用和修改账户名登录

sql server 数据库服务器名称 sql server2016服务器名称_IP_17


sql server 数据库服务器名称 sql server2016服务器名称_sql_18

十、安装证书(特别特别要小心)

SQL Server Management Studio (SSMS) 下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017 –共享文件夹路径:\win-138\gdmk
注:下面登录用户均使用sa用户进行登录操作

节点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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

节点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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

节点1:WIN-138

--载入其它节点证书
--不用载入自己的证书!
--不用载入自己的证书!
--不用载入自己的证书!
--CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer'; 
CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer'; 
GO
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

节点2:WIN-139

--载入其它节点证书
--不用载入自己的证书!
--不用载入自己的证书!
--不用载入自己的证书!
CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer'; 
--CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer'; 
GO
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

十、新建可用性组

数据库先备份

sql server 数据库服务器名称 sql server2016服务器名称_db_19

sql server 数据库服务器名称 sql server2016服务器名称_db_20


sql server 数据库服务器名称 sql server2016服务器名称_db_21


sql server 数据库服务器名称 sql server2016服务器名称_IP_22


sql server 数据库服务器名称 sql server2016服务器名称_IP_23


sql server 数据库服务器名称 sql server2016服务器名称_db_24


sql server 数据库服务器名称 sql server2016服务器名称_db_25


sql server 数据库服务器名称 sql server2016服务器名称_IP_26


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

sql server 数据库服务器名称 sql server2016服务器名称_db_27


大功告功!