MySQL备份策略(六):xtrabackup备份数据库

本文详细介绍了如何使用Percona Xtrabackup工具对MySQL数据库进行完全备份和增量备份。该工具支持InnoDB和XtraDB表,备份过程快速且不影响正在执行的事务。示例包括了如何执行完全备份、增量备份以及恢复数据的步骤,确保数据的安全和高效管理。
摘要由CSDN通过智能技术生成

目录

部署环境:

示例一:完全备份

示例二:增量备份


xtrabackup 只能备份InnoDBXtraDB两种数据表,而不能备份MyISAM数据表。

支持完全备份和增量备份。

特点:

  • 备份过程快速、可靠;
  • 备份过程不会打断正在执行的事务;
  • 能够基于压缩等功能节约磁盘空间和流量;
  • 自动实现备份检验;
  • 还原速度快;

部署环境:

yum install percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm perl-DBD-MySQL-4.023-6.el7.x86_64.rpm -y

示例一:完全备份

适合所有数据库

1.备份数据

[root@localhost mysql]# innobackupex -u root -p Sirius123! --no-timostamp /backup/mysql/full_1
[root@localhost ~]# cd /backup/mysql/
[root@localhost mysql]# ls
full_1        

2.恢复数据

[root@localhost mysql]# innobackupex -u root -p Sirius123! --apply-logs full_1/
#完全备份中恢复数据
[root@localhost mysql]# systemctl stop mysqld
#停止数据库
[root@localhost mysql]# rm -rf /var/lib/mysql/*
#清空mysql数据目录下的文件,否则会报错
[root@localhost mysql]# innobackupex -u root -p Sirius123! --copy-back full_1/
#还原数据库到默认目录
[root@localhost mysql]# chown -R mysql.mysql /var/lib/mysql
#修改权限,否则无法启动
[root@localhost mysql]# systemctl start mysqld
#启动数据库

查看数据库:

mysql> select * from Student;
+-----+----------+------+------+-----------------+
| Sno | Sname    | Ssex | Sage | Sdept           |
+-----+----------+------+------+-----------------+
|   1 | 陆亚     | 男   |   24 | 计算机网络      |
|   2 | tom      | 男   |   26 | 英语            |
|   3 | 张阳     | 男   |   21 | 物流管理        |
|   4 | alex     | 女   |   22 | 电子商务        |
|   5 | xumubin  | 男   |   29 | 中文专业        |
|   6 | wangzhao | 男   |   21 | 导弹专业        |
+-----+----------+------+------+-----------------+

示例二:增量备份

1.备份数据

mysql> INSERT INTO Student values(0009,'张艺谋','男',61,'导演专业'),(0010,'徐静 蕾','女',36,'导演专业');
#插入数据,第一次在数据库插入数据后进行增量备份
[root@localhost mysql]# innobackupex --incremental -u root -p Sirius123! --no-timestamp /backup/mysql/incr_1 --incremental-basedir=/backup/mysql/full_1/
#第一次增量备份

mysql> insert into Student values(11,'哈利波特','男',15,'格里芬多');
#第二次插入数据
[root@localhost mysql]# innobackupex --incremental -u root -p Sirius123! --no-timestamp /backup/mysql/incr_2 --incremental-basedir=/backup/mysql/incr_1/
#第二次增量备份
#注意:执行过增量备份后再一次进行增量备份时,--incremental-basedir应该指向上一次增量备份所在的目录

2.恢复数据

[root@localhost mysql]# innobackupex -u root -p Sirius123! --apply-log --redo-only /backup/mysql/full_1/
#恢复完全备份
[root@localhost mysql]# innobackupex -u root -p Sirius123! --apply-log --redo-only /backup/mysql/full_1/ --incremental-dir=/backup/mysql/incr_1/
#恢复第一次增量备份
[root@localhost mysql]# innobackupex -u root -p Sirius123! --apply-log --redo-only /backup/mysql/full_1/ --incremental-dir=/backup/mysql/incr_2/
#恢复第二次增量备份
[root@localhost mysql]# systemctl stop mysqld
#停止数据库
[root@localhost mysql]# rm -rf /var/lib/mysql/*
#删除数据库目录文件
[root@localhost mysql]# innobackupex -u root -p Sirius123! --copy-back /backup/mysql/full_1/
#还原数据到数据库默认目录中
[root@localhost mysql]# chown -R mysql.mysql /var/lib/mysql
#添加权限

查看数据库:

mysql> select * from Student;
+-----+--------------+------+------+-----------------+
| Sno | Sname        | Ssex | Sage | Sdept           |
+-----+--------------+------+------+-----------------+
|   1 | 陆亚         | 男   |   24 | 计算机网络      |
|   2 | tom          | 男   |   26 | 英语            |
|   3 | 张阳         | 男   |   21 | 物流管理        |
|   4 | alex         | 女   |   22 | 电子商务        |
|   5 | xumubin      | 男   |   29 | 中文专业        |
|   6 | wangzhao     | 男   |   21 | 导弹专业        |
|   9 | 张艺谋       | 男   |   61 | 导演专业        |
|  10 | 徐静 蕾      | 女   |   36 | 导演专业        |
|  11 | 哈利波特     | 男   |   15 | 格里芬多        |
+-----+--------------+------+------+-----------------+

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值