使用xtrabackup对MySQL5.7数据库进行物理备份
安装xtrabackup
MySQL5.7只能使用percona-xtrabackup-2.4版本进行操作
下载地址:https://download.csdn.net/download/weixin_45652150/90089395
安装
# 安装依赖
yum -y install libev
# 下载 2.4版本的
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.27/binary/tarball/percona-xtrabackup-2.4.27-Linux-x86_64.glibc2.12.tar.gz
# 解压缩
tar xvf percona-xtrabackup-2.4.27-Linux-x86_64.glibc2.12.tar.gz
# 移动到opt下
mv percona-xtrabackup-2.4.27-Linux-x86_64.glibc2.12 /opt/xtrabackup-2.4.27
# 配置软链接
ln -s /opt/xtrabackup-2.4.27/bin/* /usr/bin/
# 查看版本
xtrabackup --version
备份
设置一个备份账号,专门用来备份,替换localhost
为%
表示同运行任意地方连接
CREATE USER 'backup'@'localhost' IDENTIFIED BY 'Qwe123..0';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'backup'@'localhost';
FLUSH PRIVILEGES;
全量备份
创建备份
# 创建备份
xtrabackup --user=backup --password=Qwe123..0 --backup --target-dir=/opt/backup/mysql --socket=/var/lib/mysql/mysql.sock
--target-dir
:备份路径
--socket
:数据库套接字文件
恢复备份
安装MySQL
# 下载MySQL yum 包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
# 查看是否有mariadb
rpm -qa |grep mariadb
# 删除mariadb依赖
yum remove -y mariadb-libs.x86_64
# 安装密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装 MySQL 源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
# 安装 MySQL 服务器
yum install -y mysql-community-server
# 启动服务
systemctl start mysqld
systemctl enable mysqld
# 防火墙开放端口
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
停止数据库
systemctl stop mysqld
查看备份文件是否完整 必须执行,不然异常可能会导致数据丢失
# 查看备份文件是否完整
xtrabackup --prepare --target-dir=/opt/backup/mysql
清除掉/var/lib/mysql
# 为了防止数据问题,使用移动的方式删除MySQL
mv /var/lib/mysql /tmp/deletemysql
恢复数据库
xtrabackup --copy-back --target-dir=/data/backups/
给于MySQL权限
# 给于MySQL文件权限
chown -R mysql:mysql /var/lib/mysql
# 启动MySQL
systemctl start mysqld