MySQL使用Xtrabackup在线做主从

1、主库上操作

1.1前提

172.16.11.2(主库)
172.16.11.4(从库)
在执行备份之前,确保数据库没有锁定,以避免备份期间的任何写操作。
确保主库上的 MySQL 服务器正在运行,以便备份数据的一致性。
在从库上的目标目录 /data/backup/ 存在并且具有写入权限。
SSH 连接到远程服务器的用户名和 IP 地址是正确的。
备份数据将以 xbstream 格式存储在远程服务器的 /data/backup/backup.s1 文件中。

1.2主库执行命令

/usr/bin/xtrabackup --backup --slave-info -uroot -pay3dbcADvaU9kwD -S /opt/data/data_16303/mysql.sock \
--datadir=/opt/data/data_16303 --stream=xbstream --target-dir=/data/backup/ --port=16303 2> \
/tmp/xtrabackup.log  | ssh root@172.16.11.4 "cat -  > /data/backup/backup.s1"

172.16.11.4是从库的IP地址
执行该命令后,备份数据将传输到远程服务器的指定位置。
请确保在从库上已经准备好了恢复操作,以便在需要时可以快速恢复数据。

1.3查看日志

检查日志,查看是否备份成功

cat  /tmp/xtrabackup.log

MySQL使用Xtrabackup在线做主从_第1张图片
输出completed OK! 表示备份成功

2、从库上操作

2.1停止Mysql

ps   -ef  |   grep   mysql
killall    -9   进程

2.2创建目录,拷贝数据

mkdir /data/restore
mv /data/backup/backup.s1 /data/restore/
xbstream -x -C /data/restore < /data/restore/backup.s1
mv /opt/data/data_16303 /opt/data/data_16303_bak
mkdir  /opt/data/data_16303
chown    -R swadmin:swadmin   /opt/*
cp -r /data/restore/* /opt/data/data_16303

在这里插入图片描述
/data/backup/backup.s1 这个数据就是从主库发送过来的

2.3重新启动从库服务

/opt/apps/mysql/bin/mysqld --defaults-file=/opt/conf/my_16303.cnf --user=swadmin & 

2.4重新建立主从配置

STOP SLAVE;
RESET SLAVE;
CHANGE MASTER TO
MASTER_HOST='172.16.11.2',
MASTER_PORT=16303,
MASTER_USER='mync',
MASTER_PASSWORD='bR5!eA7~bA',
MASTER_LOG_FILE='mysql-bin.000006',
MASTER_LOG_POS=602076;
START SLAVE;
SHOW SLAVE STATUS\G;

你可能感兴趣的:(mysql,数据库)