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
输出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;