旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL 高可用架构之 MMM 架构【MySQL教程】,MySQL

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:41评论:0


导读:MMM(Multi-MasterReplicationManager,多主复制治理架构)重要作用监控和治理MySQL的主主复制拓扑,并在当前的主效劳器失效时,...
MMM(Multi-Master Replication Manager,多主复制治理架构)

重要作用

监控和治理 MySQL 的主主复制拓扑,并在当前的主效劳器失效时,举行主和主备效劳器之间的主从切换和毛病转移等事情。

相干引荐:【mysql教程】

重要功能:

● 监控 MySQL 主从复制健康状况(主动主动形式下的主主复制(主主),主动被动形式的主主复制(主主备))

● 在主库涌现宕机时举行毛病转移并自动设置别的从 DB 对新主 DB 的复制

● 供应可主,写(读)假造 IP,在主从效劳器涌现问题时可用自动迁徙假造 IP

架构:

资本:

布置:

设置主主复制及主从同步集群
装置主从节点所须要的支撑包(perl)
装置及设置 MMM 东西集
许可 MMM 监控效劳
测试设置

演示:

● 拓扑图(VIP: visual IP)

步骤:

1、设置主(100)<->主(101)[参考: [Tony 先生搭建 MySQL 主从效劳器](https://learnku.com/articles/31832)]
2、设置主(100)<->从(102)   [参考: [Tony 先生搭建 MySQL 主从效劳器](https://learnku.com/articles/31832)]
3、 装置
     rpm -vih <http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm>
     rpm -Uvh <http://rpms.remirepo.net/enterprise/remi-release-7.rpm>
4、 yum clean all && yum makecache
5、变动yum源设置
    yum search mmm  # 查询mmm支撑包
    yum -y install mysql-mmm-agent.noarch #每一个效劳器都须要装置mmm代办
    yum -y install mysql-mmm*  #监控效劳器装置监控效劳
    systemctl status mysql-mmm-agent
    systemctl start mysql-mmm-agent
    systemctl stop mysql-mmm-agent
    systemctl restart mysql-mmm-agent
6、竖立账号
    CREATE USER repl@'192.168.71.%' identified by '123456'; //建立,发起从效劳器IP段 ①
    CREATE USER mmm_monitor@'192.168.71.%' identified by '123456'; //建立,发起从效劳器IP段 ①
    CREATE USER mmm_agent@'192.168.71.%' identified by '123456'; //建立,发起从效劳器IP段 ①
7、账号受权
    GRANT replication client on *.* to 'mmm_monitor'@'192.168.71.%' identified by '123456';   #用于MMM监控效劳器运用,在master上竖立
    GRANT super,replication client ,process on *.* to 'mmm_agent'@'192.168.71.%' identified by '123456';    #MMM代办效劳,转变毛病转移和主从切换
    GRANT REPLICATION SLAVE ON *.* TO repl@'192.168.71.%'; //受权 复制账号
8、设置MMM(数据库节点设置,三台均设置)
    cd /etc/mysq-mmm/
    vim mmm_common.conf
    设置< host default >:
        网口:cluster_interface 
        pid和bin途径:默许
        replication_user:repl
        replication_password:123456
        agent_user:mmm_agent
        agent_password:123456
    设置< host db1 >:
        ip :192.168.71.244
        mode :master
        peer:db2
    设置 < host db2 > :
        ip:192.168.71.223
        mode:master
        peer:db1
    设置< host db3 >:
        ip:192.168.71.220
        mode:slave
    设置< role writer >
        hosts : db1,db2
        ips:192.168.71.90
        mode:exclusive( 唯一的)
    设置 < role reader >
        hosts:db1,db2,db3
        ips:192.168.71.91,192.168.71.92,192.168.71.93
        mode:balanced(均衡的)
    复制设置文件到其他效劳器
        scp mmm_common.conf root@192.168.71.223:/etc/mysql-mmm/
        scp mmm_common.conf root@192.168.71.220:/etc/mysql-mmm/
    vim mysql-agent.conf (三台效劳器对应设置为:db1,db2,db3)
9、监控节点设置(192.168.71.220,只设置监控节点)
    vim mmm_mon.conf  #监控数据文件
    设置< host default >
        monitor_user :mmm_monitor
        monitor_password:123456
    设置monitor
        ping_ips:192.168.71.244,192.168.71.223,192.168.71.220
10、启动MMM效劳
    /etc/init.d/mysql-mmm-agent start(三台效劳器均启动代办效劳)
    /etc/init.d/mysql-mmm-monitor start (监控效劳器启动监控效劳)
11、检察监控信息
    mmm_control  
    mmm_control show #检察集群状况
    mmm_control checks all #搜检集群状况
    mmm_control ping #搜检与监控效劳器衔接状况
    mmm_control set_online/offline #设置效劳器上线/下线
    mmm_control help #检察协助
12、检察效劳器假造IP状况
13、测试
    封闭db1的数据库:/etc/init.d/mysqld stop
    检察监控效劳器上集群状况:mmm_control show
    检察DB3的主从状况

常见问题:

**经由过程mmm_control checks all 搜检效劳器状况**
Q1:
    UNKNOWN: Error occurred: install_driver(mysql) failed: Can't load '/usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.18: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190, <STDIN> line 1.
A1:
    perl-DBD-MySQL装置出问题
        S1:rpm -qa |grep -i DBD  #检察DBD装置
        S2:rpm -e --nodeps perl-DBD-MySQL-4.023-6.el7.x86_64 #卸载DBD
        S3:rpm -qa |grep -i DBD #检察卸载状况
        S4:wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm #下载MySQLserver,可根据体系挑选细致版本
        S5:rpm -ivh mysql-community-release-el7-5.noarch.rpm #rpm MySQLserver
        S6:yum install mysql-community-server #yum装置
        S7:yum install perl-DBD-MySQL    #重新装置
        S8:systemctl restart mysql-mmm-monitor #重启
        S9:mmm_control checks all  + mmm_control show ->一般
Q2:
    当M1宕机时,MMM架构自动切换至M2,插进去数据,S未更新,M1重启时,S仍未更新
A2:
    插进去S一条空事件,纪录与M2时雷同即可。
Q3:
    handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000002, end_log_pos 673 #跳过插进去 | 更新 | 删除
A3:
    stop slave;
    insert into user(`username`) values('1');
    set global sql_slave_skip_counter=1;
    start slave;
Q4:
    The slave I/O thread stops because master and slave have equal MySQL server ids #切换主从发明,server_id雷同
A4:
    show variables like '**server_id**';
    vim /etc/my.cnf    修正server_id 值
**设置多线程**
stop slave #在从上,住手链路复制
set global slave_parallel_type = 'logical_clock';  #设置逻辑时钟的体式格局
set global slave_parallel_workers = 4;      #设置并发线程数
start slave;

以上就是MySQL 高可用架构之 MMM 架构的细致内容,更多请关注ki4网别的相干文章!

标签:MySQL


欢迎 发表评论: