加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql-MMM高可用群集布局

发布时间:2022-09-04 12:51:45 所属栏目:MySql教程 来源:互联网
导读:何为MMM? MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理Mysql Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时
  何为MMM?
  MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理Mysql Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡
 
  本案例环境使用五台服务器模拟搭建

                主机                         操作系统                             IP地址                          
              master1                    CentOS7                        192.168.195.128
              master2                    CentOS7                        192.168.195.137
              slave1                       CentOS7                        192.168.195.140
              slave2                       CentOS7                        192.168.195.141
            monitor                       CentOS7                        192.168.195.142
  案例实施
  1,首先配置ALI云源,然后安装epel-release源。
  CentOS默认没有mysql-mmm软件包,官方推荐使用epel源,五台主机都要安装eperl源和MMM
  service firewalld stop
  setenforce 0
  wget -0 /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo         //使用阿里云提供的yum源
  yum -y install epel-release
  yum clean all && yum makecache
 
  2,搭建mysql多主多从模式
  (1)在master1,master2,slave1,slave2这四台主机上在线安装mariadb(免费社区版的mysql)
  yum -y install mariadb-server mariadb
 
  systemctl start mariadb
 
  (2)修改配置文件my.cnf
  首先修改master1主配置文件
  vi /etc/my.cnf    (9dd删掉[mysqld]标签之前的内容,重新插入下面的配置)
  [mysqld]
  log_error=/var/lib/mysql/mysql.err                                //开启错误日志功能
  log=/var/lib/mysql/mysql_log.log      //开启一般日志功能
  log_slow_queries=/var/lib/mysql_slow_queris.log                  //开启慢日志功能
  binlog-ignore-db=mysql,information_schema               //不需要同步的数据库名称
  character_set_server=utf8        //设置默认的字符集为utf-8
  log_bin=mysql_bin                       //开启二进制日志,用于主从数据复制
  server_id=1                  //每台server_id的值不能相同         
  log_slave_updates=true             //此数据库宕机,备用数据库接管
  sync_binlog=1
  auto_increment_increment=2       //字段一次递增2
  auto_increment_offset=1               //自增字段的起始值:1,3,5,7.........等奇数ID
 
  systemctl restart mariadb
  netstat -anpt | grep 3306
 
  tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      5029/mysqld
 
  没有问题后,把配置文件my.cnf复制到其他3台数据库服务器上并启动服务器
  每台mysql主机的server_id参数不能相同,其他配置文件参数相同
 
  scp /etc/my.cnf root@192.168.195.137:/etc/
 
  scp /etc/my.cnf root@192.168.195.140:/etc/
  scp /etc/my.cnf root@192.168.195.141:/etc/
 
  
 
  注:配置文件中的server_id参数不能相同,需要修改。第二台server_id=2 第三台3  第四台4
  (3)配置Master-Master主主复制----两台主服务器互相复制
  首先进入mysql查看log-bin日志和pos值的位置(在授权的时候要随时更新position位置变化)
  在master1上
  MariaDB [(none)]> show master status;
  +------------------+----------+--------------+--------------------------+
  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         |
  +------------------+----------+--------------+--------------------------+
  | mysql_bin.000003 |      411 |              | mysql,information_schema |
  +------------------+----------+--------------+--------------------------+
  1 row in set (0.00 sec)
 
  在master2上
  MariaDB [(none)]> show master status;
  +------------------+----------+--------------+--------------------------+
  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB         |
  +------------------+----------+--------------+--------------------------+
  | mysql_bin.000004 |      491 |              | mysql,information_schema |
  +------------------+----------+--------------+--------------------------+
  1 row in set (0.00 sec)
 
  master1,master2互相提升访问权限
  注意:在master1上要指定master2上的日志文件名和位置参数。在m2上要反过来指定m1的。在授权的时候要随时查看

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读