SQL Server Alwayson配置两个节点加共享文件夹仲裁见证

标签:MSSQL/节点和共享文件夹多数

概述

之前讲过多数节点的仲裁配置,多数节点一般3个节点以上的奇数个节点;常见的是使用3个节点节点多了也是浪费因为Alwayson的只读路由只能利用到一个只读副本,但是从Windows2008开始可以用共享文件夹来代替一个节点来充当仲裁;这就又可以节省一台服务器了只需要两台数据库服务器加任意一台电脑的共享文件夹,但是一般会选择在域服务器上创建共享文件夹,可以使用alwayson的共享网络位置。

数据库:SQLServer2014 SP2

OS:Windows Server 2008R2

一、配置仲裁

可以在创建故障转移集群的时候配置,也可以创建完集群后右键集群来修改仲裁配置

这里的共享文件夹路径使用域服务器已经创建好的共享网络路径

注意:这个路径的权限必须everyone角色具有读写权限,否则集群会出现以下错误提示

二、读写分离

当使用两个节点后,读写分离的配置和三个节点会稍微有点区别,假设我现在只有DB01,DB02两个节点

1.Alwayson属性配置

注意:主角色中的连接这里和三个节点不一样,三个节点这里可以选择“仅允许读/写连接”,这里是能选择“允许所有连接”,否则其中一个节点无法访问后只读路由访问会失败(返回错误982)。

2.语句配置

---建立read指针 - 在当前的primary上为每个副本建立副本对于的tcp连接
ALTER AVAILABILITY GROUP [Alwayson22]
MODIFY REPLICA ON
N‘db01‘ WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N‘TCP://db01.ag.com:1433‘))

ALTER AVAILABILITY GROUP [Alwayson22]
MODIFY REPLICA ON
N‘db02‘ WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N‘TCP://db02.ag.com:1433‘))

----为每个可能的primary role配置对应的只读路由副本
--list列表有优先级关系,排在前面的具有更高的优先级,当db02正常时只读路由只能到db02,如果db02故障了只读路由才能路由到DB01
ALTER AVAILABILITY GROUP [Alwayson22]
MODIFY REPLICA ON
N‘db01‘ WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(‘db02‘,‘db01‘)));

ALTER AVAILABILITY GROUP [Alwayson22]
MODIFY REPLICA ON
N‘db02‘ WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(‘db01‘,‘db02‘)));
--查询优先级关系
SELECT  ar.replica_server_name ,
        rl.routing_priority ,
        ( SELECT    ar2.replica_server_name
          FROM      sys.availability_read_only_routing_lists rl2
                    JOIN sys.availability_replicas AS ar2 ON rl2.read_only_replica_id = ar2.replica_id
          WHERE     rl.replica_id = rl2.replica_id
                    AND rl.routing_priority = rl2.routing_priority
                    AND rl.read_only_replica_id = rl2.read_only_replica_id
        ) AS ‘read_only_replica_server_name‘
FROM    sys.availability_read_only_routing_lists rl
        JOIN sys.availability_replicas AS ar ON rl.replica_id = ar.replica_id

会发现配置只读路由列表这里和之前的三个节点有区别,我用绿色标识了出来;之前三个节点的时候这里用的是DB03。

三个节点:当DB01节点无法访问时,DB02节点变成主节点充当读写副本,DB03节点充当只读副本。

两个节点:当DB01节点无法访问时,DB02节点变成主节点即充当读写副本同时也充当只读副本。

当停止DB01的服务后仲裁会自动切换到DB02上来,且读写和只读连接都会连接到DB02上。这里就不做演示从下图也可以看到单节点DB02在线。

总结

对比三个节点,使用两个节点可以减少一台服务器节省不少人力成本。毕竟故障的情况并不是很多。但是也不得不说一下这种方案的弊端,那就是当一个节点故障后另一个节点要同时承担读写和只读的两倍的负担,使用该方案之前就必须得评估一个节点能否支持得起这种负载压力!!!

搭建和加入域参考:http://www.cnblogs.com/chenmh/p/4444168.html

搭建故障转移群集参考:http://www.cnblogs.com/chenmh/p/4479304.html

Alwayson搭建参考:http://www.cnblogs.com/chenmh/p/4484176.html

Alwayson读写分离参考:http://www.cnblogs.com/chenmh/p/7000236.html


备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

时间: 2024-10-14 05:26:41

SQL Server Alwayson配置两个节点加共享文件夹仲裁见证的相关文章

从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 网上的 AlwaysOn可以说是非常的多,也可以说是非常的千篇一律,而且很多都是搭建非常顺利的,没有坑的,难道搭建 AlwaysOn真的可以这麽顺利吗?????? 由于公司使用的是最新的Windows Server 2012 R2,网上用的都是Windows Server 2008 R2 ,2012 R2和2008 R2在故障转移集群界面菜单和AD 服务管理工具 已经有较大变化,有一些步骤跟Windows Server 20

从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html 第二篇http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁配置 下面图片来自<Wind

(转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 步骤 这一篇依然使用step by step的方式介绍怎麽搭建AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的操作,先不要用域用户DCADMIN登录 1.两个集群节点都需先安装.NET Framework

(转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁配置 下面图片来自<Windows Server2012系统配置指南> 四种集群的仲裁配置: 1.多数节点:这种配置不会用到仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供

管理SQL Server AlwaysOn(1)——基础维护

本文属于管理SQL Server AlwaysOn系列文章 前言: 前面系列已经介绍了SQL Server AlwaysOn的知识点.安装演示及注意事项等.但是这并不是终点,更多的反而是起点.就像不能生了孩子就不管,你还得养(管理).作为DBA,更多的工作内容恰恰就是管理AlwaysOn.所以这里单独列出一个系列介绍SQL Server AlwaysOn的管理.本系列沿用从0开始部署基础的AlwaysOn 的环境. 在这个系列中,准备讲述以下内容: 管理SQL Server AlwaysOn(1

SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?

本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Server AlwaysON从入门到进阶(1)--何为AlwaysON? SQL Server AlwaysON从入门到进阶(2)--存储 SQL Server AlwaysON从入门到进阶(3)--基础架构 SQL Server AlwaysON从入门到进阶(4)--分析和部署Windows Ser

SQL Server AlwaysON从入门到进阶(2)——存储

本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本节讲解关于SQL Server 存储方面的内容,相对于其他小节而言这节比较短.本节会提供一些关于使用群集或者非群集系统过程中对存储的利用建议.当然,重点还是集中在对于一个标准的AlwaysOn可用组配置过程中,对存储的选择和配置上面. AlwaysOn的部署首先建立在一个Windows Server Failover Cluster(WSFC)上.并且每个服务器通常有一个独立的SQL Server实例.另外,每个服务器

管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控

本文属于管理SQL Server AlwaysOn 系列文章 前言: 前面几节提到了如何对AlwaysOn做常规管理,这一节和接下来的一节专门对"监控"进行解释和演示.管理和监控这两个词在很多时候是混淆的,但是我们大概也可以区分出来,比如我做备份,算管理,对错误.异常进行响应这也是管理,但是对错误.异常的捕获和通知DBA这就是监控了,而且监控有时候是不需要进行干预的,比如我监控磁盘空间,当空间充足的时候,我可以不管. 在日常的DBA工作中,我本人对监控的重视程度远大于所谓的管理,因为有

翻译:到AlwaysOn级别1的楼梯:什么是“SQL Server AlwaysOn”?

到AlwaysOn级别1的楼梯:什么是"SQL Server AlwaysOn"?佩里·惠特尔,2016/02/24(首次出版:2014 /09/24)该系列这篇文章是楼梯系列的一部分:通往AlwaysOn的楼梯AlwaysOn是一套复杂的技术,经常被误解.在这个阶梯中,您将了解AlwaysOn技术,它们如何适应高可用性堆栈,以及如何充分利用它们.欢迎来到"SQL Server AlwaysOn"系列的第一个级别.在这一级别的文章中,我们将发现技术"Alw