innobackupex备份及恢复测试简析

  

先看看innobackupex常用参数

——compact ,,,,,,,创建一个不包含第二索引(除了主键之外的索引)的备份   ——decompress ,,,,,,,解压之前所有以压缩参数备份出来的带有.qp格式的备份文件,——平行参数会允许同时解锁或解压多个文件。需要安装qpress软件。   ——defaults-file=] [my . cnf中所做,配置文件的路径   ——incremental-basedir 以上一次全量或增量备份的路径,作为增量备份的基础。指定这个参数的同时,应该同样指定——增量参数   ——incremental 创建增量备份,当指定这个参数的时候,应该指定——incremental-lsn或——incremental-basedir参数,否则将会备份到——incremental-basedir路径   ——apply-log ,在备份目录下,通过应用名称为xtrabackup_logfile的交易日志文件来准备备份。同时,创建新的交易日志。   ——redo-only 当准备数据库的全备或合并增量备份时,需要指定这个参数。这个参数实际上执行的是xtrabackup  apply-log-only,会让xtrabackup跳过回滚节点,只做“重做”步骤。当数据库需要应用增量备份时,需要指定这个参数。   ——incremental-dir=DIRECTORY 指定增量备份的目录,需要搭配——增量参数。   ——no-timestamp 这个参数会让xtrabackup在备份的时候不创建带有时间格式的子文件夹。当指定了这个参数,备份会直接创建在指定的备份目录下   ——流=STREAMNAME 指定流备份的格式。备份将会以指定格式输出到STDOUT。目前支持的格式有tar 和,xbstream。如果指定了这个参数,后面需要接tmpdir目录作为处理流的一个中间目录。   ——slave-info ,,,当备份一个作为复制环境的服务器时,这个参数会自动将CHANGE 掌握语句写到备份中,在恢复备份后,不必执行CHANGE 掌握语句。   ——文件=FILE ,,,,,,,这个参数会接受一个字符串,这个字符串指定了一个文件,这个文件包含了要备份的表名,格式如database.table,一行一个。   ——使用内存=#,,,,,,,,这个参数用于在准备备份时,xtrabackup执行crash 复苏所使用的内存大小。这个参数仅和——运用原木搭配时才生效。

更多innobackupex参数解释,请参考官网


整个测试流程如下图

 innobackupex备份及恢复测试简析


下面开始我的备份,恢复测试

1。先看一下我设的/etc/my . cnf中所做置。我选择了binlog是连续模式的,也就是“行”模式,而不是sql模式。<强> binlog和功能分开存放强,方便后续的数据库管理。

binlog_format =,行   expire_logs_days =7   max_binlog_size =100   binlog_cache_size =, 4 m   max_binlog_cache_size =512   character_set_server =, utf8   lower_case_table_names=1   datadir=/数据/mysql   log_bin=/数据/mysql-binlog/mysql-bin   server_id=101

备份前,创建表

test1 ,,,,,,,, innodb引擎   test2 ,,,,,,,, innodb引擎   testmyisam ,,——myisam引擎

2。数据库全备份(innobackupex参数请参考)

创建备份目录

mkdir /备份

全库备份

innobackupex ——defaults-file=/etc/my.cnf ——用户=root ——密码=& # 39;Abcd234 ! & # 39;,/备份/20180424/

3。全备份之后的操作

。创建myisam存储引擎的表testmyisam2

mysql>, show 表;   +----------------+   | |,Tables_in_test    +----------------+   |,test1 ,,,,,,,, |   |,test2 ,,,,,,,, |   |,testmyisam ,,, |   |,testmyisam2 ,, |   +----------------+   4,rows  set 拷贝;(0.00,sec)

b。删除表test2

mysql>, drop  table  test2;   Query 好吧,,0,rows  affected (0.03,秒)   mysql>, show 表;   +----------------+   | |,Tables_in_test    +----------------+   |,test1 ,,,,,,,, |   |,testmyisam ,,, |   |,testmyisam2 ,, |   +----------------+   3,rows  set 拷贝;(0.00,sec)

4。innobackupex备份mysql的过程,就是文件的拷贝,在拷贝数据的过程中,数据会发生变化,所以备份出来的数据文件是不一致的。为了保证数据的一致性,需要应用这段时间产生的binlog,才能做到备份数据文件的一致性。后续回复才能有效。

innobackupex备份及恢复测试简析