1.安装xtrabackup
下载路径: https://www.percona.com/downloads/Percona-XtraBackup-2.4/
下载版本: Percona XtraBackup
数据库5.4 就用2.4的版本
可以选2.4.9的版本 centos红帽rpm版本
安装xtrabackup
登录mysql查看版本
mysql是5.7.44版本:
装的时候就装2.4.29版本
cd /soft
https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.29-1.el7.x86_64.rpm
下载地址:
# wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.29-1.el7.x86_64.rpm
# yum install percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
查看安装情况
[root@base-c7 soft]# rpm -qa | grep xtrabackup
percona-xtrabackup-24-2.4.29-1.el7.x86_64
查看版本:
[root@base-c7 soft]#xtrabackup --version
xtrabackup version 2.4.29 based on MySQL server 5.7.44 Linux (x86_64) (revision id: 2e6c0951)
注意:
my.cnf需要确认配置文件内有数据库目录指定
# cat /etc/my.cnf
[mysqld]
datadir = /usr/local/mysql/data
恢复时数据库目录必须为空,MySQL服务不能启动
如何删除xtrabackup
rpm -e percona-xtrabackup-24
yum remove percona-xtrabackup-24
rpm -qa | grep xtrabackup
2.完全备份流程:
完整备份语法:
innobackupex --user=root --password='口令' /备份目录
案例:
innobackupex --user=root --password='qf123' /xtrabackup/full
备份的文件夹放在哪个地方
/xtrabackup/full
第一步:创建备份目录:
[root@mysql-server ~]# mkdir /xtrabackup/full -p
第二步备份:
没有带用户名和密码是因为在vim /etc/my.cnf(password=123456
port = 3306)配置过了
innobackupex /xtrabackup/full
[root@mysql-server ~]# innobackupex --user=root --password='qf123' /xtrabackup/full
cd 进去会产生一个年月日时分秒的文件夹
cd /xtrabackup/full/ ll
2024-05-21_21-51-01
在执行一次就会又产生一个文件夹
innobackupex /xtrabackup/full
2024-05-21_21-59-46
cd 进去就可以看到备份的路径
cd 2024-05-21_21-51-01/ ll
防止数据被修改 就把文件进行压缩,要用的时候就进行解压
cd /xtrabackup/full/
tar -czvf 2024-05-21_21-59-46.tar.gz 2024-05-21_21-59-46
创建文件夹 把2024-05-21_21-59-46.tar.gz 移动到tar文件夹里
mkdir tar
mv 2024-05-21_21-59-46.tar.gz tar/
先进行拷贝一份 以防改错
cp -r 2024-05-21_21-59-46{,.ori}
就可以把备份目录给清理掉了
rm -rf 2024-05-21_21-59-46.ori/
写脚本只做备份,不要写脚本搞还原
还原搞手动
完全备份恢复流程
数据没有特殊需求 就不要搞还原(很麻烦)
完全备份恢复流程
1. 停止数据库
2. 清理环境
3. 重演回滚--> 恢复数据
4. 修改权限
5. 启动数据库
第一步先停服务
systemctl stop mysqld
注意:数据库目录必须为空,MySQL服务不能启动
第二步开始删数据
cd /usr/local/mysql/data
rm -rf *
第三步重演回滚 恢复数据:
3.重演回滚 恢复数据:
语法
innobackupex --apply-log /备份目录/完整备份目录(年月日时分秒)
案例:
innobackupex --apply-log /xtrabackup/full/2024-05-21_21-59-46
恢复数据:
语法:
innobackupex --copy-back /备份目录/完整备份目录(年月日时分秒)
案例:
相当于把文件复制回来
innobackupex --copy-back /xtrabackup/full/2024-05-21_21-59-46
此时已经恢复成功
pwd ll
修改权限:
chown -R mysql:mysql /usr/local/mysql/data
启动数据库:
systemctl start mysqld
查看端口
ss -ntpl | grep 3306
登录MySQL 查看库
show databases;