MariaDB 10.1.2 : Galera 成员资格和状态的 INFORMATION_SCHEMA 表格

MariaDB Galera 服务器将所有集群相关信息(如节点状态、集群状态、成员资格等)记录在错误日志中。MariaDB 10.1.2 引入了一个新的 INFORMATION SCHEMA 插件 WSREP_INFO,可以通过 INFORMATION SCHEMA 表格查询这些信息。WSREP_INFO 插件为 Information Schema 添加了两个新表:WSREP_MEMBERSHIP 和 WSREP_STATUS。此插件默认未启用,因此要使用它,需要先安装。

MariaDB [test]> INSTALL SONAME ‘wsrep_status’;
Query OK, 0 rows affected (0.04 sec)

MariaDB [test]> SHOW PLUGINS;
+—————————–+———-+——————–+—————–+———+
| 名称 | 状态 | 类型 | 库 | 许可证 |
+—————————–+———-+——————–+—————–+———+
… …

MariaDB 10.1.1: Galera 支持

MariaDB 10.1 服务器的最新 10.1.1 版本已“就绪 Galera”。它包含了 wsrep(写入集复制)补丁,该补丁使服务器能够加载 wsrep 提供程序(galera)库,并与之交互以提供多主同步复制支持。该补丁在服务器和存储引擎内部实现了钩子,分别用于在集群中的发送方和接收方节点上填充和应用写入集。wsrep 补丁还添加了许多系统变量状态变量(前缀为 wsrep),这些变量可用于配置和监控作为 Galera 集群中节点的服务器。

Galera 中的自增

首先考虑这样一个场景:在多主集群的不同节点上,记录被插入到同一个自增表中。可能出现的一个问题是,在不同节点上生成的自增值发生“冲突”,这正是本文的主题。

由于集群是多主的,它允许在所有主节点上进行写入。这可能导致同一个表在不同节点的 INSERT 操作中获得相同的自增值。这个问题只有在写入集复制后才会被发现,这是个问题!

Galera 集群也存在类似的问题。

让我们尝试在一个 2 节点 Galera 集群上模拟这种情况

1) 在节点 #1 上

MariaDB [test]> …