【DBA专属】mysql-------->>>MMM高可用集群架构

Mysql---MMM高可用集群架构

目录

MMM安装部署

环境配置:(所有主机配置)

1、主机信息

2、关闭防火墙

3、同步时区

4、配置主机解析文件

5、配置ssh免密登录

6、所有机器安装epel源

数据库配置:

【所有数据库均做的配置】

1、安装四台数据库并修改密码

2、修改数据库配置文件/etc/my.cnf

3、启动服务

【主库1和备用主库2配置】

设置主库1和备用主库互为主从

1.查看日志文件

2.互相授权从用户

3.都关闭从

4.都设置为主库

5.创建库互相验证

【从库1和从库2配置】

从库1和从库2都设为主库1的从库

1.都关闭从stop slave;

2.都设置成主1的从库

3.开启从start slave;

4.查看状态show slave status\G

5.创建库互相验证

【高可用配置】

所有数据库配置:【huyang1/2/3/4】

1.在所有数据库授权使monitor可以访问

2.所有主机安装

3. 所有主机修改配置文件

4.所有服务器修改角色和配置文件里对应上

5.所有数据库启动mysql agent代理服务

【监视器配置】

1.修改监控主机配置文件

2.监视器启动监控

3.查看状态

4.查看监控状态

5.手动切换状态

【结果测试】

【停止主库的mariadb服务】

1.查看其他库变化

2.在备用主库2上新建库

【重启主库1】

1.查看其他库变化

【停止备用主库2的服务】

结果总结:


MMM安装部署

环境配置:(所有主机配置)

1、主机信息

作  用

Ip地址

主机名

主库1

192.168.59.137

huyang1

备用主库2

192.168.59.138

huyang2

从库1

192.168.59.140

huyang3

从库2

192.168.59.142

huyang4

监视器

192.168.59.144

huyang5

【DBA专属】mysql-------->>>MMM高可用集群架构_第1张图片

2、关闭防火墙

systemctl stop firewalld

iptables -F

setenforce 0

【DBA专属】mysql-------->>>MMM高可用集群架构_第2张图片

3、同步时区

【huyang1/2/3/4/5/】yum -y install ntp

【huyang1】systemctl  start  ntpd

【huyang1/2/3/4/5/】ntpdate  huyang1

【DBA专属】mysql-------->>>MMM高可用集群架构_第3张图片

4、配置主机解析文件

【huyang1】vim /etc/hosts

输入信息:192.168.59.137 huyang1

192.168.59.138 huyang2

192.168.59.140 huyang3

192.168.59.142 huyang4

192.168.59.144 huyang5

【huyang1】scp /etc/hosts  huyang1/2/3/4/5:/etc/hosts

【DBA专属】mysql-------->>>MMM高可用集群架构_第4张图片

5、配置ssh免密登录

【huyang1/2/3/4/5】

ssh-keygen -t rsa

ssh-copy-id -i .ssh/id_rsa.pub root@huyang5

【huyang5】cat /root/.ssh/authorized_keys

scp .ssh/authorized_keys root@huyang1:.ssh/

scp .ssh/authorized_keys root@huyang2:.ssh/

scp .ssh/authorized_keys root@huyang3:.ssh/

scp .ssh/authorized_keys root@huyang4:.ssh/

【huyang1】生成密钥对传给其他数据库,连接测试

ssh huyang1

ssh huyang2

ssh huyang3

ssh huyang4

ssh huyang5

因为第一次连接的时候需要输入yes

影响后期故障切换时,对于每个主机的SSH控制

【DBA专属】mysql-------->>>MMM高可用集群架构_第5张图片

6、所有机器安装epel源

yum -y install epel-release

【DBA专属】mysql-------->>>MMM高可用集群架构_第6张图片

数据库配置:

【所有数据库均做的配置】

1、安装四台数据库并修改密码

yum -y install mariadb mariadb-server mariadb-devel

systemctl start mariadb

mysqladmin -u root password 123456

【DBA专属】mysql-------->>>MMM高可用集群架构_第7张图片

2、修改数据库配置文件/etc/my.cnf

vim /etc/my.cnf

主库1:

server-id=1

log-bin=mysql-bin

log-slave-updates=true

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

备用主库2:

server-id=2

log-bin=mysql-bin

log-slave-updates=true

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

从库1:

server-id=3

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

从库2:

server-id=4

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

【DBA专属】mysql-------->>>MMM高可用集群架构_第8张图片

3、启动服务

重启服务:systemctl restart mariadb

登录:mysqlmysql -uroot -p123456

【DBA专属】mysql-------->>>MMM高可用集群架构_第9张图片

【主库1和备用主库2配置】

设置主库1和备用主库互为主从

1.查看日志文件

show master status

【DBA专属】mysql-------->>>MMM高可用集群架构_第10张图片

2.互相授权从用户

【huyang1】grant replication slave on *.* to

'replication'@'192.168.59.%' identified by '123456';

flush privileges;

【huyang2】grant replication slave on *.* to

'replication'@'192.168.59.%' identified by '123456';

flush privileges;

3.都关闭从

stop slave;

【DBA专属】mysql-------->>>MMM高可用集群架构_第11张图片

4.都设置为主库

【huyang1】change master to

master_host='192.168.59.138',master_user='replication',master_password='123456',master_log_file='master-bin.000003',master_log_pos=245;

【huyang2】change master to

master_host='192.168.59.137',master_user='replication',master_password='123456',master_log_file='master-bin.000001',master_log_pos=345;

开启从start slave;

查看状态show slave status\G

【DBA专属】mysql-------->>>MMM高可用集群架构_第12张图片

5.创建库互相验证

create database huyang1

show databases;

【DBA专属】mysql-------->>>MMM高可用集群架构_第13张图片

【从库1和从库2配置】

从库1和从库2都设为主库1的从库

1.都关闭从stop slave;

2.都设置成主1的从库

change master to

master_host='192.168.59.137',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;

3.开启从start slave;

4.查看状态show slave status\G

【DBA专属】mysql-------->>>MMM高可用集群架构_第14张图片

5.创建库互相验证

create database HUYANG1

show databases;

【DBA专属】mysql-------->>>MMM高可用集群架构_第15张图片

【高可用配置】

所有数据库配置:【huyang1/2/3/4】

1.在所有数据库授权使monitor可以访问

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

super:超级权限

replication client:客户端复制管理权限

process on:进程管理

【DBA专属】mysql-------->>>MMM高可用集群架构_第16张图片

2.所有主机安装

yum -y install mysql-mmm*

【DBA专属】mysql-------->>>MMM高可用集群架构_第17张图片

3. 所有主机修改配置文件

vim /etc/mysql-mmm/mmm_common.conf

cluster_interface       ens33  网卡

replication_user        replication  复制用户

replication_password    123456  复制用户的密码

agent_user              mmm_agent  管理用户

agent_password          123456  管理用户的密码

设置的管理用户

详细配置如下图:

【DBA专属】mysql-------->>>MMM高可用集群架构_第18张图片

4.所有服务器修改角色和配置文件里对应上

 vim /etc/mysql-mmm/mmm_agent.conf

分别改为huyang1、huyang2、huyang3、huyang4

【DBA专属】mysql-------->>>MMM高可用集群架构_第19张图片

5.所有数据库启动mysql agent代理服务

 systemctl start mysql-mmm-agent

【DBA专属】mysql-------->>>MMM高可用集群架构_第20张图片

【监视器配置】

1.修改监控主机配置文件

vim /etc/mysql-mmm/mmm_mon.conf

ping_ips  后面跟上所有服务器的真实ip

   monitor_user        mmm_agent  管理用户

    monitor_password    123456授权账户和密码

详细配置如下图:

【DBA专属】mysql-------->>>MMM高可用集群架构_第21张图片

2.监视器启动监控

systemctl start mysql-mmm-monitor

3.查看状态

mmm_control show

4.查看监控状态

mmm_control checks all

【DBA专属】mysql-------->>>MMM高可用集群架构_第22张图片

5.手动切换状态

mmm_control move_role writer huyang1

【DBA专属】mysql-------->>>MMM高可用集群架构_第23张图片

【结果测试】

【停止主库的mariadb服务】

systemctl stop mariadb

【DBA专属】mysql-------->>>MMM高可用集群架构_第24张图片

1.查看其他库变化

【监视器】mmm_control show

vip地址:192.168.59.143由主库变到了备用主库2上

【DBA专属】mysql-------->>>MMM高可用集群架构_第25张图片

【huyang3/4】show slave status\G;

【DBA专属】mysql-------->>>MMM高可用集群架构_第26张图片

【huyang2】show slave status\G;

【DBA专属】mysql-------->>>MMM高可用集群架构_第27张图片

2.在备用主库2上新建库

Create database huyang1

以下图为例:

【DBA专属】mysql-------->>>MMM高可用集群架构_第28张图片

可以发现备用主库2虽然新建了库huyang1,但是从库1和从库2没有发生变化

【重启主库1】

【huyang1】systemctl start mariadb

【DBA专属】mysql-------->>>MMM高可用集群架构_第29张图片

1.查看其他库变化

【监视器变化】mmm_control show

vip地址:没有变化

【DBA专属】mysql-------->>>MMM高可用集群架构_第30张图片

【huyang3/4】show slave status\G;

重新连接上了主库1

【DBA专属】mysql-------->>>MMM高可用集群架构_第31张图片

【huyang2】show slave status\G;

【DBA专属】mysql-------->>>MMM高可用集群架构_第32张图片

【停止备用主库2的服务】

【huyang2】systemctl start mariadb

【DBA专属】mysql-------->>>MMM高可用集群架构_第33张图片

【监视器变化】mmm_control show

vip地址:192.168.59.143由主库变到了主库1上

【DBA专属】mysql-------->>>MMM高可用集群架构_第34张图片

【huyang3/4】show slave status\G;

【DBA专属】mysql-------->>>MMM高可用集群架构_第35张图片

【huyang1/3/4】show databases;

可以发现当初在备用主库2上新建的库huyang1,此时出现在了【huayng1/3/4】数据库内

【DBA专属】mysql-------->>>MMM高可用集群架构_第36张图片

结果总结:

1.在切换主从的过程中查看结果较慢;

2.当第一个主服务停止之后,第二个服务器会成为主,但是查看状态会报错,因为一开始指定的就是第一个服务器;

3.虽然在主库1宕机之后,备用主库2和从库3从库4明面上没有产生主从复制的效果,但是在主库1恢复之后,手动停止备用主库2的服务,vip会将之前在备用主库2上的产生的数据,转移给主库1,并复制到从库1和从库2上,以保证数据的同步,这就是mysql---MMM高可用集群架构的意义!

你可能感兴趣的:(dba,mysql,架构)