首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库集群和负载均衡

数据库集群和负载均衡
EN

Stack Overflow用户
提问于 2009-07-22 05:32:00
回答 4查看 158.2K关注 0票数 160

什么是数据库集群?如果您允许相同的数据库在两个不同的服务器上,它们如何保持数据同步。从数据库服务器的角度来看,这与负载平衡有什么不同?

EN

回答 4

Stack Overflow用户

发布于 2009-07-22 05:44:11

数据库集群是一个有点模棱两可的术语,一些供应商认为一个集群有两个或更多的服务器共享相同的存储,另一些供应商将一个集群称为一组复制的服务器。

复制定义了一组服务器保持同步的方法,而不必共享能够在地理上分散的存储。复制主要有两种方法:

  • 主-主(或多主)复制:任何服务器都可以更新数据库。它通常由数据库中的不同模块(或者在某些情况下在它们之上运行的完全不同的软件)来管理。

缺点是很难做好,一些系统在这种复制模式下会失去ACID属性。

优点是它很灵活,您可以在仍然具有数据库updated.

  • master-slave复制的情况下支持任何服务器的故障:只有一份权威数据的副本,该副本被推送到从服务器。

缺点是它的容错性较差,如果主机死了,从机中就不会有进一步的更改。

优点是,它比多主机更容易做到,而且它通常会保留ACID属性。

负载平衡是一个不同的概念,它包括分发发送到这些服务器的查询,以便负载尽可能均匀地分布。它通常是在应用层(或使用连接池)完成的。复制和负载平衡之间唯一的直接关系是,您需要一些复制才能实现负载平衡,否则您将只有一台服务器。

票数 137
EN

Stack Overflow用户

发布于 2009-07-22 05:42:57

从SQL Server的角度来看:

集群将为您提供主动-被动配置。这意味着在2节点群集中,其中一个节点将是主动节点(服务),另一个节点将是被动节点(当主动节点发生故障时等待接管)。从硬件的角度来看,这是一种高可用性。

您可以使用主动-主动群集,但它需要在每个节点上运行多个SQL Server实例。(即,节点A上的实例1故障转移到节点B上的实例2,节点B上的实例1故障转移到节点A上的实例2)。

负载平衡(至少从SQL Server的角度来看)不存在(至少在web服务器负载平衡的相同意义上)。你不能以这种方式平衡负载。但是,您可以将应用程序拆分为在服务器1上某个数据库上运行,也可以在服务器2上的某个数据库上运行,等等。这是SQL世界中“负载平衡”的主要手段。

票数 19
EN

Stack Overflow用户

发布于 2009-07-22 05:54:43

集群使用某种类型的共享存储(例如,驱动器架或SAN ),并在其上放置两个数据库前端。前端服务器共享客户端用于连接的IP地址和群集网络名称,并且它们自己决定当前由谁负责为客户端请求提供服务。

如果您询问的是特定的数据库服务器,请将其添加到您的问题中,我们可以添加有关其实现的详细信息,但在其核心,这就是集群。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1163216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档