sql server 2016 AlwaysOn实现无域高可用全教程
一、简介
环境:小编使用的服务器是windows server 2016(系统服务器) + sql server 2016(数据库服务器)
(windows server 2016 + sql server 2016以上才可用无域高可用,windows server 2016 + sql server 2016下载地址:http://msdn.itellyou.cn/
windows server 2016 下载

sql server 2016 下载

下面进入主题吧!
ip地址
二、安装故障转移和.net3.5
主机名 IP 说明
win-138 192.168.66.138 服务器138,也就是节点138
win-139 192.168.66.139 服务器139,也就是节点139
mk-AlwaysOn 192.168.66.137 集群IP,虚拟的,自己随便写,同网段就行,后续会用到
mk-SQL 192.168.66.140 监听器IP,也是虚拟的,自己随便写
在服务器中添加角色和功能(两台计算机都要安装)
默认下一步,下一步,勾选NET Framework 3.5 功能和故障转移群集,直到安装完成。



二.修改并加入域(两台计算机都要改)
在我的电脑中点击属性(也可以使用win+E进入文件夹,在此电脑中右键后点击属性)—>更改设置–>在弹出的窗口点击更改–>弹出的窗口点击其他–>最后点击确定(点击确定之后会重启电脑,点击立即重新启动)

修改HOST文件(两台计算机都要安装)
在文件夹中 C:\Windows\System32\drivers\etc 打开文件hosts,在hosts以笔记本或写字板方式打开,并进行新增和保存(保存不了的,把hosts文件复制到桌面后进行修改,修改完再覆盖C:\Windows\System32\drivers\etc中的hosts)
新增内容hosts(注意是自己的IP,请参考下面的表格图):
主机名 IP 说明
win-138 192.168.66.138 服务器138,也就是节点138
win-139 192.168.66.139 服务器139,也就是节点139
mk-AlwaysOn 192.168.66.137 集群IP,虚拟的
mk-SQL 192.168.66.140 监听器IP
192.168.66.137 mk-AlwaysOn
192.168.66.138 win-138.gdmk01.cn
192.168.66.139 win-139.gdmk01.cn
192.168.66.140 mk-SQL
三、关闭防火墙(两台电脑执行)
关闭防火墙,要不然故障转移会有问题

设置允许应用或功能通过windows防火墙
还是在刚刚的防火墙中点击设置允许应用或功能通过windows防火墙,设置以下几项


四、修改DNS(两台电脑执行)
在右下角网络中打开internet网络,设置DNS服务器

五、新建故障转移(任意一台电脑执行)
打开PoserShell运行以下代码,注意修改成自己的IP跟计算机名(参考上面的表格)

New-Cluster -Name mk-AlwaysOn -Node win-138,win-139 -StaticAddress 192.168.66.137 -AdministrativeAccessPoint DNS
六、验证故障转移是否成功(任意一台电脑关机)
最好测试两台电脑(也可跳过不做这一步)
如WIN-139关机(有人问怎么打开这个界面?在服务器管理器–>工具–>故障转移群集–>右键故障转移群集管理器–>连接到群集(N)–>输入集群的名称,如:mk-alwayson)

恭喜各位故障转移已全部搞定,接下来就是sql server 2016的高可用性安装了
七、安装sql server 2016(两台电脑都要装)
下载地址:http://msdn.itellyou.cn/ 上面有提过的

安装的话就不介绍了,不懂的小朋友请参考特别注意安装的功能和目录要一致,否则高可用会失败https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html
八、设置共享文件
在C盘中新建一个gdmk文件夹(两台都要建)
设置共享人为Everyone,修改权限级别为读取/写入

九、在配置管理器中启用高可用和修改账户名登录(两台节点上都要操作)
1.点击SQL Server服务,再点击【SQL Server(MS…】


2.勾选“启用AlwaysOn可用性组(E)”

3.选择【登录】,设置电脑的账号名、密码(电脑开机的密码)注意注意:两台电脑的开机密码一定要一样的!!!

十、在数据库里面安装证书(特别特别要小心)/客户机上操作
先将两台安装客户端登录到数据库并且启用sa权限可以远程登陆
1.这是sql的客户端下载地址:
SQL Server Management Studio (SSMS) 下载地址:https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017
2.在sql的客户端连接两台电脑装的数据库,用sa用户登录
3.使用客户端去访问两台虚拟机的服务器。(可以在物理机里访问,物理机连接两台服务器的数据库),,注意:一定先要在两台虚拟机备份,快照,以防坏了不好恢复。步骤如下:

3.新建查询,执行以下语句:
节点1:WIN-138(数据库)
USE master;
GO
--创建主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
--创建证书 这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
CREATE CERTIFICATE CERT1 WITH SUBJECT = 'CERT1', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件 这里也有两个CERT1要改
BACKUP CERTIFICATE CERT1 TO FILE = 'C:\gdmk\CERT1.cer';
--创建终结点,设为证书验证 这里第二行有1个CERT1要改
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT1, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
节点2:WIN-139
USE master;
GO
--创建主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Abc123';
--创建证书 这里有两个"CERT1",建议每台机器都改成不同的名称以作区分
CREATE CERTIFICATE CERT2 WITH SUBJECT = 'CERT2', START_DATE = '2017-01-01',EXPIRY_DATE = '2099-12-30';
--把刚才创建的证书备份到文件 这里也有两个CERT1要改
BACKUP CERTIFICATE CERT2 TO FILE = 'C:\gdmk\CERT2.cer';
--创建终结点,设为证书验证 这里第二行有1个CERT1要改
CREATE ENDPOINT [group0_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT2, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
3.1将两边得共享文件夹里面证书互换,确保两节点上gdmk文件夹里面都有CERT1跟CERT2证书
4.证书通过共享文件互相复制粘贴,共享文件地址:win-138\gdmk

5.执行完上一步,接着运行win-138,win-139里面的内容
节点1:WIN-138
--载入其它节点证书
--不用载入自己的证书!
--不用载入自己的证书!
--不用载入自己的证书!
--CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';
CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';
GO
节点2:WIN-139
--载入其它节点证书
--不用载入自己的证书!
--不用载入自己的证书!
--不用载入自己的证书!
CREATE CERTIFICATE CERT1 FROM FILE = 'C:\gdmk\CERT1.cer';
--CREATE CERTIFICATE CERT2 FROM FILE = 'C:\gdmk\CERT2.cer';
GO
十、新建可用性组(此操作在连接集群ip上进行操作)
数据库先备份





这里添加副本辅助角色选择为:win-139



添加监听器IP及名称


最后一直下一步,直到完成!

大功告功!
连接的时候连接监听器地址192.168.66.140就可以了
这时测试下,可以让其中一台电脑故障(关机也可以),这时会自动转移到另外一台数据库上,在另外一台数据库里做增删改查等操作,但凡这台电脑开机,正常运行了,数据也会自动同步到这台电脑数据库里,这台电脑挂了,另外一台电脑的数据库依然接着继续运行,保证数据一切正常。
sqlserver 2019 on windows server2019集群上也是一样的
特别要注意的是:
1.监听器ip可以不用做 连接集群ip就可以了
2.建立集群的时候必须要在集群ip上建立
3.集群建立好之后先创建数据库 看到主副本数据库同步之后才能转移
4.调节的时候我是将猪调节为同步模式 副本调节为异步模式
5.测试的时候 在集群ip上创建数据库跟可用性模式 看能否同步到主从数据库上
sql server 2016 AlwaysOn实现无域高可用全教程的更多相关文章
- SQL Server 2016 + AlwaysOn 无域集群
目录 AlwaysOn 搭建 WSFC 配置计算机的 DNS 后缀 安装故障转移集群 验证集群 创建集群 创建文件共享见证 配置 AlwaysOn 新建可用性组 创建侦听器 可读副本的负载均衡 主角色 ...
- SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测
之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了.windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向 ...
- SQL Server 2016 Alwayson新增功能
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/ 概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alw ...
- SQL Server2016 AlwaysOn无域高可用
https://blog.csdn.net/qq_41981651/article/details/90314817 https://blog.csdn.net/roven257/article/de ...
- 配置SQL Server 2016无域AlwaysOn(转)
Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的S ...
- SQL Server 2016 Failover Cluster + ALwaysOn
SQL Server 2016 Failover Cluster + ALwaysOn 环境的搭建 近期公司为了提高服务的可用性,就想到了部署AlwaysOn,之前的环境只是部署了SQL Server ...
- SQL Server 2016 非域Aways On环境搭建
一.优点 aways on的优点,a. 构建主从数据库,分摊单点数据库压力.b.可以减少数据同步时间,提升用户体验.c.可以实现高可用,自动平滑切换. 二.缺点 及时同步最多只能提交3台,及时同步会导 ...
- 服务器搭建域控与SQL Server的AlwaysOn环境过程(四)配置AlwaysOn
0 引言 这一篇才真正开始搭建AlwaysOn,前三篇是为搭建AlwaysOn 做准备的. 步骤 1.3 配置AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的 ...
- 服务器搭建域控与SQL Server的AlwaysOn环境过程(三)配置故障转移
0 引言 主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的. 在讲解步骤之前需要了解一下故障转移集群仲裁配置 下面图片来自<Windows Server20 ...
随机推荐
- Blackbox_exporter黑盒监测
一.概述 blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http.dns.tcp.icmp 的监控数据采集.Blackbox_exporter ...
- Kafka学习笔记3--Kafka的生产者和消费者配置
下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题及其生产.消费相关. server.properties--服务端配置 producer.properties--生产 ...
- .net core SIMD范例分析
单指令多数据流(SIMD)是CPU基本运算之外为了提高并行处理多条数据效率的技术,常用于多媒体处理如视频,3D模拟的计算.实现方式不同品牌的CPU各有自己的指令集,如SSE MMX 3DNOW等. C ...
- git 命令从入门到放弃
o(︶︿︶)o 由于项目使用 git 作为版本控制工具,自己可以进行一些常用操作但是有时候还是会忘掉,导致每次遇到 git 命令的使用问题时就要再查一遍,效率就立马降下来了,所以今天就来一个从头到尾 ...
- Python - Win10系统下Python3.x环境配置
Win10系统下Python3.x环境配置 https://blog.csdn.net/qq_41952474/article/details/82630551
- ansible简易使用
一.本地环境: centos 7 192.168.10.10 主控机 centos 7 192.168.10.130 被控机 Windows7 192.168.10.13 ...
- 设计模式之(十一)代理模式(Proxy)
软件开发行业有一个观点:任务问题都可以添加一个中间层来解决.代理模式也是这个思想下的产物. 首先看下代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.就是把类委托给另外一个类,用这个类来控 ...
- 解决IIS Web部署 svg/woff/woff2字体找不到问题(vue部署后找不到)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/smartsmile2012/articl ...
- 【转载】Gradle学习 第四章:安装Gradle
转载地址:http://ask.android-studio.org/?/article/16 4.1. Prerequisites 前提条件Gradle requires a Java JDK or ...
- Mysql读写分离操作
环境:两台centos环境,安装mysql(mariadb) web网站的优化: 缓存技术 数据库缓存 redis 文件缓存 图片 fastdfs 负载均衡 nginx 数据库主从备份,读写分离 图解 ...