我有一个 DBA 的问题:如果我从单个 Web/DB 服务器设置扩展到两个 Web/两个 DB 服务器设置,并且在 Web 服务器前面有一个负载平衡器以均匀地路由传入的查询......如何解决像 MySQL 集群一样工作,以便对一个数据库服务器所做的更改立即被另一个知道(否则,路由到另一个数据库服务器的用户将看不到数据或将过时的数据),或者至少让另一个 Web 服务器是否意识到它正在读取“脏数据”并且应该在 X 秒内再次尝试以获取最新数据?
谢谢你。
我有一个 DBA 的问题:如果我从单个 Web/DB 服务器设置扩展到两个 Web/两个 DB 服务器设置,并且在 Web 服务器前面有一个负载平衡器以均匀地路由传入的查询......如何解决像 MySQL 集群一样工作,以便对一个数据库服务器所做的更改立即被另一个知道(否则,路由到另一个数据库服务器的用户将看不到数据或将过时的数据),或者至少让另一个 Web 服务器是否意识到它正在读取“脏数据”并且应该在 X 秒内再次尝试以获取最新数据?
谢谢你。
这样做的两种方法。主动/主动或主动/被动。主动/被动是最普遍的数据在被动节点上保持同步。集群是有用的配置,因为主动节点关闭,被动节点立即切换,因此没有停机时间。集群不断地同步集群中的 2 个节点。
我使用 SQL Server,但我认为集群的基本前提对于 mySQL 是相同的——即硬件故障时没有(或没有明显的)停机时间。
编辑:此外,集群软件处理同步。你不必担心。您将集群节点视为一个虚拟目录,其行为类似于 Windows 中的一台服务器。
这是解释这个的文件
http://www.sql-server-performance.com/articles/clustering/clustering_intro_p1.aspx
在 Windows 服务器集群(区别于高性能集群)中,有一个共享的外部存储阵列。主动节点获得存储的所有权/控制权,当该节点发生故障时,存储“故障转移”到先前的被动节点(现在是主动节点)。还有不同的方案允许在每个节点上独立存储,而不是共享存储。但是,这些要求应用程序有足够的智能来知道它是集群的,并保持两个存储集同步。
集群也是许多节点处理工作负载的地方,这有时被称为主动/主动集群,即所有节点共享工作负载并处于活动状态。这通常由 Oracle RAC ( RAC@Wikipedia ) 等 Oracle RDBMS 数据库的专业软件处理。RAC 允许 Oracle 扩展到非常大的工作负载。