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状态,说明主从配置成功。
Comments | NOTHING