• MHA环境搭建【4】manager相关依赖的解决


    mha的manager 结点依赖与mha-node软件包、所以在安装mha-manager之前要把mha-node安装上去;再者mha-manger还依赖于perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes

    【1】安装perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes

    yum -y install perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes

    【2】编译安装mha-manager

    unzip mha4mysql-manager-master.zip
    cd mha4mysql-manager-master
    perl Makefile.PL 
    make
    make install

    【3】mha-manger 安装包下面samples/scripts/目录下有几个脚本文件,如果用这些工具的话可以用cp * /usr/local/bin/

    cd /samples/scripts
    cp
    * /usr/local/bin/

    【4】创建mha-manger的工作目录

    mkdir /var/log/masterha
    touch /var/log/masterha/app.cnf   # 配置文件

    【5】配置mha-manger

    [server default]
    manager_workdir=/var/log/masterha/
    manager_log=/var/log/masterha/manager.log
    remote_workdir=/tmp
    master_binlog_dir=/usr/local/mysql/data/
    master_ip_failover_script=/usr/local/bin/master_ip_failover
    master_ip_online_change_script= /usr/local/bin/master_ip_online_change
    report_script=/usr/local/bin/send_report
    shutdown_script=""
    ping_interval=1
    user=mha
    password=123456
    repl_user=repl
    repl_password=123456
    ssh_user=root
    
    [server1]
    hostname=192.168.80.130
    port=3306
    candidate_master=1
    check_repl_delay=0
    
    [server2]
    hostname=192.168.80.131
    port=3306
    candidate_master=1
    check_repl_delay=0
    
    [server3]
    hostname=192.168.80.132
    port=3306

    【6】根据自己的环境修复master_ip_failover;我这里的如下

    #!/usr/bin/env perl
    
    use strict;
    use warnings FATAL => 'all';
    
    use Getopt::Long;
    
    my (
        $command,          $ssh_user,        $orig_master_host, $orig_master_ip,
        $orig_master_port, $new_master_host, $new_master_ip,    $new_master_port
    );
    
    my $vip = '192.168.80.100/24';
    my $key = '0';
    my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";
    my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";
    
    GetOptions(
        'command=s'          => $command,
        'ssh_user=s'         => $ssh_user,
        'orig_master_host=s' => $orig_master_host,
        'orig_master_ip=s'   => $orig_master_ip,
        'orig_master_port=i' => $orig_master_port,
        'new_master_host=s'  => $new_master_host,
        'new_master_ip=s'    => $new_master_ip,
        'new_master_port=i'  => $new_master_port,
    );
    
    exit &main();
    
    sub main {
    
        print "
    
    IN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===
    
    ";
    
        if ( $command eq "stop" || $command eq "stopssh" ) {
    
            my $exit_code = 1;
            eval {
                print "Disabling the VIP on old master: $orig_master_host 
    ";
                &stop_vip();
                $exit_code = 0;
            };
            if ($@) {
                warn "Got Error: $@
    ";
                exit $exit_code;
            }
            exit $exit_code;
        }
        elsif ( $command eq "start" ) {
    
            my $exit_code = 10;
            eval {
                print "Enabling the VIP - $vip on the new master - $new_master_host 
    ";
                &start_vip();
                $exit_code = 0;
            };
            if ($@) {
                warn $@;
                exit $exit_code;
            }
            exit $exit_code;
        }
        elsif ( $command eq "status" ) {
            print "Checking the Status of the script.. OK 
    ";
            exit 0;
        }
        else {
            &usage();
            exit 1;
        }
    }
    
    sub start_vip() {
        `ssh $ssh_user@$new_master_host " $ssh_start_vip "`;
    }
    sub stop_vip() {
         return 0  unless  ($ssh_user);
        `ssh $ssh_user@$orig_master_host " $ssh_stop_vip "`;
    }
    
    sub usage {
        print
        "Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port
    ";
    }

    只要改一下vip 和ifconfig 和相关网卡信息就行了

  • 相关阅读:
    如何在 Creator3D 中切换模型贴图,超级简单!
    研究了3天,终于将 Shader 移植到 Cocos Creator 2.2.0 上了!
    Creator3D 守护你的球球—UV动画与天空盒
    一个玩游戏的失足青年,转行做软件开发的挣扎过程
    Cocos Creator 3D 打砖块教程(二) | 子弹发射与摄像机平滑移动
    Cocos Creator 3D 打砖块图文教程(一)
    Creator3D长什么样?看看官方惊艳的DEMO就知道了,附在线体验!
    不要总想着二进制
    关于 JSX
    早教
  • 原文地址:https://www.cnblogs.com/JiangLe/p/6090168.html
Copyright © 2020-2023  润新知