如何在没有域的环境中搭建AlwaysOn(一)
对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量。
该特性可以使用户不必额外准备一台或者两台(为了避免单点故障)AD域服务器,从而降低了部署的成本;对DBA而言,可以把更多的精力放在数据库上,而不需要去了解AD域的知识,特别是对MySQL和Oracle转型过来的DBA而言,这绝对是一个非常贴心的特性,要知道windows AD 域的复杂度足够用几本书来阐述,尽管在windows server 2016之前部署和运维AlwaysOn时不需要了解和关注AD域的方方面面,但基本的知识也够得上研究一段时间了。
下面我给大家介绍如何在Windows Server 2016中部署AlwaysON,整个过程分了两部分,内容较多,我准备以两篇博客来写
1.搭建故障转移集群;

一.搭建故障转移集群
1.创建集群用户
1.1.在每个节点上创建相同用户名和密码的用户,且把此用户加入到服务器本地管理员组;
说明:考虑到操作系统已自带了administrator,所以此步骤也可以忽略,但为了安全起见,建议还是自建一个集群专用的账户,专号专用,以便日后管理和安全。
1.2.配置注册表
把LocalAccountTokenFilterPolicy的值设置为1,配置方法:
在powershell中执行如下命令:
new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1
配置成功后的截图:

2.安装故障转移功能
在所有的节点上安装故障转移功能:
2.1.打开【服务器管理器】
2.2.点击右上角的【管理】,选择【添加角色和功能】

2.3.按照向导,依次多次点击【下一步】,直到【选择功能】的页面,勾选【故障转移集群】;
说明:在下图截图时我已经安装了【故障转移集群】,所以截图红色框中【故障转移集群】前面已经勾选,且括号内显示已安装,而你在新安装时是没有勾选和已安装的提示的,请知悉。

2.4.连续点击【下一步】,直到完成安装;
2.5.在其他节点上重复步骤1-4;
3.每个节点配置主DNS后缀
3.1.打开系统属性界面;
点击【控制面板】,选择大图标查看方式,然后选择【系统】

3.2.添加主DNS后缀
在每个节点上,点击【更改设置】,在弹出的【系统属性】中选择【更改】,然后在弹出的【计算机名/域更改】的界面中选择【其他】,最后在弹出的【DNS后缀和NetBIOS计算机名】中,增加此计算机的主DNS后缀——如果你的环境中没有DNS服务器,可以用example.com做测试用。


4.名称解析
将各个节点的计算机名和IP配置到DNS服务器中(也就是A记录),如果没有DNS服务器,则把各个节点的计算机名和IP配置到hosts文件中,
配置hosts的方法:
打开每个节点的C:\Windows\System32\drivers\etc\hosts,将所有节点的服务器名字和对应的IP写到hosts文件中,如:

5.创建集群
说明:只需在任意一个节点上执行即可。
New-Cluster –Name MyWGCluster -Node WIN-SRCOJDGEQ3I,WIN-JBRHIAJPMG2 -AdministrativeAccessPoint DNS -StaticAddress 10.5.103.217
参数说明:
–Name:集群的名字
-Node:节点,多个节点用英文逗号分隔
-StaticAddress:集群的公共IP
创建过程的截图:


6.配置仲裁
基于工作组搭建的集群目前还不支持文件共享的方式做仲裁,官方建议使用磁盘做仲裁或者云见证。我这次验证的时候因为没有条件,所以就没有做仲裁了,在实际生产环境中,请大家利用故障转移集群管理器创建仲裁。
FAQ
1.搭建故障转移集群后,集群一直报错,提示注册DNS名称失败。

有两个原因会导致这个问题:
1.1 在集群搭建时,修改主机名、创建集群网络名称都会尝试到网卡中配置的DNS服务器上注册A记录,以便实现主机名、集群网络名称的IP解析,但当DNS服务器与集群在不同的域中时,注册就会因为DNS权限配置问题而失败,解决办法是修改DNS服务器的配置,允许“非安全”的动态更新:

1.2 集群配置时用的hosts文件做的主机名和集群名的IP解析,没有用到DNS服务器,所以当节点尝试通过网卡中配置的DNS服务器去解析集群的网络名称时,会提示找不到。
下一节将为大家介绍SQL Server AlwaysOn的搭建过程,敬请留意,谢谢。
如何在没有域的环境中搭建AlwaysOn(一)的更多相关文章
- 如何在没有域的环境中搭建AlwaysOn(二)
对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 上篇博客 ...
- Idea开发环境中搭建Maven并且使用Maven打包部署程序
1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...
- 如何在windows环境中搭建apache+subversion(ZT)
我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...
- 在域信任环境中使用 Team Foundation Server (TFS 2013)
原文:在域信任环境中使用 Team Foundation Server (TFS 2013) 1. 用户情景和方案: XX公司的大部分软件产品通过软件外包的方式由开发商完成.为加强对软件开发的进度和质 ...
- 2008R2域控环境中 应用组策略 实现禁用USB设备使用
本文介绍如何在Windows Server 2008 AD中禁用客户端USB端口.本文使用的系统:Windows Server 2008 R2 企业版.域功能级别:Windows Server 200 ...
- (4)ElasticSearch在linux环境中搭建集群
1.概述 一个运行中的Elasticsearch实例称为一个节点(node),而集群是由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力.当有节点加入集群中或者 ...
- (1)Zookeeper在linux环境中搭建集群
1.简介 ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务.同步服务和命名注册.ZooKeeper的架构通过冗余服务实现高可用性.Zookeeper ...
- helm在kubernetes环境中搭建
1.安装helm 1.1.安装helm客户端 各个版本的helm:https://github.com/helm/helm/releases wget https://get.helm.sh/helm ...
- linux环境中安装ftp服务
需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...
随机推荐
- make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1,make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1
错误3: g++: g++: selected multilib '32' not installed selected multilib '32' not installed make: *** [ ...
- 转:IT公司的十大内耗,别说你公司没有!
这篇文章是以前看到的,觉得写得非常好,转载在自己BLOG作为记录.原文:http://www.pmtoo.com/news/2015/0108/7260.html. 当企业发展到一定时期时,会不可避免 ...
- jQuery判断checked的三种方法
今天在查看他人源码时看到在判断复选框是否选中时,与自己的写法不同: .is(":checked") vs .prop("checked") == true 因此 ...
- mysql乐观锁总结和实践
乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突 ...
- Python中的生成器与yield
对于python中的yield有些疑惑,然后在StackOverflow上看到了一篇回答,所以搬运过来了,英文好的直接看原文吧. 可迭代对象 当你创建一个列表的时候,你可以一个接一个地读取其中的项.一 ...
- GruntJS常用前端流程自动化配置-【持续优化】
前言 近期用Grunt进行前端开发经常要用到的一些Grunt插件,用起来非常顺手. 一.package.json文件配置如下: 包括coffeescript编译为js,css加CSS3适配前缀,css ...
- StatePattern
class Program { static void Main(string[] args) { var state = new OpeningState(); var lift = new Lif ...
- Oracle OEM
一.OEM是什么 Oracle Enterprise Manager(Oracle企业治理器,简称OEM)是通过一组Oracle程序,为治理分布式环境提供了治理服务. 二.配置OEM 三.启动OEM ...
- ASP.NET导出Excel文件
第一种最常见,并且最简单的方式,直接把GridView导出,导出格式为文本表格形式. protected void btnSaveExcel_Click(object sender, EventArg ...
- Windows服务安装
运行cmd 输入:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 按回车 输入安装服务路径:如(installutil.exe D:\Project ...