什么是数据库集群? 如果允许在同一个数据库是2级不同的服务器怎么办,他们保持同步之间的数据。 这又如何从负载从数据库服务器的角度平衡有什么不同?
Answer 1:
数据库集群是一个有点含糊的字眼,有些厂商认为有两个或多个服务器共享相同的存储集群中,一些人称之为集群组复制的服务器。
复制定义由一组服务器的保持,而不必共享存储能够在地理上分散的,也有绕了两种主要方式同步的方法:
主 - 主(或多主)的复制:任何服务器可以更新数据库。 它通常是由数据库(或在某些情况下,他们上运行一个完全不同的软件)内的不同模块的照顾。
缺点是,它是很难做的很好,而有些系统失去复制此模式时,ACID属性。
好处是,它是灵活的,可以支持同时还具有更新的数据库中的任何服务器的故障。
主从复制:只有权威数据,其在推到从属服务器的单个拷贝。
缺点是,它是不太容错,如果主死了,也有奴隶没有进一步的变化。
好处是很容易做的比多主机,它通常保留ACID属性。
负载平衡是不同的概念,它由分布这样的负荷为均匀分布地发送到这些服务器的查询。 它通常是在应用层(或连接池)来完成。 复制和负载平衡之间的唯一直接关系的是,你需要一些复制到能够负载平衡,否则你就会有一个单一的服务器。
Answer 2:
但从SQL Server的观点:
群集会给你一个主动 - 被动配置。 在一个2节点的集群的含义,它们中的一个将是有源(服务),而另一个将是被动的(等待时在活动节点发生故障时接管)。 这是从硬件观点点的高可用性。
你可以有一个active-active集群,但这需要每个节点上运行SQL Server的多个实例。 (即,在节点A实例1故障转移到实例2在节点B上,和实例1在节点B上故障切换到实例2在节点A)。
负载均衡(从查看SQL Server的点至少)不存在(至少在Web服务器负载均衡的同样的意义)。 您不能平衡负载的方式。 但是,您可以分割你的应用程序在服务器1对几种数据库上运行,并在一些数据库服务器上2,运行等这是“负载平衡”的SQL世界的主要手段。
Answer 3:
群集使用某种(驱动笼或SAN,例如)的共享存储,并把上面有两个数据库前端。 前端服务器共享一个IP地址和群集网络名称是客户端用来连接,而他们自己之间决定谁是目前负责服务的客户端请求。
如果你问有关特定数据库服务器,添加到您的问题,我们可以就其执行添加细节,但其核心,这就是集群是什么。
Answer 4:
数据库集群实际上是添加到您的系统容错的附加功能两个或可能更多的节点之间同步复制的方式,而那也是在无共享架构。 与不共享这意味着各个节点实际上不共享任何物理资源如磁盘或存储。
至于保持同步的有关数据,有一个其中所有的数据节点与SQL节点沿着连接到实现这种(关于MySQL具体说话)管理服务器。
现在谈谈区别:负载均衡只是一个结果,可以通过集群来实现,其他功能包括高可用性,可扩展性和容错能力。