我有一个在两个远程位置运行的数据库。 (A 和 B) 服务器在一个位置 (A) 本地可用。但是,第二个位置 (B) 通过互联网访问数据库。
如果位置 A 的互联网出现故障,位置 B 就会失去与数据库的连接。
是否可以在位置 B 放置另一台服务器并进行连续复制并满足以下条件:- 如果位置 A 的互联网正常工作,则用户只能访问位置 A 的服务器。 用户可以访问位置 B 的可用服务器,直到位置 A 的互联网中断为止。一旦连接恢复,两个数据库都可以进行复制。如果存在任何不匹配/重复,那么位置 A 将被视为主位置,并且更改将被覆盖?
我想知道这样的解决方案是否可行以及此设置可能面临的问题?
最佳答案
MariaDB 10+ 提供具有多个主设置的 Galera Cluster。基本上所有服务器(在您的情况下为 3 台)都将成为主服务器,并且 1 台服务器的数据将传输到其他服务器。如果其中一台服务器出现故障,其他服务器将继续运行。一旦服务器恢复,它就会同步回丢失的数据。
这是数据库级别
对于连接级别,您需要一个“负载平衡器”类型的设备,它可以在运行的计算机之间分配负载或检测停机的计算机并引导到其他计算机。对于 mysql 类型的服务器来说很难找到它们。但是..如果这是你的问题是可行的
关于MySQL 多主复制多位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46130179/