MariaDB主从复制环境搭建

一 试验环境

角色

IP

操作系统

数据库版本

主库

192.168.144.107

CentOS 7

10.4.14-MariaDB-log

备库

192.168.144.108

CentOS 7

10.4.14-MariaDB-log

 

二 试验步骤

2.1 配置主库

2.1.1 修改配置文件

vi /etc/my.cnf.d/server.cnf

主库配置文件[mysqld]下确保有以下配置:

log-bin

server_id=1

log-basename=master

binlog-format=row

修改完后重启数据库:

systemctl restart mariadb

2.1.2 在主库上创建复制用户

CREATE USER 'ReplUser'@'192.168.144.108' IDENTIFIED BY '自定义一个密码';

GRANT REPLICATION SLAVE ON *.*  TO 'ReplUser'@'192.168.144.108';

2.1.3 制造测试数据

MariaDB [(none)]> create database baidd;

Query OK, 1 row affected (0.000 sec)

 

MariaDB [(none)]> use baidd;

Database changed

MariaDB [baidd]> create table t(id int,name varchar(30));

Query OK, 0 rows affected (0.008 sec)

 

MariaDB [baidd]> insert into t(id) values(1);

Query OK, 1 row affected (0.002 sec)

2.2 安装配置从库

2.2.1 安装从库

安装可参考https://blog.csdn.net/yabingshi_tech/article/details/108883903

2.2.2 修改配置文件

vi /etc/my.cnf.d/server.cnf

在[mysqld]下面添加:

log-bin

server_id=2

log-basename=slave1

binlog-format=row

#注意:从库的server_id不能和主库的server_id相同。

修改完后重启数据库:

systemctl restart mariadb

2.3 将主库上的数据恢复到从库上

2.3.1 备份数据库

#备份主库命令

mariabackup --backup --target-dir=/backup/ --user=root --password=密码

备份成功后,会提示:

completed OK!

 

#备注

如果该数据库集群中已经存在一台从库,想要备份该从库的话需要额外添加--slave-info --safe-slave-backup命令

mariabackup --backup \

   --slave-info --safe-slave-backup \

   --target-dir=/backup/ \

   --user=mariabackup --password=mypassword

2.3.2 prepare数据库

mariabackup --prepare  --target-dir=/backup/

2.3.3 拷贝备份到新从库上

scp -r  /backup 192.168.144.108:/

2.3.4 在新从库上进行恢复

systemctl stop mariadb

#删除数据目录

cd /var/lib

mv mysql mysql_bak

mariabackup --copy-back  --target-dir=/backup/

恢复成功后会提示:completed OK!

chown -R mysql:mysql /var/lib/mysql/

chmod -R 755 /var/lib/mysql

systemctl start mariadb

2.3.5 验证数据是否恢复成功

MariaDB [(none)]> select * from baidd.t;

+------+------+

| id   | name |

+------+------+

|    1 | NULL |

+------+------+

2.4 配置主从复制

2.4.1 在主库制造测试数据

MariaDB [baidd]> insert into baidd.t(id) values(2);

Query OK, 1 row affected (0.045 sec)

 

MariaDB [baidd]> select * from baidd.t;

+------+------+

| id   | name |

+------+------+

|    1 | NULL |

|    2 | NULL |

+------+------+

2 rows in set (0.000 sec)

2.4.2 在从库开启复制

2.4.2.1 获取复制坐标

我们需要从原始备份目录中获取主服务器的复制坐标。

如果我们在主库上备份,那么坐标将在xtrabackup_binlog_info文件中。如果我们在另一个slave上备份,并且我们提供了--slave info选项,那么坐标将在xtrabackup_slave_info文件中。

Mariabackup以两种形式转储复制坐标:GTID坐标和二进制日志文件和位置坐标。

$ cat /backup/xtrabackup_binlog_info

master-bin.000001 1180 0-1-5

2.4.2.2 设置gtid_slave_pos

#将gtid_slave_pos设置为从备份目录中的xtrabackup_binlog_info文件或xtrabackup_slave_info文件中提取的gtid坐标。

SET GLOBAL gtid_slave_pos = "0-1-5";

2.4.2.3 change master to指向主库

CHANGE MASTER TO

   MASTER_HOST="192.168.144.107",

   MASTER_PORT=3306,

   MASTER_USER="ReplUser",  

   MASTER_PASSWORD="复制用户的密码",

   MASTER_USE_GTID=slave_pos;

2.4.2.4 开启复制

START SLAVE;

2.4.3 检查从库复制状态

MariaDB [(none)]> show slave status \G;

*************************** 1. row ***************************

                Slave_IO_State: Waiting for master to send event

                   Master_Host: 192.168.144.107

                   Master_User: ReplUser

                   Master_Port: 3306

                 Connect_Retry: 60

               Master_Log_File: master-bin.000001

           Read_Master_Log_Pos: 1395

                Relay_Log_File: slave1-relay-bin.000002

                 Relay_Log_Pos: 831

         Relay_Master_Log_File: master-bin.000001

              Slave_IO_Running: Yes

             Slave_SQL_Running: Yes

           ……

ERROR: No query specified

确保SQL进程和IO进程状态为YES。

2.4.4 检查确认主库上的测试数据是否同步到从库

 

可以看到id=2的数据同步过来了。

 

本篇文章主要参考自:https://mariadb.com/kb/en/setting-up-replication/

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值