文章目录
- 压缩备份
- 一、安装 xtrabackup
- 二、数据库中创建一些数据
- 三、进行压缩备份
- 四、模拟数据丢失,删库
- 五、解压缩
- 六、数据恢复
压缩备份
一、安装 xtrabackup
确保已经安装了 xtrabackup 工具。可以从 Percona 的官方网站 获取并安装适合你系统的版本。
# 添加 Percona 仓库
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# 安装 Percona XtraBackup
sudo yum install percona-xtrabackup-83 -y # 注意:版本号可能会变化
# 83版本工具只支持mysql80以上版本
二、数据库中创建一些数据
如果数据库中已有默认以外的数据,直接跳过
CREATE DATABASE IF NOT EXISTS test; #创建一个名为test的数据库
USE test; #使用数据库
#创建一个名为t1的表
CREATE TABLE IF NOT EXISTS t1 (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT
);
#向t1表中插入一些数据
INSERT INTO t1 (name, age) VALUES ('Alice', 30);
INSERT INTO t1 (name, age) VALUES ('Bob', 25);
INSERT INTO t1 (name, age) VALUES ('Charlie', 35);
#查看表中所有记录
SELECT * FROM t1;
三、进行压缩备份
使用 xtrabackup 进行备份并同时压缩备份数据。可以通过以下命令将备份数据压缩到一个 .tar.gz 文件中:
xtrabackup \
--defaults-file=/etc/my.cnf \
--backup --compress \ #压缩
--target-dir=/data/backup/compressed/ \ #要备份到的目录
-uroot -p'你的密码' -H localhost -P 3306 \ #目标服务器的IP、端口号、用户名和密码
--no-server-version-check #不检查服务版本
–compress:启用压缩。
–compress-threads=4:设置压缩的线程数,根据你的机器性能进行调整。
–compress-extensions=“mytable.frm”:指定要压缩的文件类型,可以根据需要调整。
–target-dir:指定备份数据存储的目录。
四、模拟数据丢失,删库
systemctl stop mysqld \\停止mysql数据库
rm -rf /var/lib/mysql/* \\删除mysql下的所有数据
#这时mysql数据库已经登不上了
五、解压缩
解压缩需要有 qpress 命令,由于我建了yum库,可以直接通过yum安装
yum install qpress -y
#解压缩
xtrabackup \
--defaults-file=/etc/my.cnf \
--decompress \ #解压缩
--target-dir=/data/backup/compressed/ #压缩备份目录
六、数据恢复
#准备要恢复的数据
xtrabackup \
--prepare \ #准备数据,命令将数据恢复到可用状态
--target-dir=/data/backup/compressed \ #备份目录
--no-server-version-check
#恢复数据
xtrabackup \
--defaults-file=/etc/my.cnf \
--copy-back \
--target-dir=/data/backup/compressed
#将恢复的数据给上mysql用户权限
chown -R mysql.mysql /var/lib/mysql
#重启mysql
systemctl restart mysqld
#登录mysql
mysql -uroot -p'你的密码';
#查看所有数据库
show databases;
注意事项
备份和恢复过程中务必小心:操作前最好进行测试,确保操作过程不会影响生产环境。
定期检查备份文件:确保备份文件能够正确恢复,以便在需要时可以顺利恢复数据。
版本兼容:确保 xtrabackup 的版本与你的 MySQL 版本兼容,以避免潜在的兼容性问题。
回到顶层