MariaDB不停机部署主从


MySQL不停机部署主从

Mariabackup介绍

Mariabackup是MariaDB提供的一个开源工具,用于对InnoDB、Aria和MyISAM表进行物理在线备份。对于InnoDB,可以进行“热在线”备份。它最初是从Percona XtraBackup 2.3.8派生出来的。它在Linux和Windows上都可用。

数据备份及恢复

数据备份及恢复请参考:
使用Mariabackup进行MariaDB数据热备

MariaDB容器和Mariabackup容器运行在同一台服务器上,因为Mariabackup运行过程中,需要读取MySQL数据目录,或者是把mysql的数据目录挂载到Mariabackup容器中

修改从库配置

从库恢复后,修改从库的server-id,server-id一定要大于主库的server-id

从库一般作为只读库使用,所以为安全起见,设置只读 set global read_only=1;可以在从服务器的my.cnf里加入read-only参数来实现这一点,唯一需要注意的一点事read-only仅对没有super权限的用户有效。所以最好核对一下连接从服务器的用户,确保其没有super权限。

修改完成后重启从库

创建复制账号

在主库上创建复制账号

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY '123456';

mysql> FLUSH PRIVILEGES;

查看binlog pos

Mariabackup会在备份目录下生成xtrabackup_info、xtrabackup_binlog_info、xtrabackup_checkpoints等文件保存备份信息

cat xtrabackup_info
uuid = 7d09016e-543e-11ed-a9e5-829390e3e57a
name =
tool_name = mariabackup
tool_command = --backup -Hmariadb -P3306 -uroot -pO6Eo6en***********lYC1FQM --target-dir=/mnt/backup/full/2022-10-25_16-21-27.19
tool_version = 10.5.17-MariaDB
ibbackup_version = 10.5.17-MariaDB
server_version = 10.5.3-MariaDB-1:10.5.3+maria~bionic-log
start_time = 2022-10-25 16:21:27
end_time = 2022-10-25 16:24:48
lock_time = 0
binlog_pos = filename 'mariadb-bin.001396', position '76330728', GTID of the last change '0-2-36857363'
innodb_from_lsn = 0
innodb_to_lsn = 5062833270
partial = N
incremental = N
format = file
compressed = N

从备份信息里可以看到binlog_pos信息,后面需要此信息进行主从同步

设置主从

在从库中设置主库同步信息

change master to master_host ='主库IP',
    master_port =3306,
    master_user ='repl',
    master_password ='123456',
    master_log_file ='mariadb-bin.001396',
    master_log_pos =76330728;

master_log_file和master_log_pos需要设置为从xtrabackup_info获取的值

启动同步

在从库中启动主从同步

start slave;

查看主从状态

在从库中执行

show slave status;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Slave_IO_Running及Slave_SQL_Running进程正常运行,即处于Yes状态,说明主从配置成功。

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - MariaDB不停机部署主从


愿你勿忘初心,并从一而终