• 四十六、MHA之binlog_server


    binlog server介绍

    因为主从复制常常会因为各种因素导致有些许部分延迟,当master发生故障且不能ssh时,从库可能会丢失部分数据无法进行同步。
    这时另起一台服务器,作为binlog server使用,实时从主库拉取binlog日志,以便master宕机后,其他从库可以从binlog server中恢复数据。



    配置

    最好找一台额外的机器,必须要有5.6以上的版本,支持gtid并开启,我这里还是将就使用10.154.0.113也就是manager来作为binlog server。

    1、编辑配置文件

    $ vim /etc/mha/app1.cnf 
    [binlog1]
    no_master=1
    hostname=10.154.0.113
    master_binlog_dir=/data/master/binlog
    

    [binlog1]:标签,用于分别多台binlog server
    no_master=1:不参与选主
    master_binlog_dir:从主库拉取的日志存放在本地的路径,不是master存放binlog的日志路径

    2、在manager上创建存放binlog目录

    $ mkdir -p /data/master/binlog
    $ chown -R mysql.mysql /data/*
    

    3、拉取主库binlog日志

    $ cd /data/master/binlog   
    $ mysqlbinlog  -R --host=10.154.0.111 
    --user=mha --password=mha --raw  
    --stop-never mysql-bin.000050 &
    

    注意:
    1、必须要进入该目录才能拉取日志。
    2、--stop-never:永不停止,源源不断的从master拉取日志,除非master宕机。
    3、mysql-bin.000050:从主库的哪个日志开始拉取,生产环境中,一般主从是已经接近同步状态,所以我们一般只拉取master当前使用的日志即可,无需从头拉起。在master的mysql中使用show master status;查看当前使用的日志文件名。

    特别注意第3点,如果master日志量过大,binlog server参数值又写的从头拉取日志,则会占用极大的带宽跟IO,造成网络波动。

    4、重启MHA-manager

    $ masterha_stop --conf=/etc/mha/app1.cnf
    $ nohup masterha_manager 
    --conf=/etc/mha/app1.cnf 
    --remove_dead_master_conf 
    --ignore_last_failover  < /dev/null> /var/log/mha/app1/manager.log 2>&1 &
    
    $ masterha_check_status --conf=/etc/mha/app1.cnf
    

    学习来自:B站课程:搭建binlogserver P147

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    Scala-函数
    Scala--循环
    scala(一)
    拦截器filter
    Ajax实现分页二
    并发1
    泛型
    协议protocol
    结构体structure
    类的继承
  • 原文地址:https://www.cnblogs.com/tz90/p/14673124.html
Copyright © 2020-2023  润新知