MySQL 高可用架构之 MMM 架构【MySQL教程】,MySQL
重要作用
监控和治理 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网别的相干文章!