RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
MySQL中的MMM集群部署是怎样的

MySQL中的MMM集群部署是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联专注于企业成都全网营销推广、网站重做改版、鄂伦春网站定制设计、自适应品牌网站建设、H5网站设计商城开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为鄂伦春等各大城市提供网站开发制作服务。

MySQL-MMM集群部署

MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。

mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。

mmm_agentd:运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。

mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令。

实验拓扑图

MySQL中的MMM集群部署是怎样的

实验环境准备

五台虚拟机器 IP 主机名分别为:

192.168.4.10主机名:mysql10 

192.168.4.11主机名:mysql11 

192.168.4.12主机名:mysql12 

192.168.4.13主机名:mysql13 

192.168.4.120主机名:client120 

每台虚拟机关闭防火墙和SELinux的限制 以方便实验

10-13 安装mysql数据库服务

一,配置主从同步结构

1.1 配置主主结构 10 / 11

共同配置

虚拟机10上:用户授权  启动binlog日志  重启数据库服务 管理员登录指定主库信息

mysql> grant replication slave on *.* to slaveuser@"%" identified by '123456';

[root@mysql10 ~]# vim /etc/my.cnf

[mysqld]

server_id=10

log-bin=master10

binlog_format="mixed"

[root@mysql10 ~]# systemctl restart mysqld

mysql> show master status;

| master10.000001 |      154 |

mysql> change master to master_host="192.168.4.11", master_user="slaveuser",master_password="123456",master_log_file="master11.000001",master_log_pos=154;

mysql> start slave;

mysql> show slave status\G;

Relay_Master_Log_File: master13.000001

    Slave_IO_Running: Yes

   Slave_SQL_Running: Yes

虚拟机11上:用户授权  启用binlog日志 并允许级联复制  重启数据库服务  管理员登录指定主库信息

mysql> grant replication slave on *.* to slaveuser@"%" identified by '123456';

[root@mysql11 mysql]# vim /etc/my.cnf

[mysqld]

server_id=11

log-bin=master11

binlog_format="mixed"

log_slave_updates

[root@mysql11 mysql]# systemctl stop mysqld

[root@mysql11 mysql]# systemctl start  mysqld

mysql> show master status;

| master11.000001 |      154 |

mysql> change master to master_host="192.168.4.10", master_user="slaveuser",master_password="123456",master_log_file="master10.000001",master_log_pos=154;

mysql> start slave;

mysql> show slave status\G;

Relay_Master_Log_File: master10.000001

    Slave_IO_Running: Yes

   Slave_SQL_Running: Yes

配置一主多从结构(把12,13分别配置11的从库)

虚拟机12上

[root@mysql12 ~]# vim /etc/my.cnf

[mysqld]

server_id=12

[root@mysql12 ~]# systemctl stop mysqld

[root@mysql12 ~]# systemctl start  mysqld

mysql> change master to master_host="192.168.4.11", master_user="slaveuser",master_password="123456",master_log_file="master11.000001",master_log_pos=154;

mysql> start slave;

mysql> show slave status\G;

    Slave_IO_Running: Yes

   Slave_SQL_Running: Yes

虚拟机13上

[root@mysql13 ~]#vim /etc/my.cnf

[mysqld]

server_id=13

[root@mysql13 ~]#systemctl stop mysqld

[root@mysql13 ~]#systemctl start  mysqld

mysql> change master to master_host="192.168.4.11", master_user="slaveuser",master_password="123456",master_log_file="master11.000001",master_log_pos=154;

mysql> start slave;

mysql> show slave status\G;

    Slave_IO_Running: Yes

   Slave_SQL_Running: Yes

虚拟机10上:

在10主机上添加访问用户guser 能够在其他3台主机上也有相同的授权用户

mysql> create database gamedb;

mysql> grant all on gamedb.* to guser@"%" identified by "123456";

在客户端245 使用授权用户guser 连接10服务器 产生的新数据放在其他3台主机上也有

[root@room1pc32 桌面]# mysql -h292.168.4.10 -uguser -p123456

MySQL [(none)]> create table gamedb.a(id int);

MySQL [(none)]> insert into gamedb.a values(100);

MySQL [(none)]> insert into gamedb.a values(100);

MySQL [(none)]> insert into gamedb.a values(100);

二,配置mysql-mmm

mysql-mmm介绍:

监控服务: 运行在管理节点上 用来监控数据节点

代理服务: 运行在数据节点 用来提供系统给监控主机

1)在所有主机上安装mysql-mmm软件 (10-13,120)

yum -y install perl-*

tar -zxvf mysql-mmm.zip

unzip mysql-mmm.zip 

cd mysql-mmm/

tar -zxvf mysql-mmm-2.2.1.tar.gz 

cd mysql-mmm-2.2.1/

make install

ls /etc/mysql-mmm/

mmm_agent.conf  mmm_common.conf  mmm_mon.conf  mmm_tools.conf

2)修改配置文件

a.修改数据节点代理服务配置文件(10 11 12 13)

[root@mysql10 ~]# vim /etc/mysql-mmm/mmm_agent.conf 

include mmm_common.conf

this db10#自定义名称

[root@mysql11 ~]# vim /etc/mysql-mmm/mmm_agent.conf 

include mmm_common.conf

this db11

[root@mysql12 ~]# vim /etc/mysql-mmm/mmm_agent.conf 

include mmm_common.conf

this db12

[root@mysql13 ~]# vim /etc/mysql-mmm/mmm_agent.conf 

include mmm_common.conf

this db13

b.修改管理节点监控服务的配置文件(120)

[root@client120 ~]# vim /etc/mysql-mmm/mmm_mon.conf 

include mmm_common.conf

ip              192.168.4.120

pid_path                                /var/run/mmm_mond.pid

bin_path                                /usr/lib/mysql-mmm/

status_path                             /var/lib/misc/mmm_mond.status

ping_ips        192.168.4.10, 192.168.4.11, 192.168.4.12, 192.168.4.13

monitor_user                    monitor#监视用户名

monitor_password                123456#监视用户密码

debug 00不显示调试信息1显示调试信息

c.修改公共文件(10,11,12,13,120)

vim /etc/mysql-mmm/mmm_common.conf 

10     replication_user        slaveuser#代理用户

11     replication_password    123456

12 

13         agent_user      agent#数据库

14         agent_password  123456

17 #修改四台服务器

18         ip      192.168.4.10

19         mode    master

20         peer    db11

21

22 

23

24         ip      192.168.4.11

25         mode    master

26         peer    db10

27

28 

29

30         ip      192.168.4.12

31         mode    slave

32

33 

34

35         ip      192.168.4.13

36         mode    slave

37

39

40         hosts   db10, db11

41         ips     192.168.4.100

42         mode    exclusive

43

44 

45

46         hosts   db12, db13

47         ips     192.168.4.102, 192.168.4.105

48         mode    balanced

49

d.根据配置文件的设置,在数据节点上添加对应的授权用户

monitor

agent

3)在虚拟机10上 授权

mysql> grant replication client on *.* to monitor@"%" identified by "123456";

mysql> grant replication client,process,super on *.* to agent@"%" identified by "123456";

4)其他三台测试

mysql> select user,host from mysql.user where user in ('agent','monitor');

三,启动服务

a.启动数据节点主机代理服务(10-13):安装服务运行依赖软件包 安装获取vip地址软件包 启动服务

cd /root/mysql-mmm/

tar -zxf Algorithm-Diff-1.1902.tar.gz

cd Algorithm-Diff-1.1902/

perl Makefile.PL

make

make install

cd /root/mysql-mmm/

tar -zxf Proc-Daemon-0.03.tar.gz

cd Proc-Daemon-0.03/

perl Makefile.PL

make

make install

cd /root/mysql-mmm/

rpm -ivh --nodeps perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

/etc/init.d/mysql-mmm-agent start

/etc/init.d/mysql-mmm-agent status

netstat -pantu | grep mmm

netstat -pantu | grep :9989

tcp        0      0 192.168.4.11:9989       0.0.0.0:*               LISTEN      10059/mmm_agentd    

yum -y install gcc gcc-c++

cd /root/mysql-mmm/

gunzip Net-ARP-1.0.8.tgz

tar -xf Net-ARP-1.0.8.tar 

cd Net-ARP-1.0.8/

perl Makefile.PL

make

make install

b.启动管理节点主机监控服务 (120):安装服务运行软件包 启动服务

cd /root/mysql-mmm/

tar -zxf Algorithm-Diff-1.1902.tar.gz

cd Algorithm-Diff-1.1902/

perl Makefile.PL

make

make install

cd /root/mysql-mmm/

tar -zxf Proc-Daemon-0.03.tar.gz

cd Proc-Daemon-0.03/

perl Makefile.PL

make

make install

cd /root/mysql-mmm/

rpm -ivh --nodeps perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

/etc/init.d/mysql-mmm-monitor start

/etc/init.d/mysql-mmm-monitor status

netstat -pantu | grep mmm_mond

netstat -pantu | grep 9988

tcp        0      0 192.168.4.120:9988       0.0.0.0:*               LISTEN      30047/mmm_mond  

四,验证mysql-mmm的配置

a 查看数据库节点上的数据库服务是运行的

IO线程和SQ线程 是否OK

[root@mysql12 ~]# mysql -uroot -p123456 -e"show slave status\G;" | grep -i yes

mysql: [Warning] Using a password on the command line interface can be insecure.

    Slave_IO_Running: Yes

   Slave_SQL_Running: Yes

b.在监控服务器本机登录管理界面查看,查看数据库服务状态

[root@client120 ~]# mmm_control show

defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.

(Maybe you should just omit the defined()?)

 db10(192.168.4.10) master/AWAITING_RECOVERY. Roles: 

 db11(192.168.4.11) master/AWAITING_RECOVERY. Roles: 

 db12(192.168.4.12) slave/AWAITING_RECOVERY. Roles: 

 db13(192.168.4.13) slave/AWAITING_RECOVERY. Roles: 

[root@client120  ~]# mmm_control set_online db10

[root@client120  ~]# mmm_control set_online db11

[root@client120  ~]# mmm_control set_online db12

[root@client120  ~]# mmm_control set_online db13

[root@client120  ~]# mmm_control show

defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.

(Maybe you should just omit the defined()?)

 db10(192.168.4.10) master/ONLINE. Roles: writer(192.168.4.100)

 db11(192.168.4.11) master/ONLINE. Roles:

 db12(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.105)

 db13(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.102)

c.在数据接待年本机查看是否获取到vip地址

[root@client120  ~]# ping -c 2 192.168.4.100

PING 192.168.4.100 (192.168.4.100) 56(84) bytes of data.

64 bytes from 192.168.4.100: icmp_seq=1 ttl=64 time=0.367 ms

64 bytes from 192.168.4.100: icmp_seq=2 ttl=64 time=0.383 ms

[root@mysql10 Net-ARP-1.0.8]# ip addr show | grep 192.168.4.

   inet 192.168.4.10/24 brd 192.168.4.255 scope global eth0

   inet 192.168.4.100/32 scope global eth0

[root@mysql12 ~]# ip addr show | grep 192.168.4.

   inet 192.168.4.12/24 brd 192.168.4.255 scope global eth0

   inet 192.168.4.105/32 scope global eth0

[root@mysql13 ~]#  ip addr show | grep 192.168.4.

   inet 192.168.4.13/24 brd 192.168.4.255 scope global eth0

   inet 192.168.4.102/32 scope global eth0

d.客户端连接VIP访问数据库服务

[root@room1pc32 桌面]# mysql -h292.168.4.100 -uguser -p123456

MySQL [(none)]> select @@hostname;

+---------------------+

| @@hostname |

+---------------------+

| mysql10            |

+---------------------+

模拟 虚拟机10挂掉

[root@mysql10 ~]# systemctl stop mysqld

[root@client120  ~]# mmm_control show

defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.

(Maybe you should just omit the defined()?)

 db10(192.168.4.10) master/HARD_OFFLINE. Roles: 

 db11(192.168.4.11) master/ONLINE. Roles: writer(192.168.4.100)

 db12(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.105)

 db13(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.102)

[root@mysql13 ~]# ip addr show | grep 192.168.4

   inet 192.168.4.11/24 brd 192.168.4.255 scope global eth0

   inet 192.168.4.100/32 scope global eth0

MySQL [(none)]> select @@hostname;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    1900

Current database: *** NONE ***

+---------------------+

| @@hostname |

+---------------------+

  | mysql11            |

+---------------------+

1 row in set (0.00 sec)

模拟 虚拟机10 故障修好了

[root@mysql10 ~]# systemctl start mysqld

[root@client120  ~]# mmm_control show

defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.

(Maybe you should just omit the defined()?)

 db10(192.168.4.10) master/AWAITING_RECOVERY. Roles

 db11(192.168.4.11) master/ONLINE. Roles: writer(192.168.4.100): 

 db12(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.105)

 db13(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.102)

[root@client120  ~]# mmm_control set_online db10

[root@client120  ~]# mmm_control show

defined(@array) is deprecated at /usr/share/perl5/vendor_perl/Log/Log4perl/Config.pm line 863.

(Maybe you should just omit the defined()?)

 db10(192.168.4.10) master/ONLINE. Roles: 

 db11(192.168.4.11) master/ONLINE. Roles: writer(192.168.4.100)

 db12(192.168.4.12) slave/ONLINE. Roles: reader(192.168.4.105)

 db13(192.168.4.13) slave/ONLINE. Roles: reader(192.168.4.102)

10不会立即占用VIP地址 当11 出现故障时 10 会重新获得VIP地址

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


名称栏目:MySQL中的MMM集群部署是怎样的
文章来源:http://scyingshan.cn/article/pcgsjc.html