zoukankan      html  css  js  c++  java
  • mysql MHA

    MHA【Master High Availabilty】目前在Mysql高可用方面是是一个相对程数的解决方案,是一套优秀的作为Mysql高可用性环境下故障切换和主从提升的高可用软件。在Mysql故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

    MHA是由日本DeNA公司youshimaton(现就职于Facebook公司)开发。

    mysql的一致性:一致性是指数据处于一种语义上的有意义且正确的状态。一致性是对数据可见性的约束,保证在一个事务中多次操作的数据中间对其他事务不可见的。因为这些中见状态,是一个过度状态,与事务的开始状态和事务的结束状态时不一致的。

    进行实例:【准备三台centos7,至少需要三台】

    1.  在三台centos7上面执行时间同步

                  

                  [root@ localhost ~]# echo "*/s * * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1" >>/var/spool/cron/root

    2.  更改主机名三台都要执行,更改之后断开xshell重新连一下就好了

                  hostname直接更改是临时的使用hostctl来进行更改是永久的

                  

                    

    3.  进行hosts解析(三台都要执行)

              

              cat >> /etc/hosts<<EOF
               > c701 10.0.0.42
               > c702 10.0.0.47
               > c703 10.0.0.46
                 EOF

    4.  关闭防火和SElinux(三台都要执行)

              

                [root@ c72 ~]# sed -i '/^SELINUX/s#enforceing#disabled#g' /etc/selinux/config

    5.  互相配置ssh免密登录【ip写的是自己的,三台虚拟机都要进行执行】,ssh进行连接测试一下看是否可以

                  

                  yum -y install sshpass

                  vim  ssh.sh

                  

    6.  安装mysql,每一台都要执行

               

                

                

                 

                 

                wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

                  rpm -ivh mysql-community-release-el7-5.noarch.rpm

                yum -y install mysql

                yum install mysql-server -y

    7.  安装完毕之后开启MySQL并更改密码

                

                

                  mysql> update mysql.user set password=password('123456') where user='root' and host='localhost';

                  mysql> flush privileges;

    8.  MySQL主从从配置,编辑mysql配置文件/etc/my.cnf(在c71)

                

                  

                

    9.  进入MySQL命令行,执行同步,并查看master日志(在c72)

                

                  

               在从的这台centos7的系统上:

                    

                      

                    

              在从的centos7的系统上(在c73):执行c72同样的步骤

    10.  三台centos7系统上都安装好    “mha4mysql-node-0.58-0.el7.centos.noarch.rpm”,在安装这个之前一定要安好依赖

                yum install perl-DBD-MySQL -y

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

                

    11.  在c73这个slave上安装 “mha4mysql-manager-0.58-0.el7.centos.noarch.rpm”(安装这个是为了防止master不随便跳机)

                rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

                

    12.  创建mha目录,编辑配置文件【vim /etc/mha/app1.cnf】在配置文件中加上一下的代码

         mkdir -p /etc/mha

            mkdir -p /var/log/mha/app1

         

    [server default]
    manager_log=/var/log/mha/app1/manager.log
    manager_workdir=/var/log/mha/app1
    master_binlog_dir=/var/lib/mysql
    password=mha
    ping_interval=2
    repl_password=123456
    repl_user=rep
    ssh_user=root
    user=mha
    
    [server1]
    hostname=10.0.0.42
    port=3306
    
    [serve2]
    hostname=10.0.0.47
    port=3306
    
    [server3]
    hostname=10.0.0.46
    ignore_fail=1
    no_master=1
    port=3306

    13.  进行检测

    masterha_check_repl --conf=/etc/mha/app1.cnf  
    masterha_check_ssh --conf=/etc/mha/app1.cnf
    

    如果你出现这种状况,请在MySQL的配置文件中加上:skip-name-resolve(表示跳过本机域名),然后在进行测试 “masterha_check_repl --conf=/etc/mha/app1.cnf”,一定是“is ok”才算成功

    14.   进行开启mha,并查看状态

    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 &
    ps -ef | grep mha
    masterha_check_status --conf=/etc/mha/app1.cnf
    

    15.

    16.

          17.

          18.

          19.

          20.

    masterha_check_repl --conf=/etc/mha/app1.cnf  masterha_check_ssh --conf=/etc/mha/app1.cnf

  • 相关阅读:
    取多列数据的最大值、最小值sql
    java中实现时间差的计算
    数据更新sql
    自连接的用法sql
    获取第一条,最后一条数据sql
    复制表结构 表数据sql
    用 ORDER BY 生成“排序”列sql
    表之间的数据匹配(生成交叉表)sql
    SIP呼叫流程
    如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
  • 原文地址:https://www.cnblogs.com/kriskris/p/12305049.html
Copyright © 2011-2022 走看看