300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SQL Server无域群集与高可用性AlwaysON配置新手教程

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

时间:2024-06-18 17:43:35

相关推荐

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

Doc教程文档下载地址:

/download/chenhui389/12701070

一、准备工作:

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

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

系统环境为:

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

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

③激活系统。

④先完全关闭两台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 企业版。

①虚拟光驱加载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 = 'DBserver';--指定密钥

GO

CREATE CERTIFICATE Cert_DB02--证书名称

WITH SUBJECT = 'Cert_DB02',--主题

START_DATE = '-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'; ----密码GOCREATE CERTIFICATE Cert_DB01 WITH SUBJECT = 'Cert_DB01', START_DATE = '-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 = '-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端口等。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。