xtrabackup用法【备忘】(三)

2014-11-24 17:09:19 · 作者: · 浏览: 2
ast_lsn = 85760880 compact = 0

检查当前数据库的 lsn

---
LOG
---
Log sequence number 85760880
Log flushed up to   85760880
Last checkpoint at  85760880
Max checkpoint age    7782360
Checkpoint age target 7539162

数据库插入数据.. (略)

增加数据后的 lsn

---
LOG
---
Log sequence number 85764524
Log flushed up to   85764524
Last checkpoint at  85764524
Max checkpoint age    7782360
Checkpoint age target 7539162

执行增量备份

innobackupex --user=root --password=123 --socket=/var/run/mysqld/mysql5.socket --incremental /backup --incremental-basedir=/backup/2013-12-24_14-58-26/

--incremental-basedir 需要指定之前完整备份的目录
--incremental 将会在改目录下生成新的目录用于存放增量备份数据

执行成功后, /backup 将会出现两个目录
2013-12-24_14-58-26 (完整备份) 2013-12-24_15-02-57 (增量备份)

查看当前增量备份 check-point 信息

cat /backup/2013-12-24_15-02-57/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 85760880
to_lsn = 85764524
last_lsn = 85764524
compact = 0

完整备份 lsn 从 0 ~ 85760880, 增量备份 lsn 从 85760880 ~ 85764524 匹配当前数据库中的最后一次 lsn

分别按顺序(先全备再增量)对备份目录执行 --apply-log --redo-only 操作确保数据一致性(该操作只需要在恢复前执行)

innobackupex --user=root --password=123 --socket=/var/run/mysqld/mysql5.socket --apply-log --redo-only /backup/2013-12-24_14-58-26

innobackupex --user=root --password=123 --socket=/var/run/mysqld/mysql5.socket --apply-log --redo-only /backup/2013-12-24_14-58-26 --incremental-dir=/backup/2013-12-24_15-02-57

执行后再重新检验一次 check-point 文件, 发现全库备份的 checkpoint 已经包含了增量备份中的 lsn

[root@db4 backup]# cat 2013-12-24_14-58-26/xtrabackup_checkpoints   
backup_type = full-prepared
from_lsn = 0
to_lsn = 85764524
last_lsn = 85764524
compact = 0
[root@db4 backup]# cat 2013-12-24_15-02-57/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 85760880
to_lsn = 85764524
last_lsn = 85764524
compact = 0

恢复方法跟之前一样, 只需要指定全库备份位置则可

innobackupex --copy-back /backup/2013-12-24_14-58-26 

时间点备份

全备恢复后,利用二进制日志进行时间点恢复,与 xtrabackup 无关, 纯 MYSQL 特点, 不详细讨论

备份压缩

利用 --compress 参数实现