一、群集
1. MSFC
在SQL Server中谈到群集,首先就会存在一个误区。实际上,SQL Server群集应当理解为“在MSFC中运行的SQL Server Service”,它依赖于MSFC。
在Windows Server 2003时,Windows的群集被称为Microsoft Cluster Service(MSCS)。从Windows Server 2008 开始被称为 Microsoft Failover Cluster(MSFC)。
2. 节点
SQL Server群集实际上是将SQL Server实例作为一个服务安装在MSFC的每一个节点。MSFC最多允许16个节点。也就是说,可以将一个SQL Server实例安装到最多16个节点上。
但同一时间只能在其中一个节点(主节点)运行这个SQL Server实例(服务)。即使你想在辅助节点上强行启动对应的SQL Server实例,MSFC也会加以阻止。
3. Fail-over
关于群集的第二个误区,是群集与负载平衡的区别。故障转移群集是用于获得高可用性的,而非用于实现负载平衡。
MSFC会一直监听SQL Server实例(服务),当主节点上的SQL Server实例失败(Fail)了,MSFC会通知下一个节点立即运行SQL Server实例,并且MSFC将连接到旧节点上的全部请求转移到新的节点,从而保证客户端业务的连续性。这就是Fail-over(故障转移),也就是说,只有在发生故障时才会转移,而不是负载平衡(Load Balance)。
4. 仲裁
MSFC中存在一个非常重要的因素,那就是节点配置方式(仲裁)。可以理解为,仲裁需要使用投票机制,得票超过半数的节点才能成为主节点。
Windows Server 2003时较常用的是2个节点加1个仲裁磁盘。
二、侦听器
侦听器在MSFC中被称为虚拟网络名称(Virtual Network Name)。

- MSFC的侦听器
MSFC自身就有一个侦听器,客户端可以直接访问这个侦听器。对这个侦听器的访问被MSFC重定向到主节点。

例如,使用远程桌面直接连接到侦听器。进入远程桌面后,再查看这台计算机的属性,可以发现其实就是主节点这台计算机。

2. SQL Server Cluster的侦听器
要访问SQL Server群集,必须访问SQL Server Cluster的侦听器。

如果直接访问主节点的名称,则报错,因为SQL Server群集实例并没有绑定到主节点名称,而是只绑定到MSFC中的SQl Server群集侦听器。

3. AlwaysOn可用性组的侦听器
要访问AlwaysOn可用性组,可以使用以下两种方式:
(1)访问AlwaysOn可用性组的侦听器
连接到侦听器后,客户端可以实现read/write。而且由于后端的节点是自动Fail-over,所以客户端不用关心后端发生的节点切换。

(2)直接访问指定的节点
如果可以连接到指定的节点,客户端可以实现read-only(前提条件是该节点启用了read-only选项。但是客户端在write时可能会报错,因为这个节点不一定就是主节点。当这个节点Fail后,客户端的连接被断开。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/18939.html