目录
xtrabackup 只能备份InnoDB和XtraDB两种数据表,而不能备份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 | 格里芬多 |
+-----+--------------+------+------+-----------------+