标签:sch fse schema 高可用 最新 同步 授权 upd fail
MMM简介:Mmm高可用架构说明?:
mmm_mon?? 负责所有的监控工作的监控守护进程,决定节点的移除等等
mmm_agent? ? 运行在mysql服务器上的代理守护进程,通过简单远程服务集提供给监 控节点
mmm_control??通过命令行管理mmm_mond进程
mysql-mmm 监管端会提供多个虚拟IP,包括一个可写,多个可读,这些IP会绑定在可用mysql上,当一台发生宕机时,监管会将VIP迁移至其他mysql上
实验拓扑:
实验环境
主机 | 操作系统 | IP地址 | 虚拟IP |
---|---|---|---|
mysql- master1(db1) | CentOS-7-x86_64 | 192.168.37.128 | 192.168.37.150 |
mysql- master2(db2) | CentOS-7-x86_64 | 192.168.37.130 | 192.168.37.150 |
mysql- slave1(db3) | CentOS-7-x86_64 | 192.168.37.131 | 192.168.37.160 |
mysql- slave2(db4) | CentOS-7-x86_64 | 192.168.37.132 | 192.168.37.160 |
monitor | CentOS-7-x86_64 | 192.168.37.1326 | --- |
实验过程:
一、主从服务器安装mariadb
1、配置ALL源(yum源):
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2、配置epel源
yum -y install epel-release
3、加载元数据缓存
yum clean all && yum makecache
4、安装mariadb
yum install mariadb-sever mariadb -y
5、关闭防火墙、安全功能
systemctl stop firewalld.service
setenforce 0
二、修改配置文件
6、vim /etc/my.cnf
[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 #mysql,information_schema 不生成二进制日志文件
character_set_server=utf8 #字符集
log_bin=mysql_bin #开启二进制文件
server_id=1 #进行修改
log_slave_updates=true #同步开启
sync_binlog=1 #同步二进制日志,1设为安全值
auto_increment_increment=2 #自增列,起点为1,增量为2
auto_increment_offset=1
7、配置文件复制到其他三台服务器
scp /etc/my.cnf root@192.168.37.130:/etc/
scp /etc/my.cnf root@192.168.37.131:/etc/
scp /etc/my.cnf root@192.168.37.131:/etc/
#复制时需要输入对方的root密码,并修改其他三台服务器的server-id
8、开启mariadb服务
systemctl start mariadb.service
三、主服务器授权同步
9、在master1上授权
grant replication slave on . to ‘replication‘@‘192.168.37.%‘ identified by ‘123456‘;
show master status; #查看master2 的日志及位置参数
change master to master_host=‘192.168.37.130‘,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql_bin.000003‘,master_log_pos=245;
start slave; #开启同步
show slave status\G ; #查看master1同步情况
10、在master2上授权
grant replication slave on . to ‘replication‘@‘192.168.37.%‘ identified by ‘123456‘;
show master status; #查看master1的日志及位置参数
change master to master_host=‘192.168.37.128‘,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql_bin.000003‘,master_log_pos=410;
start slave; #开启同步
show slave status\G ; #查看master2同步情况
四、从服务器同步主服务器
11、两台从服务器执行同样操作:
change master to master_host=‘192.168.37.128‘,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql_bin.000003‘,master_log_pos=410;
#注意要同步的主服务器的日志及位置参数变化,使用最新的。
12、测试四台服务器同步:在master1中新建数据库school,查看其它服务器是否也存在数据库school
测试成功!
五、安装MMM高群集(四台服务器)
13、yum安装mmm
yum install mysql-mmm* -y
14、编辑配置文件
vim /etc/mysql-mmm/mmm_common.conf
<host default>
cluster_interface ens33 #网卡
pid_path /run/mysql-mmm-agent.pid
bin_path /usr/libexec/mysql-mmm/
replication_user replication #授权的mysql用户
replication_password 123456 #授权用户密码
agent_user mmm_agent #代理用户
agent_password 123456
</host>
<host db1>
ip 192.168.37.128
mode master
peer db2
</host><host db2>
ip 192.168.37.130
mode master
peer db1
</host><host db3>
ip 192.168.37.131
mode slave
</host><host db4>
ip 192.168.37.132
mode slave
</host><role writer>
hosts db1, db2
ips 192.168.37.150
mode exclusive
</role><role reader>
hosts db3, db4
ips 192.168.37.160, 192.168.100.37.170
mode balanced
15、然后将配置复制给其它服务器,复制完回车后,输入对方root密码
scp mmm_common.conf root@192.168.37.130:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.37.131:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.37.132:/etc/mysql-mmm/
六、安装monitor
16、配置ALL源(yum源):
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
17、配置epel源
yum -y install epel-release
18、加载元数据缓存
yum clean all && yum makecache
19、yum安装mmm
yum install mysql-mmm* -y
20、在master1上复制给monitor
scp mmm_common.conf root@192.168.37.136:/etc/mysql-mmm/
21、编辑配置文件
vim /etc/mysql-mmm/ mmm_mon.conf
22、在所有数据库上为mmm_agent授权
grant super,replication client,process on . to ‘mmm_agent‘@‘192.168.37.%‘ identified by ‘123456‘;
23、在所有数据库上为mmm_monitor授权
grant replication client on . to ‘mmm_monitor‘@‘192.168.37.%‘ identified by ‘123456‘;
flush privileges; #授权后刷新权限
24、在所有服务器上修改mmm_agent.conf
vim /etc/mysql-mmm/mmm_agent.conf
this is db1/2/3/4
25、在所有服务器上启动mysql-mmm-agent
systemctl start mysql-mmm-agent.service #开启服务
systemctl enable mysql-mmm-agent.service #开机自启动
26、在monitor上启动监控服务
systemctl start mysql-mmm-monitor.service
systemctl stop firewalld.service
setenforce 0
27、查看各节点情况
mmm_control show
#如果不能连接 在master1上执行 mysql>flush privileges;
28、虚拟IP手动切换
mmm_control move_role writer db2 #虚拟IP转给db2
29、故障测试:
1)断掉主服务器sdb1,则虚拟IP会漂移到主服务器sdb2,但是如果sdb1恢复,不会抢占,只可以手动切换。
2)断掉从服务器sdb3,则虚拟IP会漂移到从服务器sdb4,如果sdb3恢复,则重新抢占。
这样,如果其中一台主服务器或者从服务器宕机,虚拟IP会漂移到另一台可用的服务器上,从而实现高可用群集。
标签:sch fse schema 高可用 最新 同步 授权 upd fail
原文地址:http://blog.51cto.com/13784264/2174494