mysql - 关于 MariaDB 的 JDBC 故障转移/高可用性的说明

标签 mysql jdbc mariadb database-replication high-availability

我使用两个 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/

相关文章:

mysql - OSX Docker/WordPress/MySQL -- 连接错误 : (1130) Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MariaDB server

mysql - 是否可以将 GROUP BY 语句嵌套在一起?

SQL 查询更新不起作用

mysql - 在mysql查询中将WHERE放在哪里

java - 通过 I.P. 连接到 Derby 地址失败

Mysql RAM 使用率高

使用来自另一个查询的关联的 PHP 查询

database - 使用 log4j 登录到数据库

使用 JDBC 的 Java MySQL 查询

mysql - 如何根据关联表确定计数?