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 ready”。它包含 wsrep(写入集复制)补丁,该补丁使服务器能够加载 wsrep 提供者 (galera) 库并与之交互,以提供多主同步复制支持。该补丁在服务器和存储引擎内部实现了钩子,分别在集群中的发送方和接收方节点上填充和应用写入集。wsrep 补丁还添加了许多 系统状态 变量(以 wsrep 为前缀),这些变量可用于配置和监控在 Galera 集群中充当节点的服务器。

Galera 中的自增

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

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

Galera 集群也存在类似问题。

让我们尝试在双节点 Galera 集群上模拟这种情况。

1) 在节点 #1 上

MariaDB [test]> …