Mysql Xtrabackup主从同步参考手册(centos7.6+mysql8.0.26)

一、查看操作系统版本
cat /etc/redhat-release

二、查看mysql版本

三、下载对应系统版本和mysql版本 Xtrabackup安装包(主机需要外网下载权限,否则无法解决安装过程中依赖问题)
https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.26-18/binary/redhat/7/

四、主机上下载后,再使用yum安装

yum -y install percona-xtrabackup-80-8.0.26-18.1.el7.x86_64.rpm
五、主库上进行备份(非压缩)
(1)脚本内容

cat xtrabackup.sh
#!/bin/bash
#脚本文件需要775权限
echo "begin_dbaflag `date +%Y-%m-%d` `date +%H:%M:%S`"
#以下三行需要根据实际情况调整,备份bakdir目录需要775权限
bakdir=/data/backup
username=mysql用户名
passwd=mysql用户名对应密码
#以下所有都通用,无需调整
Dat=`date +%Y%m%d`
dat=`date +%Y-%m-%d-%H-%M-%S`
day=`date +%w`
MYCNF=`systemctl status mysqld |grep -i datadir|awk -F '=' '{print "--defaults-file="$2}' |awk '{print $1}'`
cd $bakdir
if [ -e $day ]
then rm -rf $day
fi
mkdir $day;
/usr/bin/xtrabackup $MYCNF --user=$username --password=$passwd --no-lock --backup --target-dir=$bakdir/$day
echo -e "\n end_dbaflag `date +%Y-%m-%d` `date +%H:%M:%S`"
(2)脚本文件需要775权限(chmod 775 xtrabackup.sh)
(3)脚本计划任务举例
(4)备份正常日志举例
六、上传备份到从库
压缩打包(备份过大,建议压缩,IO为固态,可考虑直接传出)

上传备份到备库,并解压(路径任意指定,路径需要775权限):

七、从库上恢复

(1)停止从库mysql服务(注意IP)
systemctl stop mysql #停从库上mysql服务
ps -ef |grep -i mysql #检查没有mysql进程说明停止成功
(2)删除从库上mysql数据目录和日志目录下数据
cd /data/mysql/mysql3306/ #cd到实际路径下面删除 data和log目录,即只保留etc/my.cnf
rm -rf /data/mysql/mysql3306/{data,log}/* #删除命令


(3)恢复重做日志
xtrabackup --defaults-file=/data/mysql/mysql3306/etc/my.cnf --prepare --use-memory=2G --target-dir=/data/backup/5 #恢复重做日志:

(4)恢复数据
xtrabackup --defaults-file=/data/mysql/mysql3306/etc/my.cnf
--copy-back --target-dir=/data/backup/5
#恢复数据,时间与拷贝数据有关(与OS上IO有关)

(5)从库参数文件中server_id值调整:
调整参数文件/data/mysql/mysql3306/etc/my.cnf中server_id值从库比主库小即可。
备注:这里的路径要特别注意,为实际mysql路径:默认若安装在/kingdee下,那数据位置为:/kingdee/mysql/mysql3306/,具体参考my.cnf中datadir位置。

(6)改恢复后的data目录和log目录下所有权限为mysql:
chown mysql:mysql data/ -R
chown mysql:mysql
Mysql Xtrabackup主从同步参考手册(centos7.6+mysql8.0.26)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



