mha 0.58 gtid模式下 丢数据问题修复
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,问题描述:在gtid模式下 ,mha发生故障切换 ,如果Linux主机还存活 ,不会去比对master的日志,获取差异日志 ,有导致数据丢失的风险 。问题修复:找到 MasterFailover.pm
千家信息网最后更新 2025年02月05日mha 0.58 gtid模式下 丢数据问题修复
问题描述:
在gtid模式下 ,mha发生故障切换 ,如果Linux主机还存活 ,不会去比对master的日志,获取差异日志 ,有导致数据丢失的风险 。
问题修复:
找到 MasterFailover.pm 文件 ,将下文! 去掉
if ( !$_server_manager->is_gtid_auto_pos_enabled() ) { $log->info(); $log->info("* Phase 3.2: Saving Dead Master's Binlog Phase..\n"); $log->info(); save_master_binlog($dead_master); }
去掉后的代码
if ( $_server_manager->is_gtid_auto_pos_enabled() ) { $log->info(); $log->info("* Phase 3.2: Saving Dead Master's Binlog Phase..\n"); $log->info(); save_master_binlog($dead_master); }
找到 apply_binlog_to_master 函数定义的位置
sub apply_binlog_to_master($) { my $target = shift; my $err_file = "$g_workdir/mysql_from_binlog.err"; my $command ="cat $_diff_binary_log | mysql --binary-mode --user=$target->{mysql_escaped_user} --password=$target->{mysql_escaped_password} --host=$target->{ip} --port=$target->{port} -vvv --unbuffered > $err_file 2>&1"; $log->info("Checking if super_read_only is defined and turned on.."); my ($super_read_only_enabled, $dbh) = MHA::SlaveUtil::check_if_super_read_only($target->{hostname}, $target->{ip}, $target->{port}, $target->{user}, $target->{password}); if ($super_read_only_enabled) { MHA::SlaveUtil::disable_super_read_only($dbh); } else { $log->info(" not present or turned off, ignoring.\n"); }
修改后的代码 cat $_diff_binary_log
sub apply_binlog_to_master($) { my $target = shift; my $err_file = "$g_workdir/mysql_from_binlog.err"; my $command ="mysqlbinlog $_diff_binary_log --skip-gtids=true | mysql --binary-mode --user=$target->{mysql_escaped_user} --password=$target->{mysql_escaped_password} --host=$target->{ip} --port=$target->{port} -vvv --unbuffered > $err_file 2>&1"; $log->info("Checking if super_read_only is defined and turned on.."); my ($super_read_only_enabled, $dbh) = MHA::SlaveUtil::check_if_super_read_only($target->{hostname}, $target->{ip}, $target->{port}, $target->{user}, $target->{password}); if ($super_read_only_enabled) { MHA::SlaveUtil::disable_super_read_only($dbh); } else { $log->info(" not present or turned off, ignoring.\n"); }
问题
代码
日志
数据
模式
下文
主机
位置
函数
差异
故障
文件
风险
切换
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江西服务器电源哪里买
甘肃等离子套料软件开发商
服务器虚拟化现在还在用吗
国家网络安全战略 美国
人社数据怎么进行网络安全保护
计算机三级考试题网络技术
崩坏三用的服务器
怎么测试视频类软件开发
工信加强网络安全工作
平安建设信息网络安全
软件开发部门薪酬绩效方案
数据库系统概念怎么学
五华区品质软件开发价格走势
数据库语句可以小写不
华亭网络安全宣传
数据库设计过程不包括__
列举出学生宿舍网络安全问题
hp 服务器可以用普通内存吗
ftp查看服务器日期
网络安全使用是关键
自己托管的服务器需要备案吗
后端软件开发的平均工资
微信软件开发商
北京联世传奇网络技术有限
网络安全信息泄露处理
先写数据库再删缓存有什么问题
ebase实时数据库
河南光讯网络技术
三级网络技术二十套题
美国的根服务器