当前位置:网站首页>技术分享 | 需要小心配置的 gtid_mode
技术分享 | 需要小心配置的 gtid_mode
2022-07-26 13:42:00 【爱可生开源社区】
作者:王雅蓉
DBA,负责 MySQL 日常问题处理和 DMP 产品维护。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
背景信息:
本文章与一次日常运维过程中发现的问题有关。问题如下:
客户给接管数据库进行备份,发生报错:
错误: manual backup error: rpc error: code = Unknown desc = task(manual_backup_manual_mysql-2db0mi_2022_07_09_22_30_33_mysql-2db0mi_2022_07_09_22_30_33) is failed,
reason is parse last gtid from file(/dmp/mysql/backup/3306/backup-616678719/tmp/backup.log) failed\n\n回滚日志:\n\t分析:
因为报错是原因是从文件中解析最后一个 gtid 失败,所以先检查 gtid 参数
数据库中的 gtid 参数:gtid_mode=OFF_PERMISSIVE(接管后数据库重启过)
检查配置文件中gtid_mode相关信息为
通过官网查询相关资料,得知gtid_mode有4个值:OFF;OFF_PERMISSIVE;ON_PERMISSIVE;ON
在此配置下,平台无法开启从库高可用配置,从库复制会报错:
Slave_IO_Running: No
Slave_SQL_Running: Yes
......
Last_IO_Errno: 1593
Last_IO_Error: The replication receiver thread cannot start in AUTO_POSITION mode: the master has GTID_MODE = OFF_PERMISSIVE instead of ON.
Last_SQL_Errno: 0
Last_SQL_Error:而且此时的数据库无法进行备份
本地测试:
1)将数据库配置文件的gtid_mode修改为=1,并重启数据库
2)重启后登录数据库中查看gtid_mode参数值,发现重启后的gtid_mode=OFF_PERMISSIVE
3)将数据库配置文件的gtid_mode修改为=ON,并重启数据库
4)重启后登录数据库中查看gtid_mode参数值,发现重启后的gtid_mode=ON
可得出:gtid_mode = 1效果不等于gtid_mode = ON,而是等于gtid_mode = OFF_PERMISSIVE
因为gtid_mode参数的类型为Enumeration,所以变量具有多个值的别名
gtid_mode变量 | 配置文件可写值 |
|---|---|
OFF | 0 |
OFF_PERMISSIVE | 1 |
ON_PERMISSIVE | 2 |
ON | 3 |
mysql> show variables like "gtid_mode";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| gtid_mode | OFF |
+---------------+-------+
1 row in set (0.01 sec)
mysql> set global gtid_mode=0;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "gtid_mode";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| gtid_mode | OFF |
+---------------+-------+
1 row in set (0.00 sec)
mysql> set global gtid_mode=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like "gtid_mode";
+---------------+----------------+
| Variable_name | Value |
+---------------+----------------+
| gtid_mode | OFF_PERMISSIVE |
+---------------+----------------+
1 row in set (0.01 sec)
mysql> set global gtid_mode=2;
Query OK, 0 rows affected (0.01 sec)
mysql> show variables like "gtid_mode";
+---------------+---------------+
| Variable_name | Value |
+---------------+---------------+
| gtid_mode | ON_PERMISSIVE |
+---------------+---------------+
1 row in set (0.00 sec)
mysql> set global gtid_mode=3;
Query OK, 0 rows affected (0.01 sec)
mysql> show variables like "gtid_mode";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| gtid_mode | ON |
+---------------+-------+
1 row in set (0.00 sec)解决方法:
将配置文件中gtid_mode = 1改为gtid_mode = ON
在数据库中输入
mysql> set global GTID_MODE = ON_PERMISSIVE;
Query OK, 0 rows affected (0.02 sec)
//在主从节点上执行如下命令,检查匿名事务是否消耗完毕,最好多检查几次,以便确认该参数的值是0
mysql> SHOW STATUS LIKE 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';
+-------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------+-------+
| Ongoing_anonymous_transaction_count | 0 |
+-------------------------------------+-------+
1 row in set (0.00 sec)
mysql> set global GTID_MODE = ON;
Query OK, 0 rows affected (0.02 sec)修改后就可以成功备份数据库了
总结:
日常运维中,我们习惯将设置为ON的参数写成=1,但是gtid_mode=1却不是将gtid_mode设置为ON
所以需注意一定要写gtid_mode=ON,或者gtid_mode=3
参考:
边栏推荐
- Codeforces Round #810 (Div. 2)【比赛记录】
- Tupu 3D visual national style design | collision between technology and culture "cool" spark“
- Team research and development from ants' foraging process (Reprint)
- 【Oauth2】五、OAuth2LoginAuthenticationFilter
- The serialization class in unity is in JSON format
- .NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI
- 从标注好的xml文件中截取坐标点(人脸框四个点坐标)人脸图像并保存在指定文件夹
- [beauty of open source] nanomsg (2): req/rep mode
- 【C语言学习者必会的题目集锦1】巩固基础,稳步提高
- Upload pictures to get width and height
猜你喜欢

The last time I heard about eBay, or the last time

TDSQL-C Serverless:助力初创企业实现降本增效

AI theory knowledge map 1 Foundation

Comparison between SIGMOD function and softmax function

白帽子揭秘:互联网千亿黑产吓退马斯克

Activity.onStop() 延迟10秒?精彩绝伦的排查历程

天津市应急局与驻津央企签署协议深化应急联动机制建设

Pytorch学习笔记(二)神经网络的使用

LCL three-phase PWM rectifier (inverter)

Target detection network r-cnn series
随机推荐
See you tomorrow at the industrial session of cloud intelligence technology forum!
Familiarize you with the "phone book" of cloud network: DNS
Unicode file parsing methods and existing problems
Force deduction ----- the number of words in the string
With 8 years of product experience, I have summarized these practical experience of continuous and efficient research and development
Pytorch学习笔记(一)安装与常用函数的使用
Implementation of SAP ABAP daemon
Parent class reference to child class (parent class reference points to child class object)
The picture moves horizontally with the phone - gyroscope. 360 degree setting conditions
How to write the introduction of GIS method journals and papers?
Code cloud, which officially supports the pages function, can deploy static pages
[oauth2] VIII. Configuration logic of oauth2 login -oauth2loginconfigurer and oauth2clientconfigurer
WPS凭什么拒绝广告?
白帽子揭秘:互联网千亿黑产吓退马斯克
周伟:寻找非共识性投资机会,陪伴延迟满足的创始团队
万字长文,浅谈企业数字化建模蓝图
Tupu 3D visual national style design | collision between technology and culture "cool" spark“
POM文件详解
Canvas upload image Base64 with cropping function jcrop.js
估值15亿美元的独角兽被爆裁员,又一赛道遇冷?