Centos 7 下基于mariadb -10.2.32级联复制搭建

背景:
之前完成了一主一从的 MariaDB 主从复制架构,但是有的时候,可能期望有一个后备的 MariaDB 节点,
只用作备份存储数据,不需要对外提供服务。为了实现该功能,我们可以在之前的一主一从架构上进行调整,
即将从节点Slave1(192.168.32.17)的二进制日志文件打开,然后给它配置一个远程同步数据用户,
接着使用一台新的服务器做为从服务器的Slave2,同步从服务器的数据即可

准备条件:
三台主机都安装了10.2.32-MariaDB 版本必须一样
三台主机
一台主服务器(192.168.6.129) master
一台级联从服务器(192.168.6.130) slave1
一台备用的从服务器(192.168.6.131) slave2
Reset slave all;
Stop slave;
Reset master
实验开始:

1.	在主服务器(192.168.6.129) 
配置 
vim /etc/my.cnf
[mysqld]
server-id=1
log-bin
mysql> grant replication slave on *.* to repluser@'192.168.6.%' identified by 'centos';
mysql>show master logs; 查看二进制文件

在这里插入图片描述

备份数据库
mysqldump -A --single-transaction --master-data=1  -F -uroot -p123456 > /data/all.sql

传送数据库备份文件到192.168.6.130 服务器上
scp /data/all.sql 192.168.6.130:/data/

2.	在级联从服务器上(192.168.6.130)
配置文件 vim /etc/my.cnf

server-id=2
log-bin
log_slave_updates   *非常重要的参数
read-only

重启数据库
Systemctl restart mariadb.server

修改 /data/all.sql 上的数据库备份文件

将CHANGE MASTER TO MASTER_LOG_FILE='Centos7-bin.000002', MASTER_LOG_POS=389; 修改成一下内容

vim /data/all.sql 
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='repluser',
MASTER_PASSWORD='centos',
MASTER_PORT=3306,
MASTER_LOG_FILE='Centos7-bin.000005',
MASTER_LOG_POS=389;  

导入修改好的数据库备份文件
mysql -uroot -p123456 < /data/all.sql

没启动start slave 之前

在这里插入图片描述
启动后
在这里插入图片描述

备份级联服务器上数据库
mysqldump -A --single-transaction --master-data=1  -F -uroot -p123456 > /data/all.sql
传送备份数据库文件给最后的服务器(192.168.6.131)

scp /data/all.sql 192.168.6.131:/data/


三:
在最后的服务器上(192.168.6.131)
修改配置文件 
Vim /etc/my.cnf
[mysqld]
server-id=3
read-only
重启数据库
Systemctl restart mariadb.server

修改 /data/all.sql 上的数据库备份文件

将CHANGE MASTER TO MASTER_LOG_FILE='Centos7-bin.000002', MASTER_LOG_POS=389; 修改成一下内容

vim /data/all.sql 
CHANGE MASTER TO
MASTER_HOST='级联从服务器IP ',
MASTER_USER='repluser',
MASTER_PASSWORD='centos',
MASTER_PORT=3306,
MASTER_LOG_FILE=' Centos7-bin.000005', MASTER_LOG_POS=389;  

导入修改好的数据库备份文件
mysql -uroot -p123456 < /data/all.sql

未启动之前
在这里插入图片描述
启动后:
在这里插入图片描述
注: 若遇到最后的服务器无法连接,可能是日志文件索引点导致的,可以通过
Stop slave;
Reset slave;
Start slave;
或者:
1.打开主服务器,进入mysql
2.执行flush logs;//这时主服务器会重新创建一个binlog文件;
3.在主服务上执行show master slave \G;显示如下:
4.来到从服务器的mysql;
5.stop slave;
6.change master to master_log_file=‘mysql-bin.000012’,master_log_pos=154;//这里的file和pos都是上面主服务器master显示的。
7.start slave;//这时候就应可以了
8.show slave status \G;

参考网址:
https://blog.csdn.net/weixin_45651006/article/details/103316771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159617938219195162507691%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159617938219195162507691&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v3-1-103316771.pc_ecpm_v3_pc_rank_v3&utm_term=mariadb+级联复制&spm=1018.2118.3001.4187

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值