Sql server 2016 Always on 实现无域高可用

Sql server 2016 Always on 实现无域高可用

上一篇:sql server 2016 Always on 无域部署教程 使用三台服务器组成了sql server 高可用,但是基于成本考虑很多情况下我们只有两台服务器,今天就来测试下用两台服务器来组建sql server 高可用。

一、环境准备

①、服务器及IP规划

主机名IP地址描述
sql3.yishoe.com192.168.6.53数据库
sql4.yishoe.com192.168.6.54数据库
win-cluster192.168.6.56集群侦听IP
sqlcluster192.168.6.57sql 高可用侦听IP

②、设置集群节点主机名,每个节点都需要设置

在这里插入图片描述
修改hosts文件,文件路径:C:\Windows\System32\drivers\etc

192.168.6.53  sql3.yishoe.com
192.168.6.54  sql4.yishoe.com
192.168.6.56  win-cluster.yishoe.com
192.168.6.57  sqlcluster.yishoe.com

直至可以使用主机名互相ping通
在这里插入图片描述

③、防火墙放行

注:两台服务器都需要放行

3.1、开启ICMP回显已检测服务器是否可以ping通
3.2、放行1433(Sql Server数据库端口)/5022(数据库镜像端口)
3.3、开启WMI、及远程相关应用和功能防火墙放行。(生产环境不建议关闭防火墙)

回显开启,方便测试服务器是否通达
在这里插入图片描述
故障转移集群需要允许通过防火墙
在这里插入图片描述
在这里插入图片描述

④、安装Windows Failover Cluster Feature(win 故障转移集群)

注:两台服务器都需要安装
在这里插入图片描述

⑤、安装sql server

注:两台服务器单独安装
在这里插入图片描述

二、创建Win 故障转移集群

①、使用powershell创建故障转移集群

管理员启动powershell

New-Cluster –Name win-cluster -Node sql3.yishoe.com,sql4.yishoe.com  -AdministrativeAccessPoint DNS -StaticAddress 192.168.6.56

创建完成
在这里插入图片描述
–获取集群名
Get-Cluster
在这里插入图片描述
–群集详情
Get-ClusterResource
在这里插入图片描述

②、验证集群高可用

先ping一下试试
在这里插入图片描述
管理故障转移集群
在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:win-cluster
注:故障转移集群名称必须能ping通,能解析。
在这里插入图片描述
我们关闭了一台服务器
在这里插入图片描述
将关闭的服务器重新启动
集群恢复正常
在这里插入图片描述

三、配置Sql Server 2016 Alwayson

①、sql server 启用always on

注:两台sql server 服务器都需要启用
启用后需要重启下sql server服务
在这里插入图片描述

②、sql server 启动用户

百度到的文章都说需要启用单独的统一的用户启动,我这里就是用系统NT Service 用户启动
在这里插入图片描述

③、新建一共享文件夹用户

只给administrator 权限
在这里插入图片描述

在另外一台服务器测试访问没问题
在这里插入图片描述

④、为数据库通信创建证书

注:先两个节点分别执行step1生产证书后,将sql3服务器生产的证书copy到sql4服务器指定目录下(C:\software\cerficates)。
然后再执行step2、step3两个步骤!

sql3 服务器执行

--step1
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*********'
--创建主密钥
CREATE CERTIFICATE cer_alwayson_063
WITH SUBJECT='alwayson 063 local certificate',
EXPIRY_DATE='9999-12-31'
--创建证书  这里有两个"cer_alwayson_063",建议每台机器都改成不同的名称以作区分
EXEC xp_create_subdir 'C:\software\cerficates'
--创建存放证书目录
BACKUP CERTIFICATE cer_alwayson_063
TO FILE='C:\software\cerficates\cer_alwayson_063.cer'
--将证书保存在本地C:\software\cerficates 路径下
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE cer_alwayson_063, 
ENCRYPTION = REQUIRED ALGORITHM AES, 
ROLE = ALL)
--创建镜像端点
--step2:
CREATE LOGIN alwayson_user 
WITH PASSWORD='*********',
CHECK_POLICY=OFF
--创建镜像用户
USE MASTER
GO
CREATE USER alwayson_user FOR LOGIN alwayson_user

CREATE CERTIFICATE cer_alwayson_064
AUTHORIZATION alwayson_user
FROM FILE='C:\software\cerficates\cer_alwayson_064.cer'

--step3:grant connection right
GRANT CONNECT ON ENDPOINT:: Endpoint_Mirroring TO alwayson_user

sql4服务器执行

--step1
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '***********'
--创建主密钥
CREATE CERTIFICATE cer_alwayson_064
WITH SUBJECT='alwayson 064 local certificate',
EXPIRY_DATE='9999-12-31'
--创建证书  这里有两个"cer_alwayson_064",建议每台机器都改成不同的名称以作区分
EXEC xp_create_subdir 'C:\software\cerficates'
--创建存放证书目录
BACKUP CERTIFICATE cer_alwayson_064
TO FILE='C:\software\cerficates\cer_alwayson_064.cer'
--将证书保存在本地C:\software\cerficates 路径下
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE cer_alwayson_064, 
ENCRYPTION = REQUIRED ALGORITHM AES, 
ROLE = ALL)
--创建镜像端点
--step2:
CREATE LOGIN alwayson_user 
WITH PASSWORD='**********',
CHECK_POLICY=OFF
--创建镜像用户
USE MASTER
GO
CREATE USER alwayson_user FOR LOGIN alwayson_user

CREATE CERTIFICATE cer_alwayson_063
AUTHORIZATION alwayson_user
FROM FILE='C:\software\cerficates\cer_alwayson_063.cer'

--step3:grant connection right
GRANT CONNECT ON ENDPOINT:: Endpoint_Mirroring TO alwayson_user

⑤、建一个测试数据库

sql3作为主数据库服务器创建一个新测试数据库
在这里插入图片描述
将sql3上的Demo数据库做一个完整备份和日志备份还原到sql4服务器上
注:恢复状态需设置为RESTORE WITH NORECOVERY
注:按此手动同步数据库,创建可用性组后需要进入副本服务器sql 可用性组中将副本服务器上的数据库手动联接到可用性组
在这里插入图片描述
查看sql4上数据库状态
在这里插入图片描述

⑥、配置 sql server always on 可用性

此操作在sql3上执行
在这里插入图片描述
设置可用性组名称,例如:sqlcluster
在这里插入图片描述
选择需要高可用的数据库
在这里插入图片描述
指定副本
在这里插入图片描述
设置可用性模式为同步提交,且都可读。并勾选自动故障转移!
在这里插入图片描述
备份可以在任何副本上执行
在这里插入图片描述
创建侦听器:sqlcluster
在这里插入图片描述
数据库同步方式
我这里选择手动备份还原,所以跳过初始化同步。
在这里插入图片描述
在这里插入图片描述
验证没问题就执行下一步
在这里插入图片描述
接下来喝杯茶,等着安装完成。
在这里插入图片描述
注:上面配置完之后还有一部需要操作,否则查看sql server 可用性组面板显示错误
在这里插入图片描述

在副本服务器上将数据库联接到可用性组
在这里插入图片描述
再次刷新可用性面板
在这里插入图片描述
高可用性就搭建好了!

四、报错处理

①、没有做事务日志还原
在这里插入图片描述
解决办法:在主数据库服务器备份最新事务日志还原到报错的节点即可。

参考:配置SQL Server 2016无域AlwaysOn
参考:sql server 2016 AlwaysOn实现无域高可用全教程

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值