先看看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参数解释,请参考官网
整个测试流程如下图
下面开始我的备份,恢复测试
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,才能做到备份数据文件的一致性。后续回复才能有效。