SQL Server 2016 Always on是基于数据库实例的,不同的实例需要创建对应的Always on策略。本章节不涉及数据库调优,只是指导如何配置Always on。
通过SSMS登录到数据库。
图-1 登录数据库
创建mydata数据库并写入初始数据。如果已经有数据库了,可以选择导入。
图-2 创建数据库
备份数据。
图-3 备份数据
给SQLServer服务打开高可用性组支持,操作完成后需要重启数据库服务。
图-4 启用AlwaysOn可用性组
服务器上创建共享目录(每个节点都执行)。创建证书过程中会生成证书文件,所以每个服务器需要准备一个文件夹用于存放证书文件。
|
该目录需要给开启everyone读写权限。 |
图-5 创建共享目录
创建证书。在每一个服务器上,执行如下SQL代码,执行之前请参照注释对SQL代码进行修改。
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 = 'D:\share\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
如果创建证书过程中有失败的,可以用这个回退一些操作:
--删除终结点
drop ENDPOINT [group0_endpoint];
go
--删除证书
DROP CERTIFICATE CERT1;
--删除主密钥
drop master key
go
把证书文件发到每台设备上。
图-6 分发证书文件
在每台服务器的数据库里,安装其它服务器的证书。
|
载入其它节点证书,不用载入自己的证书。 CREATE CERTIFICATE CERT1 FROM FILE = 'D:\share\CERT1.cer'; CREATE CERTIFICATE CERT2 FROM FILE = 'D:\share\CERT2.cer'; CREATE CERTIFICATE CERT3 FROM FILE = 'D:\share\CERT3.cer'; GO |
图-7 安装证书
右键单击可用性组,选择新建可用性组。
图-8 新建可用性组
在新建可用性组对话框中设置相关参数。
图-9 配置组名
图-10 选择数据库
配置选项,单击<下一步>按钮。
|
集群间数据同步有两种方式“同步”,“异步”。如果选择异步,则集群性能在运行时大致等同于单机sql server的方式。如果选择“同步”其性能与单机相比相差30%左右。 |
图-11 指定副本
选择数据同步方式,单击<下一步>按钮。
图-12 选择数据同步方式
验证之后单击<下一步>按钮。
图-13 验证
确认信息无误后,单击<完成>按钮。
图-14 摘要
配置结果。
图-15 配置结果
图-16 数据同步成功。
给可用性组创建一个侦听器,该侦听器会自动把侦听器IP指向主库服务器。
图-17 添加侦听器
配置侦听器。
图-18 配置侦听器
添加完成,查看添加结果。
图-19 添加成功