我使用两个 MariaDB 10.2 数据库设置了一个小型集群,一个是(主动)主数据库,另一个是备用数据库(被动主数据库)。我启用了 GTID 和半同步复制。假设MDB1为主,MDB2为备,则MDB2复制MDB1 binlog,MDB1复制MDB2 binlog。当然为了避免冲突,我只在MDB1上写。
我担心的是 JDBC 参数:我无法真正理解故障转移、复制 和序列 之间的区别。
jdbc:mariadb:replication://localhost:3306,localhost:3307/mydb
像上面那样使用复制,它似乎总是在 MDB1 (:3306) 上写入并从 MDB1 和 MDB2 读取,对吗?
在我想始终从 MDB1 写入和读取的情况下,除非它变得不可用,这是正确的设置吗?
当 MDB1 再次可用时,如何避免不一致?这是通过使用 GTID 来保证的吗?
我遵循了这些指南:
最佳答案
你应该使用的是sequential
根据文档,
''' 如果故障转移和负载平衡模式设置为复制,则连接器假定第一台主机是主主机,其他主机默认是从机,如果它们的类型没有明确提及的话。 '''
关于mysql - 关于 MariaDB 的 JDBC 故障转移/高可用性的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47311571/