SQL Server2016无域群集与高可用性AlwaysON配置新手教程

 

Doc教程文档下载地址:

https://download.csdn.net/download/chenhui389/12701070

一、准备工作:

1.安装服务器操作系统,这里以为windwows server 2016 标准版为系统环境。

准备至少两台及以上的windows server服务器,本教程以双机热备功能为例。

系统环境为:

①两台服务器均安装 windwows server 2016 标准版操作系统。

②两台计算机均在同一网络环境下。

③激活系统。

④先完全关闭两台server的防火墙,配置设置完成后再添加防火墙端口访问规则。

2.配置计算机名及DNS后缀。

(不要使用默认的随机计算机名,会给后续配置群集时输入带来不便)

计算机名称及IP地址配置如下:

计算机名:DB01  IP地址: 192.168.31.49

计算机名:DB02  IP地址: 192.168.31.48

非域环境下DNS后缀必须要配置。

具体步骤如下图:

右键我的电脑->属性->更改设置-

 

设置完以后需要点击"确定"按钮,才可以保存,保存完之后,提示重启计算机。

因为是新装的服务器,没有相关业务应用,直接重启即可。

需要在安装SQL server前进行计算名称的配置修改,否则后续会多一些配置步骤

3.修改hosts文件及确认网络通信正常。

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

符号#为单行注释,前面填写IP地址,空格,后面填写域名或计算机名。

使用文本编辑器编辑hosts,加入配置节如下图:

修改完后,对网络连接进行检查(双向的检查,两台需要测试互通)。

使用ping 命令,ping 计算机名/域名,进行测试(不是ping IP)。

使用ipconfig /all 检查主计算机名称DNS后缀以及IP地址 子网掩码 网关 等相关配置

4.修改系统设定项。

1.确认当前登陆计算机的用户是管理员用户,两台server具有相同的用户名和密码。

2.检查服务,启动如下服务:

网络共享服务 server

远程注册表服务 Remote Registry

WMI服务 Windows Management Instrumentation

3.组策略gpedit.msc (域用户下面的配置就不需要管这些策略)

后续步骤如有异常,需要注意回来检查如下配置节的设置是否正确:

windows设置->安全设置->本地策略->用户权限分配

windows设置->安全设置->本地策略->安全选项

网络访问: 本地帐户的共享和安全模型-> 必须配置为"经典"

 

二、安装server群集和故障转移:

添加角色和功能

 

如果没有安装.net framework3.5,则勾选安装。

中间没有特殊选项的步骤可以直接点下一步,关键选项如下:

勾选故障转移群集->点击添加功能

一直下一步,等待片刻,直到安装过程完成。

安装完成后,打开群集管理工具.如下图:

验证配置:

输入DB01的计算机名或者域名,然后点击添加按钮.

再输入DB02的计算机名或者域名,同样点击添加按钮.

将两台server都添加进列表之后,才点击下一步。

不要尝试点击"浏览"按钮进行添加,可能根本就不弹出任何列表)

运行所有测试。

测试结果中,测试不适用和已通过测试,都是正常情况。

如果出现红色的测试不成功错误信息,需要额外注意看一下。

除了AD域的错误提示之外的其它错误需要根据信息进行灵活的排错。

比如访问权限受限,或者远程注册表服务没有开启等。

测试成功后,就可以马上利用本次的测试来创建群集了。

如下图所示:(勾选"立即使用经过验证的节点创建群集")

输入群集的名称和群集IP地址。然后下一步。

群集创建完成后的界面如下:

群集创建完成后,注意节点的数量和状态。

创建群集只需要在一台server上面操作创建就可以了。

如果群集状态不正常,在另外一台服务器(非主服务器),可以直接连接到群集,测试和验证一下群集配置。

到目前为止,群集创建基本完成,但是还缺少仲裁配置。

仲裁可以使用仲裁磁盘,也可以使用共享文件夹。

仲裁磁盘需要添加群集磁盘和配置iSCSI发起程序与磁盘联机,比较复杂。

这里使用共享文件夹进行仲裁。

输入计算机名,点击显示共享文件夹,确定->下一步

到此为止,群集配置完毕。

 

群集已经有了节点,群集的角色功能列表中目前是空着的

角色功能需要在SQL server中操作AlwaysON,由SQL server来配置角色。

三、SQL server 安装配置

1.安装SQL server 2016 企业版。

①虚拟光驱加载ISO镜像文件。

② 全新或独立安装。

下一步

根据自己需要的功能勾选,通常只需要勾选少量几个功能:

数据库引擎,SQL server复制,客户端工具链接,管理工具-基本/完整

如果是新系统,没有安装过SQL server任何版本和实例。可以选择默认实例,默认实例的配置相对简单。

指定SQL server管理员,点击"添加当前用户"

选择混合模式,配置sa默认密码

安装完成。

2.配置SQL server 远程访问,开启AlwaysON.

找到自己安装的实例对应的TCP/IP服务,确定是已启用。

切换到IP地址,找到本机对应的IP地址,设置为启用,TCP端口设置sql server默认的1433端口即可。(最下面的IPAll不要设置)

②找到自己安装的实例对应的SQL数据库引擎主服务,启用AlwaysON。

(只有在server群集下才可以启用。)

 

启动AlwaysON和修改IP以后,务必重启当前实例的服务,否则无法生效。

 

 

四、Always ON配置

1.前置步骤:

①在主服务器DB01上面恢复和还原数据库。

右键数据库->属性->选项->修改数据库属性,自动关闭改为False.

2.检查两台SQL服务器的配置。

确认已经启用HADR。

查看计算机名称和实例名称是否正确。

select @@SERVERNAME

--删除server名称

exec sp_dropserver @@ServerName

-- 添加本地server名称

exec sp_addserver 'CHENS\MSSQL','LOCAL'

-- 查询可用server列表

exec sp_helpserver

 

查看群集节点成员

select * from sys.dm_hadr_cluster_members

select * from sys.dm_hadr_cluster_networks

 

3.配置证书

(非域环境下的SQL alwaysON必须配置证书,域环境下则不需要此步骤)

DB01和DB02分别配置和生成一个证书。核心代码如下(两台都需要执行,只需要修改下面的DB01和DB02部分):

1.生成证书

USE master;   

GO

--创建证书。

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DBserver2016';--指定密钥

GO

CREATE CERTIFICATE Cert_DB02--证书名称

WITH SUBJECT = 'Cert_DB02',--主题

START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30'; --有效时间  

GO

BACKUP CERTIFICATE Cert_DB02--备份证书到文件

TO FILE = 'D:\DB02.cer';

GO

CREATE ENDPOINT [DB02_endpoint]--使用指定的证书创建镜像端点

    STATE=STARTED

    AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)

    FOR DATA_MIRRORING

    (ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB02, ENCRYPTION = REQUIRED ALGORITHM AES)

GO

 

如果不慎配置过程中失败了,可以重新来过。如果已经成功配置完成了,下面的3个删除代码请谨慎使用。

drop endpoint [DB02_endpoint] --删除镜像端点

drop certificate Cert_DB02--删除证书

drop master key --删除主密钥

 

2.导入对方的生成证书。

把证书拷贝到仲裁共享目录,或者是使用其它方式拷贝发送。

使得两台计算机分别导入对方生成的证书。

在DB01上导入DB02生成的证书,在DB02上面导入DB01生成的证书。

--例如:在DB02上执行:使用导入方式创建节点一的证书

USE master;

 GO

 CREATE CERTIFICATE Cert_DB01

 FROM FILE = 'C:\certCommon\DB01.cer';

 GO

 

下面附个代码块,如果上面的代码不理解,不清楚怎么生产后互相交换导入的过程,可用参照下面这个代码操作.否则直接跳过.


--因为无域账号认证,故需创建证书,以便节点之间互相信任访问。
USE master; 
GO 
 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1qaz@WSX'; ----密码
GO
 CREATE CERTIFICATE Cert_DB01 
 WITH SUBJECT = 'Cert_DB01', 
 START_DATE = '2017-12-01',EXPIRY_DATE = '2099-12-31'; 
 GO 
 BACKUP CERTIFICATE Cert_DB01 
 TO FILE = '\\WindowsServer01\SQLAlwaysOnShare\Cert_DB01.cer'; 
 GO 
 CREATE ENDPOINT [SQLAG_Endpoint] 
 AUTHORIZATION [WindowsServer01\administrator] 
 STATE=STARTED 
 AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) 
 FOR DATA_MIRRORING 
 (ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB01, ENCRYPTION = REQUIRED ALGORITHM AES)
 GO 
--节点二上执行:创建主密钥/证书,备份证书。 
USE master; 
 GO 
 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1qaz@WSX'; 
 GO 
 CREATE CERTIFICATE Cert_DB02 
 WITH SUBJECT = 'Cert_DB02', 
 START_DATE = '2017-12-01',EXPIRY_DATE = '2099-12-31'; 
 GO 
 BACKUP CERTIFICATE Cert_DB02 
 TO FILE = '\\WindowsServer01\SQLAlwaysOnShare\Cert_DB02.cer'; 
 GO 
 CREATE ENDPOINT [SQLAG_Endpoint] 
 AUTHORIZATION [WindowsServer01\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 
--节点一上执行:创建节点二的证书 
USE master; 
 GO 
 CREATE CERTIFICATE Cert_DB02 
 FROM FILE = '\\WindowsServer01\SQLAlwaysOnShare\Cert_DB02.cer'; 
 GO 
--节点二上执行:创建节点一的证书 
USE master; 
 GO 
 CREATE CERTIFICATE Cert_DB01 
 FROM FILE = '\\WindowsServer01\SQLAlwaysOnShare\Cert_DB01.cer'; 
 GO

4.配置可用性组

证书处理完毕以后,就可以开始真正进行高可用性配置了

(输入可用性组的名字,这里输入的可用性组的名字,其实就是对应着群集角色下面的角色名字

选择和勾选高可用性数据库,下一步。

添加副本。

检查端点信息:

(这里的端点信息,其实就是上面SQL语句生成的端点,例如DB02_endpoint

点击下一步,到数据库同步选项,请优先选择<自动种子设定>。(SQL企业版才有的功能,截图的时候由于我的已经创建完成了,不能再次创建,网上找了一个其它版本的截图过来)

可用性验证成功。

一直点击下一步,直到完成。

输入侦听器的IP地址,例如192.168.31.51,端口1533.

侦听器创建完成之后即可使用侦听器的IP地址和端口进行数据库访问。

 

至此,所有步骤已经写完。剩下的就是恢复启用防火墙,

设置防火墙端口出入站规则。

放行默认SQL的1433端口,侦听器的1533端口,和镜像端点传输专用的5022端口等。

防火墙自行配制出入站端口规则,谢谢。

                                                                                                                  

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值