乐趣区

Centos7下配置MariaDB二进制热备份进行主从复制


先从主数据库 dump 数据到从库完成数据的备份

在主库中创建一个热备账号,并且授权 replication slave 权限:

grant replication slave on *.* to "slave"@"192.168.3.206" identified by "admin"


flush privileges;

修改主库的配置文件,并添加如下的配置。

sudo vim /etc/my.cnf
server-id=2 // 此处的 server id 是唯一的,主从库不能一样
log-bin=bin-log // 二进制日志的文件名
binlog-do-db=databasename // 你要备份的数据库
binlog-ignore-db =mysql // 不需要备份的数据库 

重启 mariaDB

systemctl restart mariadb

在主库中查看主从状态

show slave status\G;

    File: bin-log.000003  // 注意

    Position: 10646       // 此处 File 以及 Position 的数据会用于从库的配置

    Binlog_Do_DB:databasename

    Binlog_Ignore_DB:mysql

    1 row in set (0.00 sec)

更改从库配置,添加以下

server-id=3// 此处的 server id 是唯一的,主从库不能一样
log-bin=bin-log // 二进制日志的文件名
replicate-do-db=databasename // 你要备份的数据库
replicate-ignore-db=mysql,information_schema,performance_schema

重启 mariadb

systemctl restart mariadb

登陆从库 MariDB,先停止掉 slave

stop slave;

更改热备配置

Change master to master_host="192.168.3.205",master_port=3306, master_user="backups",master_password="admin",master_log_file="bin-log.000003",master_log_pos=19879;

master_host=” 主库的 IP 地址 ”
master_port= 数据库端口
master_user=” 你所创建的用于热备的账号 ”
master_password=” 热备账号的密码 ”
“master_log_file” 和 ”master_log_pos” 需要与主库 show master statusG; 显示的数据一致。


然后开启 slave。

start slave;

查看一下状态

show slave status\G;
    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

此处两项如果显示为 Yes,那么基本上是成功了,在主库建立一个表,然后查看从库是否也同步建立,即可测试是否成功。


P.S. 储存 sql 的时候必须包含数据,仅储存结构会导致两个库的数据不一致导致错误。

退出移动版