则记录了备份工具的信息,时间,备份对象(是针对全实例还是某库表),是否是增量,binlog位置等 # cat xtrabackup_binlog_info binlog.000001 2321 931d11a2-9a8b-11e6-829f-000c298e914c:1-8 # cat xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0 to_lsn = 304247338 last_lsn = 304247338 compact = 0 recover_binlog_info = 0 # cat xtrabackup_info uuid = cfb49b5f-02e8-11e7-94b4-000c298e914c name = tool_name = innobackupex tool_command = --password=... /data/dbbak tool_version = 2.3.7 ibbackup_version = 2.3.7 server_version = 5.6.30-log start_time = 2017-03-07 11:47:36 end_time = 2017-03-07 11:47:39 lock_time = 0 binlog_pos = filename 'binlog.000001', position '2321', GTID of the last change '931d11a2-9a8b-11e6-829f-000c298e914c:1-8' innodb_from_lsn = 0 innodb_to_lsn = 304247338 partial = N incremental = N format = file compact = N compressed = N encrypted = N
还有一个backup-my.cnf文件,则记录了备份时可能涉及到的选项参数,比如系统表空间信息,独立undo表空间信息,redo-log信息等: # cat backup-my.cnf # This MySQL options file was generated by innobackupex. # The MySQL server [mysqld] innodb_checksum_algorithm=innodb innodb_log_checksum_algorithm=innodb innodb_data_file_path=ibdata1:12M:autoextend innodb_log_files_in_group=2 innodb_log_file_size=50331648 innodb_fast_checksum=false innodb_page_size=16384 innodb_log_block_size=512 innodb_undo_directory=. innodb_undo_tablespaces=0 ② prepare: 第二步就是prepare,前文也提到,这个过程类似innodb的crash recovery 也可以理解为是“apply”的过程,这里是全备prepare的命令,十分简单 innobackupex --apply-log $basedir 在--apply-log的时候,可以指定--use-memory,增大其值加快速度,若不指定,默认值为100MB。 ③ 恢复到datadir: 恢复过程也十分简单(全备和增备都是这一个恢复命令),只需要加上--copy-back参数即可 innobackupex --copy-back $basedir 这样就可以将$basedir的东西恢复到datadir下了,datadir无需指定,将会读取my.cnf获得 默认是需要datadir内为空的(或者没有创建),如果要强制写,则需要加参数: --force-non-empty-directories 〇 增备 增量备份比起全备要复杂一点,本文也想主要介绍如何做增量备份。 用于有的场景,可能不需要每天对数据做全备。 比如有的场景是,每周做一次全备,每天对做一次增量备份,可以节约磁盘空间也可以减少备份时间。 增备的原理是通过对比LSN的信息,来找到被更变的数据,当有了修改操作时,LSN号会改变,和上一次全备的差异LSN号做对比,则可将差异数据备份出来。 整个过程还是分为三个步骤,备份 -> prepare -> 恢复 ①增备方法与全备不一样: innobackupex --user= |