MariaDB 级联复制
上篇文章中(MariaDB主从复制)完成了⼀主⼀从的 MariaDB 主从复制架构,但是有的时候,我们期望有⼀个后备的 MariaDB 节点,只⽤作备份存储数据,不需要对外提供服务。为了实现该功能,我们可以在之前的⼀主⼀从架构上进⾏调整,即将从节点的⼆进制⽂件打开,然后给他配置⼀个远程同步数据⽤户,接着使⽤⼀台新的服务器做为从服务器的 slave,同步从服务器的数据即可, 下⾯我们在原来的架构上 添加⼀台新的 CentOS7.6,作为 slave2,ip地址为192.168.99.20
1.准备一台名称为 slave-2 的mysql服务器
创建⼀台新的服务器,安装和 master 和 slave-1 同版本的 MariaDB 服务
2.修改slave-1的配置文件
# 打开⼆进制⽇志⽂件和⼆进制同步给⾃⼰的 slave 的功能,重启 MariaDB 服务
shell> vim /etc/my.cnf.d/server.cnf
[mysqld]
server_id=2
log_bin
log_slave_updates
read_only
# 重启
shell> systemctl restart mysql
# 创建⼀个 replslave 账号⽤于同步数据
mysql> grant replication slave on *.* to replslave@'192.168.99.%' identified by '123456';
# ⼆进制⽂件名称和大小
mysql> show master logs;
+--------------------+-----------+
| Log_name | File_size |
+--------------------+-----------+
| slave-1-bin.000001 | 532 |
+--------------------+-----------+
3.修改slave-2的配置文件
shell> vim /etc/my.cnf.d/server.cnf
[mysqld]
server_id=3
read_only
shell> systemctl start mysql
4.配置复制线程
# 使用有复制权限的用户账号连接至主服务器,并启动复制线程
CHANGE MASTER TO
MASTER_HOST='192.168.99.10',
MASTER_USER='replslave',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='slave-1-bin.000001',
MASTER_LOG_POS=532;
5.启动复制线程
mysql> start slave;
6查看复制进程是否成功
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.99.10
Master_User: replslave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: slave-1-bin.000001
Read_Master_Log_Pos: 532
Relay_Log_File: slave-2-relay-bin.000002
Relay_Log_Pos: 557
Relay_Master_Log_File: slave-1-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
当Slave_IO_Running 和 Slave_SQL_Running 为yes时表示mysql级联复制成功