前期准备:
windows系统:window server 2016
数据库:sqlserver 2016
两台电脑
两个虚拟IP
1.安装windows 故障转移功能;
2.两节点添加相同名称的后缀DNS
3.访问 C:\Windows\System32\drivers\etc ,修改host文件(建议先复制出来再修改粘贴回去),添加以下内容:
虚拟IP_1 mk-AlwaysOn
电脑IP_1 TEST01.alw.cn
电脑IP_2 TEST02.alw.cn
虚拟IP_2 mk-SQL
4.打开powershell ,脚本创建windows集群:
New-Cluster -Name mk-AlwaysOn -Node TEST01,TEST02 -StaticAddress 虚拟IP_1 -AdministrativeAccessPoint DNS
5.建立证书通信 (sqlserver服务用administrator运行):
节点1:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'AlwaysOnShare2016'; ----密码
GO
CREATE CERTIFICATE Cert_DB01 WITH SUBJECT = 'Cert_DB01'
,START_DATE = '2021-04-12',EXPIRY_DATE = '2099-12-31'; --证书的有效时间
GO
----导出证书,将证书放在共享文件夹里面
BACKUP CERTIFICATE Cert_DB01 TO FILE = '\\TEST01\AlwaysOnShare\Cert_DB01.cer';
GO
---创建端点
CREATE ENDPOINT [SQLAG_Endpoint]
AUTHORIZATION [TEST01\Administrator] ----此账户是连接数据库的账户
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) ---侦听端口,1024 和 32767 之间的任何数字都有效。侦听IP地址,默认值为 ALL,表示侦听器将接受任何有效 IP 地址上的连接
FOR DATA_MIRRORING
(ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB01, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
节点2:
---------------
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'AlwaysOnShare2016';
GO
CREATE CERTIFICATE Cert_DB02
WITH SUBJECT = 'Cert_DB02',
START_DATE = '2021-04-12',EXPIRY_DATE = '2099-12-31';
GO
BACKUP CERTIFICATE Cert_DB02 TO FILE = '\\TEST01\AlwaysOnShare\Cert_DB02.cer';
GO
CREATE ENDPOINT [SQLAG_Endpoint]
AUTHORIZATION [HLRMTEST02\Administrator]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING
(ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB02, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
节点1:
USE master;
GO
CREATE CERTIFICATE Cert_DB02
FROM FILE = '\\HLRMTEST01\AlwaysOnShare\Cert_DB02.cer';
GO
节点2:
USE master;
GO
CREATE CERTIFICATE Cert_DB01
FROM FILE = '\\HLRMTEST01\AlwaysOnShare\Cert_DB01.cer';
GO
ssms配置alwayson,虚拟IP_2作为侦听服务器 ,搭建完成