MySQL数据库物理备份与恢复
工具简介
PerconaXtraBackup是Percona公司开发的一个用于MySQL数据库物理热备的备份工具,支持MySQL、Oracle、Percona Server和MariaDB等多种数据库。
工具下载地址
注:8.0版本的不支持MySQL8.0之前版本的备份。
工具安装
国内网速较慢可以下载好之后利用rz工具进行上传
dnf install -y lrzsz
将MySQL的安装包和备份工具移动到指定目录
mkdir -p /data/MySQL/
mv mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar Percona-XtraBackup-8.0-9-rc5cbbe4-el7-x86_64-bundle.tar /data/MySQL/
建立新的MySQL远程用户
CREATE USER root@'%' IDENTIFIED BY 'Abcde@123';
查看当前活跃区域并添加端口到防火墙策略
firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-ports
firewall-cmd --list-all
#没有开通的情况下加入3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
yum安装Xtrabck
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install -y percona-xtrabackup-80 #安装8.0版本
yum install -y percona-xtrabackup-24 #安装2.4版本
解压Xtraback工具包
#8.0-9安装
yum install -y perl-DBD-MySQL libev-devel.x86_64 rsync.x86_64
wget -c https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.9/binary/redhat/8/x86_64/Percona-XtraBackup-8.0-9-rc5cbbe4-el8-x86_64-bundle.tar
tar -xvf Percona-XtraBackup-8.0-9-rc5cbbe4-el8-x86_64-bundle.tar
yum localinstall -y percona-xtrabackup-80-8.0.9-1.el8.x86_64.rpm
#2.4安装
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
进行全量备份
xtrabackup --backup --apply-log-only --redo-only --target-dir=/data/backup/full --user=root --password=Abcde@123
在全量备份的基础上进行增量备份
xtrabackup --backup --apply-log --redo-only --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/full --user=root --password=Abcde@123 --socket=/var/lib/mysql/mysql.sock
在原有增量数据的基础上继续备份
xtrabackup --backup --history --apply-log --redo-only --target-dir=/data/backup/inc2 --incremental-basedir=/data/backup/inc1 --user=root --password=Abcde@123 --socket=/var/lib/mysql/mysql.sock
准备数据
xtrabackup --prepare --apply-log-only --redo-only --target-dir=/data/backup/full
xtrabackup --prepare --apply-log-only --redo-only --target-dir=/data/backup/full --incremental-dir=/data/backup/inc1
xtrabackup --prepare --apply-log-only --redo-only --target-dir=/data/backup/full --incremental-dir=/data/backup/inc2
恢复数据到mysql服务器
systemctl stop mysqld
#需要清空mysql的数据文件夹,建议先移动确定备份恢复没有问题后再删除
mv /var/lib/mysql/* /tmp/mysqld/back/
#通过准备好的数据进行恢复
xtrabackup --copy-back --target-dir=/data/backup/full
#给文件分配权限
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
卸载工具
#2.4卸载
rpm -e percona-xtrabackup-24-2.4.4-1.el7.x86_64
#8.0-9卸载
rpm -e percona-xtrabackup-80-8.0.9-1.el8.x86_64
来源:CSDN
作者:m-zhaoyang
链接:https://blog.csdn.net/m0_37628360/article/details/104109481