作者档案: Nirbhay Choubey
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;
+—————————–+———-+——————–+—————–+———+
| 名称 | 状态 | 类型 | 库 | 许可证 |
+—————————–+———-+——————–+—————–+———+
… …
让我们从考虑这样一个场景开始:在多主集群的不同节点上向一个自增表中插入记录。可能出现的一个问题是,不同节点上生成的自增值会发生“冲突”,这正是本文的主题。
由于集群是多主模式,它允许在所有主节点上进行写入。因此,在 INSERT 操作时,一个表在不同节点上可能会获得相同的自增值。这个问题只有在写入集复制后才会发现,这是个问题!
Galera 集群也存在类似问题。
让我们尝试在双节点 Galera 集群上模拟这种情况。
1) 在节点 #1 上
MariaDB [test]> …