90主 <----------> 91主
|
|
|
------------------------------
| |
| |
| |
92从 93从
systemctl stop firewalld.service ;systemctl disable firewalld.service ;setenforce 0
MySQL-mmm
一、配置主从同步结构
1)配置主从同步
90: 用户配置 启用 binlog 日志 重启数据库服务 指定主数据库服务器信息
91: 用户配置 启用 binlog 日志 允许级联复制 重启数据库服务 指定主数据库服务器信息
[root@pc91 ~]# vim /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
server_id=91
log-bin=master91
binlog_format="mixed"
log_slave_updates
-> grant replication slave on *.* to slaveuser@"%" identified by '123456';
-> change master to
-> master_host="主服务器 ip 地址",
-> master_user="授权用户名",
-> master_password="授权用户密码",
-> master_log_file="主服务器正在使用的 binlog 日志",
-> master_log_pos=主服务当前的偏移量;
#指定主服务器
2)配置一主多从结构
92: 指定server_id 重启数据库服务 指定主数据库服务器信息
93: 指定server_id 重启数据库服务 指定主数据库服务器信息
[root@pc92 ~]# vim /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
server_id=92
-> change master to
-> master_host="主服务器 ip 地址",
-> master_user="授权用户名",
-> master_password="授权用户密码",
-> master_log_file="主服务器正在使用的 binlog 日志",
-> master_log_pos=主服务当前的偏移量;
#指定主服务器
mysql> show master status\G;
mysql> start slave;
mysql> show slave status\G;
3)在客户端测试主从同步配置
a、
在90主机上添加访问数据的用户guser,能够在其他3台主机上也有相同的授权用户
-> grant select on gamedb.* to guser@'%' identified by '123456';
b、
在客户端主机94 使用授权用户guser 连接14服务器,产生的新数据在他3台主机上也有
-> select user,host from mysql.user where user="guser";
二、配置mysql-mmm
1)mysql-mmm 介绍
监控服务: 运行在管理节点 用来监控数据节点
代理服务: 运行在数据节点 用来提供系统给监控主机
2)在所有主机上安装mysql-mmm软件(90-94)
#yum -y install perl-*
#unzip mysql-mmm.zip
#cd mysql-mmm
#make install
#ls /etc/mysql-mmm/*.conf
3)修改配置文件
a 修改数据节点代理服务配置文件 (90 91 92 93)
vim /etc/mysql-mmm/mmm_agent.conf
include mmm_command.conf
this 自定义名称
b 修改管理节点监控服务的配置文件 (94)
vim /etc/mysql-mmm/mmm_mon.conf
>
include mmm_common.conf
ip 192.168.4.94 //本机IP
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.90, 192.168.4.91, 192.168.4.92, 192.168.4.93 //监控的服务器IP
monitor_user monitor //监控状态时使用的用户名
monitor_password 123456 //监控状态时使用的用户密码
>
c 修改公共文件
vim /etc/mysql-mmm/mmm_command.conf
>
active_master_role writer
cluster_interface eth0
pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/
replication_user slaveuser //设置主从同步的用户
replication_password 123456 //设置主从同步用户密码
agent_user agent //控制数据库用户
agent_password 123456 //控制数据库用户密码
ip 192.168.4.90
mode master
peer db91 //指定另外一台主服务器
ip 192.168.4.91
mode master
peer db90
ip 192.168.4.92
mode slave
ip 192.168.4.93
mode slave
hosts db90, db91
ips 192.168.4.100
mode exclusive
hosts db92, db93
ips 192.168.4.101, 192.168.0.102
mode balanced
>
d 根据配置文件的设置,在数据节点主机上添加对应授权用户
-> grant replication client on *.* to monitor@'%' identified by '123456';
-> grant replication client,process,super on *.* to agent@'%' identified by '123456';
-> select user,host from mysql.user where user in ("monitor","agent");
4)启动服务
a 启动数据节点主机上代理服务: mmm_agent
安装服务运行依赖的软件包 安装获取vip地址软件包arp_net 启动服务
[root@pc90 ~]# /etc/init.d/mysql-mmm-agent start
[root@pc90 ~]# netstat -pantu | grep 9989
b 启动管理节点主机上监控服务:mmm_mond
安装服务运行依赖的软件包 启动服务
[root@pc94 ~]# /etc/init.d/mysql-mmm-monitor start
[root@pc94 ~]# netstat -pantu | grep 9988
三、验证mysql-mmm配置
a 查看数据库节点上的数据库服务是运行的
[root@pc94 ~]# systemctl status mysqld
b IO线程 和 SQL 线程都是Yes状态
mysql> show slave status\G;
c 在监控服务器本机登录管理界面查看,查看数据库服务器的状态
[root@pc94 ~]# 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()?)
db90(192.168.4.90) master/AWAITING_RECOVERY. Roles:
db91(192.168.4.91) master/AWAITING_RECOVERY. Roles:
db92(192.168.4.92) slave/AWAITING_RECOVERY. Roles:
db93(192.168.4.93) slave/AWAITING_RECOVERY. Roles:
[root@pc94 ~]# mmm_control set_online db90
[root@pc94 ~]# 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()?)
db90(192.168.4.90) master/ONLINE. Roles: writer(192.168.4.100)
db91(192.168.4.91) master/ONLINE. Roles:
db92(192.168.4.92) slave/ONLINE. Roles: reader(192.168.0.102)
db93(192.168.4.93) slave/ONLINE. Roles: reader(192.168.4.101)
[root@pc94 ~]# 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()?)
db90(192.168.4.90) master/ONLINE. Roles: writer(192.168.4.100)
db91(192.168.4.91) master/HARD_OFFLINE. Roles:
db92(192.168.4.92) slave/ONLINE. Roles: reader(192.168.0.102)
db93(192.168.4.93) slave/ONLINE. Roles: reader(192.168.4.101)