MySQL数据库物理备份与恢复

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-30 01:25:45

MySQL数据库物理备份与恢复

工具简介

PerconaXtraBackup是Percona公司开发的一个用于MySQL数据库物理热备的备份工具,支持MySQL、Oracle、Percona Server和MariaDB等多种数据库。

工具下载地址

https://www.percona.com/downloads/percona-release/

注: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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!