微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MariaDB Galera 集群已同步,但主服务器的 GTID 序列号大于其他节点的序列号

如何解决MariaDB Galera 集群已同步,但主服务器的 GTID 序列号大于其他节点的序列号

我有一个带有 3 个节点的 MariaDB galera 集群,在它们之上我有两个用于 H.A. 的冗余 MaxScale,Gelera 节点都已同步,并且都配置为存储 binlog。有趣的是,主节点的 GTID 与其他节点不同。由于需要 MaxSCale 升级或降级服务器,因此我认为主服务器不会对这个问题产生任何影响。

我将通过添加所有 3 个集群节点来设置一个从服务器来复制 galera 集群,以提高可靠性。我认为所有集群节点的 GTID 必须相同,否则从服务器遇到不一致的事件序列并停止复制。

我还检查了集群节点上的事件:

节点 00:

MariaDB [(none)]> show binlog events in 'ON.000062' from  399596\G
*************************** 1. row ***************************
   Log_name: ON.000062
        Pos: 399596
 Event_type: Gtid
  Server_id: 1
End_log_pos: 399638
       Info: BEGIN GTID 0-1-566034
*************************** 2. row ***************************
   Log_name: ON.000062
        Pos: 399638
 Event_type: Annotate_rows
  Server_id: 1
End_log_pos: 399838
       Info: INSERT INTO `ci_sessions` (`id`,`ip_address`,`timestamp`,`data`) VALUES ('lvf3d59vb4c0emleadk1cbsi1v0ji0ur','2.13.6.6',1621660131,'__ci_last_regenerate|i:1621660131;')
*************************** 3. row ***************************
   Log_name: ON.000062
        Pos: 399838
 Event_type: Table_map
  Server_id: 1
End_log_pos: 399911
       Info: table_id: 21 (prod_db.ci_sessions)
*************************** 4. row ***************************
   Log_name: ON.000062
        Pos: 399911
 Event_type: Write_rows_v1
  Server_id: 1
End_log_pos: 400032
       Info: table_id: 21 flags: STMT_END_F
*************************** 5. row ***************************
   Log_name: ON.000062
        Pos: 400032
 Event_type: Xid
  Server_id: 1
End_log_pos: 400063
       Info: COMMIT /* xid=732086 */
5 rows in set (0.000 sec)

MariaDB [(none)]>

节点 01:

MariaDB [(none)]> show binlog events in 'ON.000062' from 400100\G
*************************** 1. row ***************************
   Log_name: ON.000062
        Pos: 400100
 Event_type: Gtid
  Server_id: 1
End_log_pos: 400142
       Info: BEGIN GTID 0-1-566033
*************************** 2. row ***************************
   Log_name: ON.000062
        Pos: 400142
 Event_type: Annotate_rows
  Server_id: 1
End_log_pos: 400342
       Info: INSERT INTO `ci_sessions` (`id`,'__ci_last_regenerate|i:1621660131;')
*************************** 3. row ***************************
   Log_name: ON.000062
        Pos: 400342
 Event_type: Table_map
  Server_id: 1
End_log_pos: 400415
       Info: table_id: 235 (prod_db.ci_sessions)
*************************** 4. row ***************************
   Log_name: ON.000062
        Pos: 400415
 Event_type: Write_rows_v1
  Server_id: 1
End_log_pos: 400536
       Info: table_id: 235 flags: STMT_END_F
*************************** 5. row ***************************
   Log_name: ON.000062
        Pos: 400536
 Event_type: Xid
  Server_id: 1
End_log_pos: 400567
       Info: COMMIT /* xid=732086 */

您可以在两个 COMMIT 旁边找到 Xid=732086。正常吗?有什么办法可以修复它并防止它发生?

注意:节点 01 是主节点,节点 00,02 显示相同的 GTID

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。