对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.搭建故障转移集群;

2.搭建AlwaysOn;

一.搭建故障转移集群

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(一)的更多相关文章

  1. 如何在没有域的环境中搭建AlwaysOn(二)

    对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量. 上篇博客 ...

  2. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  3. 如何在windows环境中搭建apache+subversion(ZT)

    我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...

  4. 在域信任环境中使用 Team Foundation Server (TFS 2013)

    原文:在域信任环境中使用 Team Foundation Server (TFS 2013) 1. 用户情景和方案: XX公司的大部分软件产品通过软件外包的方式由开发商完成.为加强对软件开发的进度和质 ...

  5. 2008R2域控环境中 应用组策略 实现禁用USB设备使用

    本文介绍如何在Windows Server 2008 AD中禁用客户端USB端口.本文使用的系统:Windows Server 2008 R2 企业版.域功能级别:Windows Server 200 ...

  6. (4)ElasticSearch在linux环境中搭建集群

    1.概述 一个运行中的Elasticsearch实例称为一个节点(node),而集群是由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力.当有节点加入集群中或者 ...

  7. (1)Zookeeper在linux环境中搭建集群

    1.简介 ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务.同步服务和命名注册.ZooKeeper的架构通过冗余服务实现高可用性.Zookeeper ...

  8. helm在kubernetes环境中搭建

    1.安装helm 1.1.安装helm客户端 各个版本的helm:https://github.com/helm/helm/releases wget https://get.helm.sh/helm ...

  9. linux环境中安装ftp服务

    需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...

随机推荐

  1. java中包的命令行(cmd)操作详解

    一.什么是包? 为了更好地组织类,防止在一个空间下出现类重名,Java提供了包机制.包是类的容器,用于分隔类名空间(类型于C++中的命名空间).如果没有指定包名,所有的示例都属于一个默认的无名包(又称 ...

  2. windows下node环境配置

    1.在node官网上下载合适版本的node安装包,官网地址:http://nodejs.org/#download:我下载的6.5最新版本: 2.安装node,都是系统默认的,一直安装下去: 3.在c ...

  3. Netty参数配置表

  4. 基于dubbo的分布式项目实例应用

    本文主要学习dubbo服务的启动检查.集群容错.服务均衡.线程模型.直连提供者.只定阅.只注册等知识点,希望通过实例演示进一步理解和掌握这些知识点. 启动检查 Dubbo缺省会在启动消费者时检查依赖的 ...

  5. C# 发送邮件中包含图片

    List<string> To = new List<string>(); To.Add("jake_ge@askey.com.tw"); List< ...

  6. Windows Commands and API

    Shortcuts ... Symbolic Links https://en.wikipedia.org/wiki/NTFS_symbolic_link Hard Links https://en. ...

  7. 双向链表、双向循环链表的JS实现

    关于链表简介.单链表.单向循环链表.JS中的使用以及扩充方法:  单链表.循环链表的JS实现 关于四种链表的完整封装: https://github.com/zhuwq585/Data-Structu ...

  8. test imetro

    haha hahah2 hahah3 hahah4 text int main() { cout << "helloworld" << endl; } pi ...

  9. Android 无标题 全屏设置

    标题栏和状态栏 Android程序默认情况下是包含状态栏和标题栏的. 在Eclipse中新建一个Android程序,运行后显示如下: 图中标出了状态栏(显示时间.电池电量.网络等)和标题栏(显示应用的 ...

  10. 图文解释XCode常用快捷键的使用

    刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等.都不一样了.快速的掌握这些快捷键,能提供开发的效率. 其实快捷键在Xcode的工具栏里都标注有,只是有的 ...