检查当前数据库的 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 参数实现