XtraBackup的增量备份


实验场景:

两个mysql实例,一个端口为3306,一个端口为3307。

现在要在3306上做增量备份,并将备份恢复到3307上去。

备份:

A) 0级备份
innobackupex –default-file=/usr/local/mysql/my.cnf –user=root –password=root –socket=/usr/local/mysql/mysql.sock /tmp/backup/zero –no-timestamp –parallel=4
B) 1级备份

1、操作mysql实例,增加数据

mysql -S /usr/local/mysql/mysql.sock -P 3306 -p

show databases;

use lxm;
create table t1 as select * from t;
2、基于0级备份创建1级备份
innobackupex –default-file=/usr/local/mysql/my.cnf –user=root –password=root –socket=/usr/local/mysql/mysql.sock –incremental /tmp/backup/one –incremental-basedir=/tmp/backup/zero –no-timestamp –parallel=4
C) 2级备份

1、继续操作mysql实例,增加数据

mysql -S /usr/local/mysql/mysql.sock -P 3306 -p

show databases;

use lxm;
create table t2 as select * from t;
2、基于1级备份创建2级备份
innobackupex –default-file=/usr/local/mysql/my.cnf –user=root –password=root –socket=/usr/local/mysql/mysql.sock –incremental /tmp/backup/two –incremental-basedir=/tmp/backup/one –no-timestamp –parallel=4

停mysql3307 清空/var/lib/mysql3307下的文件
service mysql3307 stop;
cd /usr/local/mysql3307
mv data data.bak

恢复:
A)预备增量备份
1、当应用0级备份恢复增量备份的时候记住要使用–redo-only参数,只做已提交事务,不回滚未提交事务。记住:如果已经回滚了未提交事务,那么就无法再应用增量备份。
innobackupex –defaults-file=/usr/local/mysql3307/my.cnf –apply-log –redo-only –use-memory=10M /tmp/backup/zero
2、将1级备份应用到0级备份
innobackupex –defaults-file=/usr/local/mysql3307/my.cnf –apply-log –redo-only –use-memory=10M /tmp/backup/zero –incremental-dir=/tmp/backup/one/
3、将2级备份应用到0级备份,因为是最后一个增量备份所以没有必要再加—redo-only,这样最后一个增量也被应用到全备上了。
innobackupex –defaults-file=/usr/local/mysql3307/my.cnf –apply-log –use-memory=10M /tmp/backup/zero –incremental-dir=/tmp/backup/two/
4、当恢复完增量备份,在一次应用0级备份回滚没有提交的事物,所以不需要加–redo-only参数
innobackupex –defaults-file=/usr/local/mysql3307/my.cnf –apply-log –use-memory=10M /tmp/backup/zero
B)还原增量备份
innobackupex –defaults-file=/usr/local/mysql3307/my.cnf –copy-back /tmp/backup/zero

检验恢复结果
修改恢复后的data目录的属组为mysql,起mysql3307,查看数据是否和mysql实例中的一样:
mysql -S /usr/local开发云主机域名/mysql3307/mysql.sock -P 3307 -uroot -p
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| lxm |
| mysql |
| performance_schema |
| test |
+——————–+
5 rows in set (0.00 sec)

mysql> use lxm
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+—————+
| Tables_in_lxm |
+—————+
| t |
| t1 |
| t2 |
+—————+
3 rows in set (0.00 sec)

mysql> select count(1) from t1;
+———-+
| count(1) |
+———-+
| 14 |
+———-+
1 row in set (0.00 sec)

mysql> select count(1) from t2;
+———-+
| count(1) |
+———-+
| 14 |
+———-+
1 row in set (0.00 sec)

备注:

增量备份(xtrabackup只会影响xtradb或者innodb的表,其他引擎的表在增量备份的时候只会复制整个文件,不会差异。)

相关推荐: 简单的这些不为人知的小技巧你都知道吗?

  随着开发云主机域名科技的发展,手机在生活越来越重要,微信渐渐成为我们生活中沟通的重要媒介。现在很多的中老年人也开始使用微信了,但是微信上有很多功能,他们都不会使用,如果我们不在他们的身边,他们又想使用微信的话,那么该怎么办呢?下面将方法分享给大家!   一…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/05 17:35
下一篇 06/05 17:35

相关推荐