赞
踩
本案例基于阿里云ECS服务器实现的2016版本无域环境搭建SQLServer Always On,若无阿里云服务器,也可以在本机安装VMware Workstation Pro虚拟机,安装WindowsServer2016中心版
1.Windows Server 2016(内附各版本激活密钥)
链接:https://pan.baidu.com/s/1m-dB2CHZGFoIqoKHROoMog
提取码:00bb
2.SQL Server 2016企业版
链接:https://pan.baidu.com/s/1cfmwPWzCWmeagt33a0ETNQ
提取码:zqt6
3.VMware Workstation Pro 12
链接:https://pan.baidu.com/s/1JIdkTImu56qvluKcSWw4QQ
提取码:x9ca
1.1 硬件
(1)2台ECS服务器,非阿里云ECS服务器用镜像文件安装Windows Server服务器也可以。
(2)2016版本必须准备2台服务器!这是重点!!!!
测试环境建议2核,硬盘60G,内存2G即可,生产环境建议内存8G及以上,4核CPU。
1.2 软件
(1).NET Framework 4.0 及以上
(2)Windows Server 2016 64位数据中心版
(3)SQL Server 2016 64位企业版
(1)2台物理服务器,也可以是2台虚拟机。操作系统:Windows Server 2016 Datacenter (中心版)
(2)2台服务器上均安装SQL Server 2016
1.要用专有网络,经典网络会把公网IP注册到WSFC的VIP
2.安全组开放端口
注意:
两个节点的Windos Server 2016 都以Administrator账户登录,
并且两台服务器的Administrator密码必须相同,也可以单独在两个节点创建一个相同账号名和密码的账户,并且加入administrator组
计算机名 | 管理员账号 | 管理员密码 | IP地址 |
---|---|---|---|
ServerDB1 (节点1) | Administrator | lenpos@123 | 172.17.32.1 |
ServerDB2 (节点2) | Administrator | lenpos@123 | 172.17.32.2 |
Windows群集名称 | IP地址(虚拟ip) |
---|---|
cluster_youhao | 172.17.32.10 |
SQL侦听器名称 | IP地址(虚拟ip) |
---|---|
listener | 172.17.32.20 |
两个节点均需要安装一下功能和角色:
(1)安装DNS服务器,
(2)Windows故障转移群集,
(3)NET Framework 4.6功能
(1)修改计算机名称
(2)添加DNS后缀
hosts文件路径:C:\Windows\System32\drivers\etc
注意:两个节点服务器都需要配置Host文件
关闭两个节点的防火墙,互相Ping对方的ip地址,服务器名称,服务器名称+dns后缀
节点1 cmd执行
PING 172.17.32.2
PING ServerDB2
PING ServerDB2.youhao.com
节点2 cmd执行
PING 172.17.32.1
PING ServerDB1
PING ServerDB1.youhao.com
互相能PING通代表配置成功!
主节点1创建
测试过程出现一些警告信息可忽略
(1)两节点启用AlwaysOn功能
(2)两节点修改默认登录用户
因为是无域环境,所以改用证书认证,操作步骤如下
1.打开Microsoft SQL Server Management Studio
2.新建查询
3.执行代码
------------------------节点1执行 ------------------------ USE [master] GO --创建证书 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'lenpos@123456' GO CREATE CERTIFICATE cer_alwayson_001 --证书名称 WITH SUBJECT='alwayson 001 local certificate', --主题 EXPIRY_DATE='9999-12-31' --有效时间 GO --指定路径下创建文件夹 EXEC xp_create_subdir 'C:\software\cerficates' --备份证书到创建的指定文件夹中 BACKUP CERTIFICATE cer_alwayson_001 TO FILE='C:\software\cerficates\cer_alwayson_001.cer' GO --使用指定的证书,创建镜像端点 CREATE ENDPOINT [Endpoint_Mirroring] --镜像名称 STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE cer_alwayson_001, --证书名称 ENCRYPTION = REQUIRED ALGORITHM AES) GO
------------------------节点2执行 ------------------------ USE [master] GO --创建证书 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'lenpos@123456' GO CREATE CERTIFICATE cer_alwayson_002 --证书名称 WITH SUBJECT='alwayson 002 local certificate', --主题 EXPIRY_DATE='9999-12-31' --有效时间 GO --指定路径下创建文件夹 EXEC xp_create_subdir 'C:\software\cerficates' --备份证书到创建的指定文件夹中 BACKUP CERTIFICATE cer_alwayson_002 TO FILE='C:\software\cerficates\cer_alwayson_002.cer' GO --使用指定的证书,创建镜像端点 CREATE ENDPOINT [Endpoint_Mirroring] --镜像名称 STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE cer_alwayson_002, --证书名称 ENCRYPTION = REQUIRED ALGORITHM AES) GO
最终效果:
继续执行以下代码:
-------------节点1执行-------------
USE master;
GO
CREATE CERTIFICATE cer_alwayson_002
FROM FILE = 'C:\software\cerficates\cer_alwayson_002.cer';
GO
-------------节点2执行-------------
USE master;
GO
CREATE CERTIFICATE cer_alwayson_001
FROM FILE = 'C:\software\cerficates\cer_alwayson_001.cer';
GO
创建AlwaysOn高可用性必须要对数据库做一次全量备份和日志备份,只在节点1执行以下步骤即可,节点2会自动同步
执行以下代码
--主节点1执行: CREATE DATABASE [test] USE [test] CREATE TABLE [test1]([id] INT,[name] VARCHAR(100)) INSERT INTO [test1] SELECT 1,'test' DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200) SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') --(test 数据库完整备份),备份文件路径自行修改 SET @FileName = 'D:\SQLServer2016\DBBackup\test_FullBackup_' + @CurrentTime+'.bak' BACKUP DATABASE [test] TO DISK=@FileName WITH FORMAT ,COMPRESSION --(test 数据库日志备份) ,备份文件路径自行修改 SET @FileName = 'D:\SQLServer2016\DBBackup\test_logBackup_' + @CurrentTime+'.bak' BACKUP log [test] TO DISK=@FileName WITH FORMAT ,COMPRESSION
功能。
参考链接:https://help.aliyun.com/document_detail/110065.html
接下来演示havip(高可用虚拟IP)配置
回到故障转移群集管理,可以看到角色中多了一个YOUHAO_AG,即为我们创建的AlwaysOn高可用角色
由于只有两个节点,群集仲裁配置选择默认
如果想销毁群集重新创建,请严格按照以下步骤来,可以避免许多的坑!
(1)删除SQLSERVER可用性组角色(侦听器会一起删除)
(2)然后停止SQLSERVER配置工具的Alwayson,停止服务。
(3)新建群集,回SQL Server配置工具在重新启用AlwaysOn可用性组,启动SQL Server服务。
只要严格按照上诉步骤一步步操作,AlwaysOn是一定可以实现的,实现之后大家也可以可以测试故障转移功能,可以故意把主节点服务器关机,会发现辅助节点变成主节点了!为了节省时间,就不具体展示测试步骤了,大家可以随意测试。,,是一定可以操作成功的!
最后提供几篇写得比较好的文章,可以更加全面的了解AlwaysOn,链接如下:
(1).在阿里云ECS上轻松实现无域控的SQL_Server_AlwaysOn可用性组
https://blog.csdn.net/qq_28125719/article/details/84885184?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.no_search_link&spm=1001.2101.3001.4242.2
(2).sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群
https://blog.csdn.net/weixin_39974400/article/details/110311927
(3).SQL Server2016无域群集与高可用性AlwaysON配置新手教程
https://blog.csdn.net/chenhui389/article/details/107904474?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242.1
2012版本基于域环境搭建AlawysOn主要参考链接:
1.https://www.cnblogs.com/lyhabc/p/4678330.html
2012版本视频参考链接:
2.https://www.bilibili.com/video/BV1g54y1b7eJ
以下为链接为辅助参考链接:
3.1 https://blog.csdn.net/leshami/article/details/51180359
3.2 https://blog.csdn.net/leshami/article/details/51218021
3.3 https://blog.csdn.net/leshami/article/details/51224954
3.4 https://blog.csdn.net/leshami/article/details/51226044
–原理解释参考链接
https://blog.csdn.net/iai64824/article/details/54667351
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。