zoukankan      html  css  js  c++  java
  • 三十六.MHA集群概述 、 部署MHA集群 测试配置

    1.准备MHA集群环境
    准备6台虚拟机,并按照本节规划配置好IP参数
    在这些虚拟机之间实现SSH免密登录
    在相应节点上安装好MHA相关的软件包
     
    使用6台RHEL 7虚拟机,如图-1所示。准备集群环境,安装依赖包,授权用户,配置ssh密钥对认证登陆,所有节点之间互相以root秘钥对认证登录,管理主机以root密钥对认证登录所有数据节点主机,配置mha集群。
    1.1 修改主机名,配置IP
    msyql{50..57}
    192.168.4.{50..57}
     
    1.2 安装包(51-55)
    ]# mkdir mha-soft-student
    ]# tar -xvf mha.tar.gz -C mha-soft-student
    ]# cd mha-soft-student
    ]# yum -y install perl-*.rpm
     
    1.3 在管理主机上安装mha_node 和 mha-manager包(56操作)
    mha-soft-student]# yum -y install perl-DBD-mysql perl-DBI
    mha-soft-student]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
     
    1.4 配置ssh密钥对认证登陆
    所有节点之间可以互相以ssh密钥对方式认证登陆(以51为例)
    ]# ssh-keygen
    ]# for i in {50..57}
    > do 
    > ssh-copy-id 192.168.4.$i
    > done
     
    2. 配置MHA集群环境
    配置主节点 master51
    配置两个备用主节点 master52、master53
    配置两个从节点 slave54、slave55
    配置管理节点 mgm56
     
    2.1 配置mha集群环境
     
    2.1.1 安装数据库(51-55同样操作,以51为例)
    ]# mkdir mysql
    ]# tar -xvf mysql-5.7.17.tar -C mysql
    ]# cd mysql/
    ]# yum -y install perl-JSON
    ]# rpm -Uvh mysql-community-*.rpm
    ]# rpm -qa | grep -i mysql
    ]# systemctl start mysqld
    ]# grep 'temporary password' /var/log/mysqld.log 
    ]# mysql -uroot -p''
    mysql> alter user user() identified by "123456"; //修改登陆密码
     
    2.1.2 master51 数据库服务器配置文件
    ]# vim /etc/my.cnf(52.53都配置,修改id)
    relay_log_purge=off(不自动删除本机的中继日志文件)
    plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    rpl-semi-sync-master-enabled = 1
    rpl-semi-sync-slave-enabled = 1
     
    server_id=51
    log-bin=master51
    binlog-format="mixed"
    validate_password_policy=0
    validate_password_length=6
     
    添加主从同步授权用户(51)
    mysql> grant replication slave on  *.*  to repluser@"%" identified by "123456";
    mysql> RESET MASTER;
    mysql> show master status;
    mysql> SHOW MASTER STATUSG
    *************************** 1. row ***************************
                 File: master51.000001
             Position: 154
         Binlog_Do_DB: 
     Binlog_Ignore_DB: 
    Executed_Gtid_Set: 
     
    2.1.3 master52数据库服务器配置文件(53同样配置)
    mysql> RESET MASTER;
    mysql> CHANGE MASTER TO
        -> MASTER_HOST='192.168.4.51',
        -> MASTER_USER='repluser',
        -> MASTER_PASSWORD='123456',
        -> MASTER_LOG_FILE='master51.000001',
        -> MASTER_LOG_POS=154;
     
    mysql> START SLAVE;
    mysql> SHOW SLAVE STATUSG
    ...
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes
    ...
     
    2.1.4 slave54 数据库服务器配置文件(55一样)
    ]# vim /etc/my.cnf
    [mysqld]
    server_id=54
    log-bin=mysql54
    binlog-format="mixed"
    validate_password_policy=0
    validate_password_length=6
     
    mysql> RESET MASTER;
    mysql> CHANGE MASTER TO
        -> MASTER_HOST='192.168.4.51',
        -> MASTER_USER='repluser',
        -> MASTER_PASSWORD='123456',
        -> MASTER_LOG_FILE='master51.000001',
        -> MASTER_LOG_POS=154;
     
    mysql> START SLAVE;
    mysql> SHOW SLAVE STATUSG
    ...
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes
    ...
     
    2.2 配置管理主机4.56
    # yum -y install perl*(root下)
    ]# cd mha-soft-student/
    ]# yum -y install *.rpm
    ]# tar -xvf mha4mysql-manager-0.56.tar.gz 
    ]# cd mha4mysql-manager-0.56/
    ]# prel Makefile.PL 
    ]# make && make install
     
    ]# cd mha-soft-student/mha4mysql-manager-0.56/
    ]# cp bin/* /usr/local/bin/ 
    创建工作目录
    ]# mkdir /etc/mha_manager
    建立样板文件 
    ]# cp samples/conf/app1.cnf /etc/mha_manager/
     
    ]# vim /etc/mha_manager/app1.cnf 
    //编辑主配置文件app1.cnf
    [server default]
    manager_workdir=/etc/mha_manager
    manager_log=/etc/mha_manager/manager.log
    master_ip_failover_script=/usr/local/bin/master_ip_failover
     
    ssh_user=root
    ssh_port=22
    repl_user=repluser
    repl_password=123456
     
    user=root
    password=123456
     
    [server1]
    hostname=192.168.4.51    
    port=3306
     
    [server2]
    hostname=192.168.4.52
    port=3306            
    candidate_master=1
     
    [server3]
    hostname=192.168.4.53
    port=3306
    candidate_master=1
     
    [server4]
    hostname=192.168.4.54
    no_master=1
     
    [server5]
    hostname=192.168.4.55
    no_master=1
     
    创建故障切换的脚本
    ]# vim samples/scripts/master_ip_failover
     
     35 my $vip='192.168.4.100/24';
     36 my $key='1';
     37 my $ssh_start_vip = '/sbin/ifconfig eth0:$key $vip';
     38 my $ssh_stop_vip = '/sbin/ifconfig eth0:$key down';
     39 
    40 GetOptions(在这上面添加上面几行)
     
    ]# cp samples/scripts/master_ip_failover /usr/local/bin/
    ]# chmod +x /usr/local/bin/master_ip_failover
     
    51上部署eth0
    51 ~]# ifconfig eth0:1 192.168.4.100/24
    ]# ifconfig eth0:1
    eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.4.100  netmask 255.255.255.0  broadcast 192.168.4.255
            ether 52:54:00:d6:46:46  txqueuelen 1000  (Ethernet)
     
    3.测试MHA集群
    查看MHA集群状态
    测试节点之间的SSH登录
    测试集群VIP的故障切换功能
     
    3.1 验证配置
    检查配置环境,在主机 52-55 检查是否有同步数据的用户repluser
    mysql> select user,host from mysql.user where user="repluser";
    mysql> show grants for repluser@"%";
     
    在51的主机上做root的授权,其他的会同步(如果不做,在验证数据节点的主从同步配置时会出错)
    mysql> grant all on *.* to root@"%" identified by "123456";
    (50-55查看)
    mysql> select user,host from mysql.user where user="root";
    +------+-----------+
    | user | host      |
    +------+-----------+
    | root | %         |
    | root | localhost |
    +------+-----------+
     
    验证ssh 免密登陆数据节点主机(56)
    -0.56]# cd /usr/local/bin/
    bin]# masterha_check_ssh --conf=/etc/mha_manager/app1.cnf
    ...
    MySQL Replication Health is  OK!
     
    3.2 启动管理服务MHA_Manager
    --remove_dead_master_conf //删除宕机主库配置
    --ignore_last_failover //忽略xxx.health文件
    bin]# masterha_manager --conf=/etc/mha_manager/app1.cnf  
     --remove_dead_master_conf --ignore_last_failover 
     
    查看状态(另开一个终端)
    ]# masterha_check_status --conf=/etc/mha_manager/app1.cnf
    停止服务
    ]# masterha_stop --conf=/etc/mha_manager/app1.cnf
     
    3.3 测试故障转移
    启动服务
    bin]# masterha_manager --conf=/etc/mha_manager/app1.cnf  
     --remove_dead_master_conf --ignore_last_failover
    查看状态
    ]# masterha_check_status --conf=/etc/mha_manager/app1.cnf
    ...master:192.168.4.52
     
    验证数据节点的主从同步配置
    bin]# masterha_check_repl --conf=/etc/mha_manager/app1.cnf
  • 相关阅读:
    Excel文档间的数据替换 ---电脑版APP 自动操作魔法师
    【css】zSass
    【javascript】利用 a 标签自动解析 url
    【javascript】console 让 js 调试更简单
    【规范】javascript 变量命名规则
    【规范】前端编码规范——一般规范
    【jquery】一款不错的音频播放器——Amazing Audio Player
    【分享】分享一款不错的网页视频播放器
    【分享】分享一个值得前端开发收藏的网站
    【html】button按钮的一些问题
  • 原文地址:https://www.cnblogs.com/luwei0915/p/10491666.html
Copyright © 2011-2022 走看看