当前位置: 首页 > 科技观察

mysql集群架构mmm高可用集群和服务器上线

时间:2023-03-12 11:15:25 科技观察

【引用自攀岩生活的博客】MMM即Multi-MasterReplicationManagerforMySQL:mysql多主复制管理器,基于perl实现,关于mysqlmaster的监控-masterreplication配置,故障转移和管理一个可扩展的脚本套件(任何时候只能写入一个节点),MMM也可以从服务器读取负载平衡,所以它可以在一组服务器中用于复制启动虚拟ip,除此之外,它还有用于节点间数据备份和重新同步的脚本。优点:可用性高,扩展性好,故障自动切换,主从同步,同时只提供一次数据库写操作,保证数据一致性。当主服务器挂掉时,另一个主服务器立即接管,其他从服务器可以自动切换,无需人工干预。缺点:monitor节点是单点的,但是也可以结合keepalived或者haertbeat来实现高可用;至少三个节点,对主机数量有要求,需要实现读写分离,需要在前端写一个读写分离程序。在读写非常繁忙的业务系统下性能不是很稳定,可能会出现复制延迟、切换失败等问题。MMM方案不太适合数据安全要求高,读写繁忙的环境。二、部署与实施一、环境介绍OS:centos7.2(64位)数据库系统:mysql5.7.13关闭selinux主机IpHostnameServer--idMaster1192.168.119.129Master11Master2192.168.119.130Master22Slave192.168.119.131从机3Montior192.168.119.132Montior4使用yum安装相关依赖包安装perl相关库字有点小(cpan-iAlgorithm::DiffClass::SingletonDBIDBD::mysqlLog::DispatchLog::Log4perlMail::SendNet::pingProc::DaemonTime::HiResParams::ValidateNet::ARP)在/etc/hosts中添加地址和主机名,测试是否能ping通。master1中添加mysql/etc/my.cnfmaster配置参数文件master2中添加/etc/my.cnfmaster配置文件slave中添加/etc/my.cnfmaster配置文件修改后关闭防火墙,启动mysql服务剩下的两个master2和slave按照上图搭建主从复制环境,master1是master2和slave的master,master2是master1的master。在两个主服务器上创建授权连接用户。查看master1的状态。在master2上建立连接,实现主从复制。启动slave查看连接是否一定是yes。在slave上建立连接实现主从复制设置master2为master与上述步骤相同,只是更改ip地址即可。下图是在master1上执行的。上面的master-masterreplication和master-slavereplication已经ok了。设置mysql-mmm在master1上创建代理账号和监控账号,因为可以在master上创建主从副本,会同步查看两者上是否有监控和代理账号。www用户:mmm监控用于监控mysql服务器进程健康检查qqq用户:mmm代理用于更改只读模式、复制主服务器等,在montior主机上安装mysql-mmm安装监控程序.安装下载的包。在master1、master2、slave中安装agent配置mmm,要求必须是四台主机必须有相同的配置文件。安装后所有的配置文件都存放在/etc/mysql-mmm/下。管理和数据库服务器必须包含一个公共文件mmm_common.cof。配置文件如下:active_master_rolewritercluster_interfaceeno16777736pid_path/var/run/mmm_agentd.pidbin_path/usr/lib/mysql-mmm/replication_userrepreplication_password123agent_userqqqagent_password123ip192.168.119.129modemasterpeermaster2ip192.168.119.1>0hostemmodelaver3ip192.168.119.1>0hostemlaver3ip192.168.113.168hostsmaster1,master2ips192.168.119.10modeexclusivehostsmaster1,master2,slaveips192.168.119.11,192.168.119.22,1mod92.1633.ro1>9使用循环语句将代理文件分发到其他三台主机,需要修改master1、master2、slave中的/mmm_agent.confthis,在其后添加本地主机名。启动agent进程需要进入脚本/etc/init.d/mysql-mmm-agent脚本把mmm添加为系统服务,并设置为自启动。可以显示ok,证明之前的工作没有问题。在三台agent主机的monitor主机的/etc/mysql-mmm/mmm_mon.conf中设置各个参数的含义。ip127.0.0.1设置只在本机监听,mmm_mond监听9988pid_path/var/run/mmm_mond.pidbin_path/usr/lib/mysql-mmm/status_path/var/lib/misc/mmm_mond.statusping_ips192.168.119.129,192.168.119.130默认,192.168.119.131用于测试网络可用性IP地址列表auto_set_online0设置自动上线时间,默认60scheck_period5检查周期默认为5strap_period10节点检测不成功trap_period秒timeout2检查超时时间restart_after10000restart_after检查完成后,重启检查进程,默认值:10000max_backlog86400记录最大检查rep_backlog日志数monitor_userwww监控db服务器的用户monitor_password123监控db服务器的密码debug0debug0为正常模式,1为to以debug模式启动监控进程在/etc/init.d/mysql-mmm-monitor文件中添加为系统服务并设置为自启动chkconfig--addmysql-mmm-monitorchkconfigmysql-mmm-monitoron/etc/init.d/mysql-mmm-monitorstart使服务器上线查看所有db服务器的集群状态查看所有集群状态查看命令,监控命令参数比较多,可以在网上找到他们