由二台或更多物理上独立的服务器共同组成的"虚拟"服务器称之为集群服务器 一项称做MicroSoft集群服务(MSCS)的微软服务可对集群服务器进行管理 一个SQL Server集群是由二台或更多运行SQL Server的服务器(节点)组成的虚拟服务器 如果集群中的一个节点发生故障 集群中的另一个节点就承担这个故障节点的责任
认为一个 SQL Server集群能够给集群中的两个节点带来负载平衡 这是一种常见的误解 虽然这似乎很有用 但却是不正确的 这也意味着集束SQL Server不能真正提高性能 集束SQL Server只能提供故障转移功能 故障转移就是当系统中的一台机器发生故障失去其功能时 另一台机器将接手运行它的SQL Server实例 这种功能失效可能是由于硬件故障 服务故障 人工故障或各种其它原因
为何要集束SQL Server环境
在实用性方面 集群SQL Server环境令人满意 在进行故障转移时 将数据库实例由一台服务器转移到另一台服务器的时间非常短暂 一般只需要 至 秒钟 虽然需要重建连接 但对数据库的终端用户而言 故障转移处理通常是透明的 低廉的故障转移成本还可帮助你对集群中的节点进行维护 而不会造成服务器完全无法访问
SQL Server集群类型
一共有两种类型的SQL Server集群 主动/被动集群和主动/主动集群 下面分别对它们进行说明(说明以两个节点的SQL Server集群为基础)
主动/被动集群
在这种类型的集群中 一次只有一个节点控制SQL Server资源 另一个节点一直处于备用模式 等待故障发生 进行故障转移时 备用的节点即取得SQL Server资源的控制权
优点 由于服务器上只有一个实例在运行 所以在进行故障转移时 不需要另外的服务器来接管两个SQL Server实例 性能也不会因此降低
缺点 由于虚拟服务器上只有一个SQL Server实例在运行 另一台服务器总是处理备用模式与空闲状态 这意味着你并没有充分利用你购买的硬件
主动/主动集群
在这种类型的集群中 集群中的每个节点运行一个独立且主动的SQL Server实例 发生节点故障时 另一个节点能够控制发生故障节点的SQL Server实例 然后这个正常的节点将运行两个SQL Server实例 它自己的实例和发生故障的实例
优点 通过这种配置 你能够充分利用你的硬件 在这样的系统中 两个服务器都在运行 而不是只有一台服务器运行 而另一台处于等待故障发生的备用模式 因此你能够充分利用你购买的机器
缺点 如果进行故障转移 一台服务器运行两个SQL Server实例 性能就会受到不利影响 然而 性能降低总比虚拟服务器完全失灵要强得多 这种配置的另一故障在于它要求购买的许可要比主动/被动集群多一些 因为集群在运行两个主动SQL Server实例 这要求你购买两个单独的服务器许可 在某些情况下 这也可能对你形成阻碍
集群考虑
在高实用性方面 集群SQL Server环境有一定的优势 然而 高实用性也确实伴随某种折衷
首先 建立一个集群SQL Server环境非常昂贵 这是因为集群中的节点必须遵照集群节点的兼容性列表 而且 还需要建立一个复杂的网络 机器的配置必须几乎相同 同时需要实现数据库文件磁盘子系统共享 存储区网络(SAN)是建立这种子系统的不错选择 但SAN并非必要 而且十分昂贵 另外 如果你正在运行一个主动/主动集群 你需要为集群中运行SQL Server实例的每台机器的处理器购买一个许可
lishixinzhi/Article/program/SQLServer/201311/22276问1:d2是老数据,因为还没来得及更新呢d1就宕掉了。。。
问2:做集群或热备都有一个集群IP或浮动IP的,或者说是对外访问IP。例如d1是1111,d2是1112,集群ip是111100。111100这个ip在做集群或热备过程中d1和d2都会被配置,web应用访问的是111100,不用关心d1、d2的真实ip。以你的场景,d1宕机后,d1心跳消失,自然会启动d2,w1找的111100就属于d2了。你可以直接买一台负载均衡交换机啊,何必要浪费1台服务器呢。
2 应该是每台都会有一个IP地址 外网 访问连接到的那个IP地址 是你的负载均衡交换机的IP地址 他随机把你的访问请求分配到你的3台服务器上
3 无主从关系,负载均衡交换机它会没2秒左右向你的服务器发送一个健康检查,如果发现你的服务器出现问题,它会自动屏蔽你这台服务器
4 你问的重复问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)