$cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0

to_lsn = 1676085
last_lsn = 1676085
compact = 0
recover_binlog_info = 0
xtrabackup --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base
这个时候xtrabackup也是去打开了xtrabackup_checkpoints文件进行上一次备份的信息查看。这个时候去查看增量备份的xtrabackup_checkpoints也记录了这些信息。
$cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 1676085
to_lsn = 1676085
last_lsn = 1676085
compact = 0
recover_binlog_info = 0
这也意味着你可以在增量的备份上继续增量的备份。
同样的,xtrabackup也支持压缩(--compress)、加密(--encrypt)、并行(--parallel)等操作,但是和mysqlbackup不同的是这个没有同时的备份binlog,而mysqlbackup是备份了binlog的。
我们来模拟一个恢复的过程深入的了解一下原理。
查看当前数据:
dbadmin@test 03:04:33>select from t;
+-------+
| id |
+-------+
| 1 |
+-------+
1 row in set (0.00 sec)
全量备份
$xtrabackup --backup --target-dir=/data/backup/base
模拟增量数据
dbadmin@test 03:07:16>select from t;
+-------+
| id |
+-------+
| 1 |
| 2 |
+-------+
2 rows in set (0.00 sec)
进行增量备份:
$xtrabackup --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base
模拟无备份操作:
dbadmin@test 03:09:42>select * from t;
+-------+
| id |
+-------+
| 1 |
| 2 |
| 3 |
+-------+
3 rows in set (0.00 sec)
模拟误操作:
dbadmin@test 03:09:45>truncate table t; Query OK, 0 rows affected (0.00 sec)
模拟恢复操作:
step 1:找到误操作的log position
dbadmin@test 03:10:19>show master logs;
dbadmin@test 03:10:47>show binlog events in 'mysql-bin.000001';
1333
我们需要分别对全量、增量备份各做一次prepare操作。
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-51609-7.html
美国佬说保证航行自由