Windows Server 2016 以及 SQL Server 2016出来已有一段时间了,因为Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的SQL Server AlwaysOn 高可用。

下面就来一步一步配置2个节点的无域的SQL AlwaysOn

环境准备:

(1)2台物理服务器,也可以是2台虚拟机。操作系统:Windows Server 2016 Datacenter

(2)2台服务器上均安装SQL Server 2016 (也可以是SQL Server 2012)

IP以及名称规划:

节点1(物理服务器或虚拟机):JF-SQLDB01   IP地址:10.2.218.131

节点2(物理服务器或虚拟机):JF-SQLDB02   IP地址:10.2.218.132

Windows群集名称:JF-AlwaysOn   IP地址:10.2.218.130 (虚拟IP

可用性组名称:SQLAG

SQL侦听器名称:JFSQL01   IP地址:10.2.218.133(虚拟IP

注意事项:

1,只有Windows Server 2016 操作系统才能配置不依赖域的群集 ,2台服务器的操作系统,安全补丁,SQL Server版本要完全一致。

2,两个节点的Windos Server 2016 都以Administrator账户登录,并且两台服务器的Administrator密码相同,无特殊意义,只是为了方便后续的操作。

3,两个节点的SQL Server 2016 服务启动账户都设置成Administrator 。2个节点的数据库都有Administrator的登录名,也就是使用Administrator登录服务器时,可用Windows身份验证登录SQL Server。

      即:

           节点1的SQL Server上有:JF-SQLDB01\administrator  ;节点2上有:JF-SQLDB02\administrator ;这2个登录账号,在安装SQL Server的时候可创建。均有sysadmin权限。

一:首先配置Windows故障转移群集(2个节点均使用Administrator登录)

第一步:安装Windows故障转移群集(所有节点都需要安装)

第二步:每个节点的计算机不需要加入域,但需要添加DNS后缀,且每个节点的后缀必须要相同(例如:test.cn),如下图所示的操作。

第三步:在每个节点上都添加一个用户(我增加的用户名称是DCAdmin),且用户名以及密码每个节点都一致,添加此用户的目的是为了2台服务器能访问共享文件夹。

第四步:在每个节点的 hosts 文件中添加每个节点的服务器IP地址和名称、群集IP地址和名称、侦听器IP地址和名称,如下所示。

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

hosts文件可以用记事本打开

服务器名称,填写的是计算机全名,也就是服务器名带上之前设置的DNS名称后缀的名称,例如:JF-SQLDB01.test.cn。host文件需要在2个节点的服务器上都进行相同的操作。

第五步:设置允许应用或功能通过防火墙,两个节点均要设置,按照下面图中红框框出的地方设置,注意选项后面打勾的位置。

第六步:在DB1这个节点上,以管理员方式运行PowerShell ,使用脚本创建Windows群集。因为无域的群集没有图形化界面可设置,所以只能使用PowerShell 进行创建。

注意:如果登陆Windows Server 2016服务器的账户不是Administrator,需要先以管理员方式运行PowerShell,并执行下面的脚本:

new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

因为我登陆Windows Server 2016用的是Administrator,所以跳过执行上面的命令,直接运行下面的PowerShell脚本:

New-Cluster -Name JF-AlwaysOn -Node JF-SQLDB01,JF-SQLDB02 -StaticAddress 10.2.218.130 -AdministrativeAccessPoint DNS

--获取集群名
Get-Cluster

--群集详情  
Get-ClusterResource

使用Power Shell 安装群集后,在故障转移群集管理器中是看不到群集信息的,需要手动连接到群集,如下面图所示:

打开故障转移群集管理器后,在管理器处右键鼠标,选择“连接到群集” :

在弹出的对话框中手动输入群集的名称:

这样就能在故障转移群集管理器中看到群集的信息了。同样的方法在DB2的节点上再重复设置即可在DB2上看到群集信息。

二:配置SQL Server AlwaysOn 

SQL Server的安装这里就不描述,直接从配置AlwaysOn开始操作。

1 ,这里配置AlwaysOn,我采用的是共享文件夹的方式,所以首先在DB1这个节点上创建一个共享文件夹添加之前在每个节点上都创建的用户DCAdmin,这样DB2这个节点也能访问。

2,在DB1和DB2上设置启用AlwaysOn

启用AlwaysOn会要求重启服务,重启就可以。

3,重启服务后,查看服务器属性,确保 HADR 为 True 

既然节点没有加入域,那么就不能用域认证,只能用证书认证,因此需要在每个节点的数据库中创建其他节点的数据库证书。(请留意我连接数据库的账户,在创建端口的代码中有用到)

因此在配置可用性组前先在各节点配置证书认证信任。

4,分别在两个节点数据库上创建证书,并且彼此还原对方的证书,SQL代码如下:

注:我是在节点1上用administrator登录服务器,使用Windows身份登录SQL Server。在节点2上也是用administrator登录服务器,使用Windows身份登录SQL Server

--共享文件夹路径: ---\\JF-SQLDB01\SQLAlwaysOnShare   使用共享文件夹是为了方便读取每个节点的证书

--节点一上执行:创建主密钥/证书/端点,备份证书到共享文件夹中。
USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'JFAlwaysOnShare2016'; ----密码
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 = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB01.cer';    
GO
---创建端点
CREATE ENDPOINT [SQLAG_Endpoint]
AUTHORIZATION [JF-SQLDB01\administrator]    ----此账户是连接数据库的账户
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)   ---侦听端口,1024 和 32767 之间的任何数字都有效。侦听IP地址,默认值为 ALL,表示侦听器将接受任何有效 IP 地址上的连接
FOR DATA_MIRRORING
(ROLE = ALL,AUTHENTICATION = CERTIFICATE Cert_DB01, ENCRYPTION = REQUIRED ALGORITHM AES)
GO

--节点二上执行:创建主密钥/证书,备份证书。
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'JFAlwaysOnShare2016';
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 = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB02.cer';
GO

CREATE ENDPOINT [SQLAG_Endpoint]
AUTHORIZATION [JF-SQLDB02\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 = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB02.cer';
GO

--节点二上执行:创建节点一的证书
USE master;
GO
CREATE CERTIFICATE Cert_DB01
FROM FILE = '\\JF-SQLDB01\SQLAlwaysOnShare\Cert_DB01.cer';
GO

5,配置可用性组,接下来就和以前版本的配置是一样的了,不再描述,按照下面的截图一步一步配置

6,最后创建侦听器,当然,创建侦听器也可以在上一步设置。

最后,可以使用侦听器名称来连接数据库,数据库显示已同步,配置无域AlwaysOn成功。

配置SQL Server 2016无域AlwaysOn相关推荐

  1. 安装和配置SQL Server 2016 With SP1

    安装和配置SQL Server 2016 With SP1 Part1:创建服务启动账号 Part2:安装 Part3:配置篇 Part4:安装SSMS 下载SSMS:https://msdn.mic ...

  2. 第三篇——第二部分——第四文 配置SQL Server镜像——非域环境

    原文: 第三篇--第二部分--第四文 配置SQL Server镜像--非域环境 本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:http://blog.csdn.net/dba_huangzj ...

  3. SQL Server 2019 无域搭建Always On环境

    一.准备环境 操作系统:Windows Server 2019 Datacenter 数据库:cn_sql_server_2019_enterprise_x64 2台服务器: 计算机名称 计算机全名 ...

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

    Sql server 2016 Always on 实现无域高可用 上一篇:sql server 2016 Always on 无域部署教程 使用三台服务器组成了sql server 高可用,但是基于 ...

  5. SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

    之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了.windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向 ...

  6. SQL 2016 AlwaysOn 无域AlwaysOn配置要点

    环境准备: (1)操作系统:Windows Server 2016 Datacenter (2)SQL Server 2016 配置SQL  2016 AlwaysOn 要点 1,因为没有域所以需要在 ...

  7. sqlserver故障转移集群和alwayson的区别_详解SQL Server 2016 + AlwaysOn 无域集群

    搭建 WSFC 配置计算机的 DNS 后缀 1.配置计算机的 DNS 后缀,注意在同个工作组 2.每个节点的机器都要做域名解析,修改 host 文件C:WindowsSystem32driverset ...

  8. SQL Server 2016 AlwaysOn 安装及配置介绍

    SQL Server 2016  AlwaysOn 安装及配置介绍 Always On 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案. SQL Server 2012 ...

  9. sql server 2016 Always on 无域部署教程

    sql server 2016 Always on 无域部署教程 一.环境描述 1.1.前言 SQL Server AlwaysOn功能在SQL Server 2012版本就已经出来了,AlwaysO ...

最新文章

  1. python学习路线-Python学习路线
  2. Ubuntu下 MySQL安装
  3. 用JScript.net写.net应用程序
  4. html pie标签,css3pie怎么用?
  5. c 语言中三个函数,帮忙解释几个C语言中的函数?
  6. python实验报告代写价格_代写OS python程序作业、代写代写OS作业、代写OS实验报告...
  7. nacos当配置中心读取其他配置文件_SpringBoot+Nacos实现配置中心
  8. pyqt一个text实时显示另一个text的内容_python:基于tkinter打造的股票实时监控声音报警器! 自动监控,声音警报...
  9. MySQL随机函数的运用场景示例总结
  10. dos窗口运行.java文件
  11. 智慧校园大数据平台建设和运营整体解决方案
  12. 关闭windows端口的批处理命令
  13. iOS模块化灰度 A/BTest
  14. Eclipse TPTP平台配置详细步骤Ver1.0
  15. 程序员撩妹专用~~~好看的H5立方体创意相册,资源免费!!!程序员送给女孩子的礼物,非常适合送给小姐姐!
  16. RN 封装 Android原生组件
  17. 一文彻底看懂LightGBM
  18. Webpack安装与配置
  19. html的slider位置调整,ios设置UISlider的起始位置和增量
  20. [c语言]0xC0000005访问冲突

热门文章

  1. C# 查询波峰、波谷
  2. gis统计百分比_[ARCGIS]地统计分析(二)
  3. Java修炼之凡界篇 筑基期 第06卷 面向对象 第05话 static关键字
  4. SpringBoot + Ajax 实现个人账目管理系统 Ajax如此简单~
  5. 一台手机如何在微信语音/视频通话时把声音录下来
  6. 简直太牛了!这个微信插件神器开源,怒冲GitHub排名榜第一,网友:太好用了!...
  7. [MySQL]教学管理系统
  8. 你有张良计,我有过墙梯之策略模式
  9. 在linux环境下 com.aspose.words将word文件转图片后乱码,window系统正常
  10. 流媒体分析之srt 协议mpegts 封装