Mal*_*har 142 database load-balancing cluster-computing database-agnostic
什么是数据库集群?如果允许同一数据库位于2个不同的服务器上,它们如何使数据保持同步.这与数据库服务器角度的负载均衡有何不同?
Vin*_*vic 124
数据库集群有点模棱两可,一些供应商认为具有两个或更多服务器的集群共享相同的存储,而另一些供应商则将集群称为一组复制服务器.
复制定义了一组服务器保持同步的方法,而不必共享可以在地理上分散的存储,有两种主要方式:
master-master(或多master)复制:任何服务器都可以更新数据库.它通常由数据库中的不同模块(或在某些情况下运行在它们之上的完整不同软件)来处理.
缺点是很难做好,有些系统在这种复制模式下会丢失ACID属性.
好处是它很灵活,您可以在更新数据库的同时支持任何服务器的故障.
主从复制:只有一个权威数据副本,即推送到从属服务器.
缺点是它的容错性较差,如果主机死亡,则从站没有进一步的变化.
好处是它比多主机更容易做,它通常保留ACID属性.
负载平衡是一个不同的概念,它包括分发发送到这些服务器的查询,以便尽可能均匀地分配负载.它通常在应用程序层(或使用连接池)完成.复制和负载平衡之间唯一的直接关系是,您需要一些复制才能进行负载平衡,否则您将拥有一台服务器.
Jim*_*dra 15
从SQL Server的角度来看:
群集将为您提供主动 - 被动配置.在2节点集群中的含义,其中一个将是活动(服务),另一个将是被动的(等待主动节点发生故障时接管).从硬件角度来看,这是一种高可用性.
您可以拥有一个主动 - 主动群集,但它需要在每个节点上运行多个SQL Server实例.(即节点A上的实例1故障转移到节点B上的实例2,节点B上的实例1故障转移到节点A上的实例2).
负载平衡(至少从SQL Server的角度来看)不存在(至少在Web服务器负载平衡的意义上).你无法平衡负载.但是,您可以将应用程序拆分为在服务器1上的某个数据库上运行,也可以在服务器2上的某个数据库上运行,等等.这是SQL世界中"负载平衡"的主要方法.
群集使用某种类型的共享存储(例如,驱动器笼或SAN),并在其上放置两个数据库前端.前端服务器共享客户端用于连接的IP地址和群集网络名称,并且他们自己决定当前负责服务客户端请求的人员.
如果您询问某个特定的数据库服务器,请将其添加到您的问题中,我们可以添加有关其实现的详细信息,但在其核心,这就是群集.
小智 5
数据库集群实际上是在两个或更多节点之间进行同步复制的一种模式,它向系统中添加了附加的容错功能,并且在无共享体系结构中也是如此。“不共享”表示各个节点实际上不共享任何物理资源,例如磁盘或内存。
就保持数据同步而言,有一台管理服务器,所有数据节点与SQL节点都连接到该服务器以实现此目的(特别是关于MySQL)。
现在讨论差异:负载均衡只是通过群集可以实现的结果之一,其他包括高可用性,可伸缩性和容错能力。
| 归档时间: |
|
| 查看次数: |
146741 次 |
| 最近记录: |