mysql-mmm的搭建

一:准备环境,yum搭建mysql数据库

二:设置主主同步

三:设置主从同步

四:安装mmm(五台虚拟机都要装)

五:故障测试

一:准备环境

1、准备5台虚拟机

(m1)master01                192.168.80.10

(m2)master02                192.168.80.20

(从数据库)slave01         192.168.80.30

(从数据库)slave02         192.168.80.40

(monitor服务器)监控器  192.168.80.50

2、先让虚拟机联网,我这里用的是桥接模式

3、配置ALI云源,然后安装epel-release源。(5台虚拟机都配置ALI云源)

yum install wget -y

wget -O /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

yum -y install mariadb-server mariadb

service firewalld stop

setenforce 0

systemctl restart mariadb

systemctl start mariadb

4、修改m1主配置文件

vi /etc/my.cnf //在[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 //字符集

log_bin=mysql_bin //二进制日志

server_id=1 //本机的id,跟其他服务器不能重复

log_slave_updates //允许从服务器来校正时间

sync_binlog=1 //

auto_increment_increment=2 //自增长一次递增多少

auto_increment_offset=1 //自增长的起始值

systemctl restart mariadb

netstat -anpt | grep 3306 //可以看到3306端口被检测

5、没有问题后,在m1操作把配置文件复制到其它3台数据库服务器上并启动服务器

scp /etc/my.cnf root@192.168.80.20:/etc/

//把80.10的/etc/my.cnf用root身份传输到80.20的/etc/。记得去改server_id

根据提示输入yes,然后输入192.168.80.20的登录密码

依次类推,传给80.30和80.40

6、注意:配置文件中的server_id 要修改,手动去修改每台数据库的server_id,每台不一样

二:配置主主同步(m1和m2互相为主)

1、在m1上为m2授予从的权限,在m2上也要为m1授予从的权限

先在m1登录数据库

mysql //我是yum安装的数据库,一开始没有设置用户和密码,所以直接登录了

grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';

//注意:我准备的5台虚拟机都是80网段的,所以这里写的是允许所有80网段的。用户名为replication。密码为123456。

flush privileges; //刷新权限

上面两步没有问题后,在m2登录数据库,使用这条命令

show master status; //记录日志文件名称和位置值

再回到m1

change master to master_host='192.168.80.20',master_user='replication',master_password='123456',master_log_file='mysql_bin.000006',master_log_pos=1984;

//注意ip地址,用户名,密码,二进制日志序号,数值。不要写错了。

如果报下面的错误

先stop slave; 再用change命令。

start slave;

show slave status \G //看到这两处显示Yes就可以了

2、在m2上操作,(同理)

在m2登录数据库

mysql //登录数据库

grant replication slave on *.* to 'replication'@'192.168.80.%' identified by '123456';

flush privileges;

去m1的数据库查看

show master status;

再回到m2

change master to master_host='192.168.80.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000008',master_log_pos=2474;

start slave;

show slave status \G

3、建库测试主主同步

create database dba; //在m1上建个库,m2上可以看到

drop database dba; //在m2上删除,m1也显示删除成功,同步成功。

三:设置主从同步

1、在两台从(192.168.80.30和192.168.80.40)上做,注意日志文件和位置参数的改变。

让这两个从认m1(192.168.80.10)为主。

在m1的数据库

show master status;

在两个从数据库输入下面命令

change master to master_host='192.168.80.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000008',master_log_pos=2474;

start slave;

show slave status \G

2、测试主从、主主、同步 情况

建立数据库,然后测试同步情况

……

四:安装MMM

1、在所有服务器上安装-----注意,epel源要配置好

yum -y install mysql-mmm*

//安装了mysql-mmm-agent(代理端,所有人都要有)跟mysql-mmm-monitor(在监视器上)

2、安装结束后,对mmm进行配置

cd /etc/mysql-mmm/

vi mmm_common.conf //所有主机上都要配置,直接复制多份

active_master_role      writer (从数据库为reader,两个主数据库和监控器是writer)

……

<host default>

    cluster_interface       ens33

    ……

    replication_user        replication

    replication_password    123456

    agent_user              mmm_agent

    agent_password          123456

<host db1>

    ip      192.168.80.10

    mode    master

    peer    db2

</host>

<host db2>

    ip      192.168.80.20

    mode    master

    peer    db1

</host>

<host db3>

    ip      192.168.80.30

    mode    slave

</host>

<host db4>

    ip      192.168.80.40

    mode    slave

</host>

<role writer>

    hosts   db1, db2

    ips     192.168.80.110 //自己编写的地址,跟数据库在同一个网段就可以

    mode    exclusive

</role>

<role reader>

    hosts   db3, db4

    ips     192.168.80.130, 192.168.80.140 自己编写的地址,跟数据库在同一个网段就可以

    mode    balanced

</role>

:wq保存退出

3、把common.conf配置文件传给另外四台,注意我当前的位置

scp mmm_common.conf root@192.168.80.20:/etc/mysql-mmm/

scp mmm_common.conf root@192.168.80.30:/etc/mysql-mmm/

scp mmm_common.conf root@192.168.80.40:/etc/mysql-mmm/

scp mmm_common.conf root@192.168.80.50:/etc/mysql-mmm/

4、在monitor(监控器192.168.80.50)服务器上配置

cd /etc/mysql-mmm/ //改密码

vi mmm_mon.conf

<host default>

    monitor_user        mmm_monitor

    monitor_password    123456

</host>

5、在所有数据库上为mmm_agent授权

grant super, replication client, process on *.* to 'mmm_agent'@'192.168.80.%' identified by '123456';

6、在所有数据库上为mmm_moniter授权

grant replication client on *.* to 'mmm_monitor'@'192.168.80.%' identified by '123456';

flush privileges;

7、修改所有数据库的mmm_agent.conf

vi /etc/mysql-mmm/mmm_agent.conf

this db1 //根据规划进行逐一调整(192.168.80.10是db1,192.168.80.20是db2,192.168.80.30是db3,192.168.80.40是db4,跟之前的 mmm_common.conf配置文件对应上)

8、在所有数据库服务器上启动mysql-mmm-agent

systemctl start mysql-mmm-agent

systemctl enable mysql-mmm-agent

9、在monitor服务器上配置

vi mmm_mon.conf

……

 ping_ips            192.168.80.10,192.168.80.20,192.168.80.30,192.168.80.40 //数据库服务器地址

 auto_set_online     10 //间隔设置成10秒

……

systemctl start mysql-mmm-monitor   //启动mysql-mmm-monitor

 mmm_control show //查看各节点的情况

  db1(192.168.80.10) master/ONLINE. Roles: writer(192.168.80.110)

  db2(192.168.80.20) master/ONLINE. Roles:

  db3(192.168.80.30) slave/ONLINE. Roles: reader(192.168.80.140)

  db4(192.168.80.40) slave/ONLINE. Roles: reader(192.168.80.130)

mmm_control checks all //显示很多OK

手动切换vip绑定:mmm_control move_role writer db1 (实验期间不要手动切换)

五:故障测试

1、停止m1   systemctl stop mariadb

确认 虚拟地址 110 是否移动到 m2 上。注意:主不会抢占

mmm_control show

  db1(192.168.80.10) master/HARD_OFFLINE. Roles:

  db2(192.168.80.20) master/ONLINE. Roles: writer(192.168.80.110)

在m1服务器上为监控机地址授权登录

grant all on *.* to 'testdba'@'192.168.80.%' identified by '123456';

flush privileges;

2、在监控服务器上登录

监控器上要安装mariadb,不然会报错没有mysql命令
yum install mariadb

mysql -utestdba -p -h 192.168.80.110 //虚拟地址

创建数据,测试同步情况。

3、验证将从服务器停止一台,另一台将接管两个虚拟IP,以保证业务不停止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值