最近搭建了一套SQLServer2016 AlwaysOn AG。

(后记:经实际测试,使用SQLServer2012 也同样可以在Winserver2016上搭建基于工作组的AlwaysOn AG,其实基于工作组的AG仅仅只是WindowsServer2016的WSFC新功能。)

笔者是采用修改各节点的hosts文件,以及修改计算机名的dns后缀,来避免需要另外一台DNS服务器。

上面128,129,130三个IP属于AlwaysOn的三个节点服务器

IP100属于可用性组侦听器IP

IP150属于群集

途中遇到的问题点记录于此:

1.如果不是采用administrator这个内置管理员账号而采用其它的管理员帐户(每个节点都需要同样的管理员帐户),则在搭建群集前,需要使用Powershell添加如下注册表项:

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

否则,在创建群集添加服务器时会报错。

----------------------------------------------------------------------------------------

2.在执行

ALTER DATABASE [SQL2016] SET HADR AVAILABILITY GROUP = [AG2016]

时出错,sp_readerrorlog可以找到如下错误:

Database Mirroring login attempt by user 'NT AUTHORITY\ANONYMOUS LOGON.' failed with error: 'Connection handshake failed. The login 'NT AUTHORITY\ANONYMOUS LOGON' does not have CONNECT permission on the endpoint. State 84.'.  [CLIENT: 192.168.206.128]

解决方法:

这其实以前在玩镜像时也遇到过,一种解决方法是修改SQL Server实例的属性,将登录身份改为同样的本地管理员帐户,并将该用户添加到SQLServer的登录名中,同时需要给sysadmin授权。修改之后,重启SQL Server实例。(各节点都需要操作一遍)

另一种方法是按照上面报错信息,将NT AUTHORITY\ANONYMOUS LOGON添加到SQLServer的登录名中,同时需要给sysadmin授权。修改之后,重启SQL Server实例。(各节点都需要操作一遍)

----------------------------------------------------------------------------------------

3.添加侦听器时遇到如下错误:

消息 41066,级别 16,状态 0,第 3 行
无法使 Windows Server 故障转移群集(WSFC)资源(ID“32b92e1c-37e2-4ae1-a045-d691c45011a7”)联机(错误代码 5942)。WSFC 服务可能未在运行、可能在其当前状态下无法访问,或是 WSFC 资源未处于可接受请求的状态。有关此错误代码的信息,请参阅 Windows 开发文档中的“系统错误代码”。
消息 19476,级别 16,状态 4,第 3 行
尝试为侦听器创建网络名称和 IP 地址失败。WSFC 服务可能未在运行或在其当前状态下无法访问,或者为网络名称和 IP 地址提供的值可能不正确。请检查 WSFC 群集的状态并且由网络管理员来验证该网络名称和 IP 地址。

解决方法:

这是因为未将侦听器IP的DNS记录添加到hosts文件中导致,添加即可。

----------------------------------------------------------------------------------------

4.只读路由的负载均衡不起作用

因为我仍然按照以前SQLServer2012时期的脚本来搭的AlwaysOn只读路由

创建SQLServer2016的负载均衡只读路由的脚本应该如下:

ALTER AVAILABILITY GROUP ag MODIFY REPLICA ON N’WIN02′ WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=((‘WIN01’, ‘WIN03’), ‘WIN02’)));

跟以前的变更之处上上边(‘WIN01’, ‘WIN03’)的脚本处。

使用脚本查询路由可以得到这样的结果(WIN01和WIN03节点都是第一路由优先级):

select
b.replica_server_name
,a.routing_priority
,c.replica_server_name
from
sys.availability_read_only_routing_lists a
left join
sys.dm_hadr_availability_replica_cluster_states b
on a.replica_id = b.replica_id
left join sys.dm_hadr_availability_replica_cluster_states c
on a.read_only_replica_id = c.replica_id
order by a.replica_id

使用SQLCMD测试时,几乎是以1:1的比例来分配的负载。而使用SSMS时则不是这样,会出现连续N次都是WIN01,之后连续N次都是WIN03。

----------------------------------------------------------------------------------------

最后,使用最新的SSMS管理工具,可以直接从图形化界面进行操作创建AlwaysOn可用性组(稍老的版本好像会缺少部分脚本)。

本文链接地址:http://www.cnblogs.com/ajiangg/p/6424900.html

参考链接:

https://blogs.msdn.microsoft.com/clustering/2015/08/17/workgroup-and-multi-domain-clusters-in-windows-server-2016/

https://blogs.msdn.microsoft.com/alwaysonpro/2016/05/02/sql-server-2016-alwayson-availability-group-enhancements-load-balance-read-only-routing/

http://www.cnblogs.com/ajiangg/p/3636019.html

http://www.cnblogs.com/ajiangg/p/3668936.html

http://www.cnblogs.com/ajiangg/p/3636082.html

SQLServer2016 AlwaysOn AG基于工作组的搭建笔记的更多相关文章

  1. 21.TFS文件系统搭建笔记

    TFS文件系统搭建笔记 参考地址: https://github.com/alibaba/tfs/blob/master/INSTALL.md https://github.com/alibaba/t ...

  2. 一次失败的生产系统中AlwaysOn AG切换经历

    14:25分左右,某数据库主副本服务器崩溃报错,在数据库无法接收SQL语句进行调整的情况下重启了主副本服务器. 由于服务器重启时间会比较长,为了保证主副本服务器重启期间数据库能正常进行写入,强制将主库 ...

  3. 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记

    近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...

  4. 【PHP】基于ThinkPHP框架搭建OAuth2.0服务

    [PHP]基于ThinkPHP框架搭建OAuth2.0服务 http://leyteris.iteye.com/blog/1483403

  5. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  6. 基于Android Studio搭建hello world工程

    基于Android Studio搭建hello world工程 版本:ANDROID STUDIO V0.4.6 This download includes: ·        Android St ...

  7. VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群

    VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群 下一篇:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 近期 ...

  8. CentOS6.8下MySQL MHA架构搭建笔记

    转载请注明出处,本文地址:http://www.cnblogs.com/ajiangg/p/6552855.html 以下是CentOS6.8下MySQL MHA架构搭建笔记 IP资源规划: 192. ...

  9. 基于Gogs+Drone搭建的私有CI/CD平台

    请移步 基于Gogs+Drone搭建的私有CI/CD平台

随机推荐

  1. 详解CSS的Flex布局

    本文由云+社区发表 Flex是Flexible Box 的缩写,意为"弹性布局",是CSS3的一种布局模式.通过Flex布局,可以很优雅地解决很多CSS布局的问题.下面会分别介绍容 ...

  2. JavaScript之深拷贝和浅拷贝

    前言 工作中会经常遇到操作数组.对象的情况,你肯定会将原数组.对象进行‘备份’当真正对其操作时发现备份的也发生改变,此时你一脸懵逼,到时是为啥,不是已经备份了么,怎么备份的数组.对象也会发生变化.如果 ...

  3. C 程序与 C++ 程序之间的相互调用

    因为 C 编译器编译函数时不带参数的类型信息,只包含函数的符号名字.如 void foo( int x ) , C 编译器会将此函数编译成类似 _foo 的符号,C 链接器只要找到了调用函数的符号,就 ...

  4. 机器学习笔记(5) KNN算法

    这篇其实应该作为机器学习的第一篇笔记的,但是在刚开始学习的时候,我还没有用博客记录笔记的打算.所以也就想到哪写到哪了. 你在网上搜索机器学习系列文章的话,大部分都是以KNN(k nearest nei ...

  5. JS-面向对象编程-对象方法添加属性

    A-对象扩展属性及方法: obj.属性名=属性值 obj[属性名]=属性值 方式一: var obj={}; obj.Name="liming"; obj.Age="27 ...

  6. 第一册:lesson sixty seven。

    原文: The weekend. A:Hello , were you an tht butcher's? B:Yes I was. A:Were you at the butcher's too? ...

  7. Laravel日志

    大家在使用 Log::info() 会让日志全部记录默认在 storage/logs/laravel.log 文件里,文件大了查找起来就比较麻烦.那么我可不可以单独记录在一个日志文件里呢? 只需在你的 ...

  8. C-fopen,fwrite,fread,fseek,fgets,popen,access笔记

    FILE * fopen(const char * path,const char * mode); 所需库: <stdio.h> 返回值 FILE是C语言定义的标准数据结构,如果open ...

  9. Reinforcement Learning: An Introduction读书笔记(1)--Introduction

      > 目  录 <   learning & intelligence 的基本思想 RL的定义.特点.四要素 与其他learning methods.evolutionary m ...

  10. Java中的强引用和弱引用

    旭日Follow_24 的CSDN 博客 ,全文地址请点击: https://blog.csdn.net/xuri24/article/details/81114944 一.强引用 如下是强引用的经典 ...