如何查看MySQL是否运行在GTID模式下?

问题描述 投票:0回答:3

在 MySQL-5.7 中,我们有 GTID 和传统方法来设置 MySQL 复制。

我们还有一个新参数:

gtid_mode = ON_PERMISSIVE

这意味着我们可以启用 GTID,但也能够以传统方式运行复制。

现在我们已经启用了 MySQL 复制,但是我们如何检查 mysql 复制是否在 GTID 或传统上工作?

谢谢

mysql database replication mysql-5.7 gtid
3个回答
2
投票

如果:

show global variables like 'gtid_executed';
-- OR respectively:
select @@gtid_executed; -- @@ returns Globally set variables, single @ returns session set variables

返回一个值,您正在使用GTID

如果没有,则您正在使用“传统”复制


0
投票

检查 GTID 是否在两个节点上进行复制

SHOW VARIABLES LIKE 'gtid_mode';

检查从属设备中存在的主设备 GTID:

show global variables like 'gtid_executed'; <!---Should be same as master--->

您可以通过运行以下命令来检查复制工作

SHOW REPLICA STATUS\G;

在输出检查中

Replica_IO_Running: Yes
Replica_SQL_Running: Yes
Executed_Gtid_Set: <!--- ID present in slave is also present in master --->

参考实现Mysql多源主从复制:https://www.svastikkka.com/2024/03/mysql-multi-source-master-slave.html


-1
投票

来自 MySQL 文档

gtid_mode=OFF_PERMISSIVE
时,新事务是匿名的,同时允许复制事务是GTID或匿名事务。当
gtid_mode=ON_PERMISSIVE
时,新事务使用 GTID,同时允许复制事务为 GTID 或匿名事务

这意味着

gtid_mode = ON PERMISSIVE
允许使用匿名复制(传统方式)进行交易,尽管新交易是使用GTID进行的,这就是为什么新版本允许使用GTID或匿名复制进行拓扑。

这将帮助您满足您的要求:

显示单个 GTID 的字段(例如replication_applier_status_by_worker Performance Schema 表中的 CURRENT_TRANSACTION)现在在未使用 GTID 事务时显示 ANONYMOUS。

问候

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.