SQLServer2016 AlwaysOn基于证书的搭建笔记

SQLServer2016 AlwaysOn基于证书的搭建笔记,第1张

概述最近搭建了一套SQLServer2016 AlwaysOn。 笔者是采用修改各节点的hosts文件,以及修改计算机名的dns后缀,来避免需要另外一台DNS服务器。   上面128,129,130三个IP属于AlwaysOn的三个节点服务器 IP100属于可用性组侦听器IP IP150属于群集 途中遇到的问题点记录于此: 1.如果不是采用administrator这个内置管理员账号而采用其它的管理员

最近搭建了一套sqlServer2016 AlwaysOn。

笔者是采用修改各节点的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添加到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 fromsys.availability_read_only_routing_Lists aleft joinsys.dm_hadr_availability_replica_cluster_states bon a.replica_ID = b.replica_ID left join sys.dm_hadr_availability_replica_cluster_states  con 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

@H_419_122@ 总结

以上是内存溢出为你收集整理的SQLServer2016 AlwaysOn基于证书的搭建笔记全部内容,希望文章能够帮你解决SQLServer2016 AlwaysOn基于证书的搭建笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1173144.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存