mha在gtid模式下故障的解决方法-创新互联

本文在介绍关于mha在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");   }

以上就是mha在gtid模式下故障的解决方法,详细使用情况还需要大家自己亲自动手使用过才能领会。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:mha在gtid模式下故障的解决方法-创新互联
标题链接:http://ybzwz.com/article/dphsei.html