Xtrabackup流备份,增量和压缩小结

简介: 【问题背景】1、  针对MySQL文件比较大,需要压缩的数据库。 如500G数据库,xtrabackup备份后文件为500G,备份完成后再压缩打包,相当于文件读写3次。

【问题背景】

1、  针对MySQL文件比较大,需要压缩的数据库。 如500G数据库,xtrabackup备份后文件为500G,备份完成后再压缩打包,相当于文件读写3次。

2、  对于磁盘IO不好的从库,整个过程会持续好几个小时,有时把IO直接搞到100%, 导致从库延时很大。

3、  xtrabackup的xbstream流备份,直接备份后,通过管道直接压缩,这样把原约3次的IO,减少为一次,整个使用时间也变短了。

【适合使用场景】

1、  数据库文件比较大,要压缩的库;导致整个备份时间长,且要求从库延迟不能太大的库。

【线上使用示例】

主站有一组机器已测试通过,简单对比:

1、  xtrabackup全量备份,不压缩,直接tar包170G, 用时80分钟; xtrabackup流备份+libz2压缩,文件大小46G, 用时40分钟。

2、  备份过程中两个的IO util对比:

常规备份,不压缩:

Xbstream备份+压缩

【基本使用原理】

1 备份步骤

由于xbstream+压缩备份后,无备份目录,xtrabackup可指定--extra-lsndir目录,此目录只存放此次备份的xtrabackup_checkpoints文件;后面的增量备份时,--incremental-basedir就指向前一日的extra-lsndir目录便可。

1)  全量备份命令:

innobackupex --user=dump  --password=xxx  --host=127.0.0.1  --slave-info --stream=xbstream --extra-lsndir="$lsndir"  $baseDir 2>>"$backupLog" | lbzip2 -kv -n 10 > "$backup_file" 2>>"$backupLog"

2) 增量备份命令:

innobackupex --user=dump  --password=xxx  --host=127.0.0.1  --slave-info --stream=xbstream --extra-lsndir="$lsndir"  --incremental  --incremental-basedir="$last_lsndir"  $baseDir 2>>"$backupLog" | lbzip2 -kv -n 10 > "$backup_file" 2>>"$backupLog"

2、  还原步骤

备份后生成的为压缩了的文件,所以要解压,再用xbstream打开流体文件(较之原来还原,多了此步骤)。

1)  解压压缩的文件:lbzip2 -dkv -n 10 2013-07-14_bak_full.bz2

2)  解压液体文件为目录: xbstream -x < 2013-07-14_bak_full -C /work/bak/2013-07-14_full/

目录
相关文章
|
3月前
|
数据安全/隐私保护
服务器备份的常见方法包括完全备份、增量备份、差异备份和实时备份
服务器备份的常见方法包括完全备份、增量备份、差异备份和实时备份
522 3
|
7月前
|
存储 数据库
全量备份和增量备份
全量备份和增量备份
558 6
xtrabackup 增量,全备份,恢复备份
mysql5x 版本对应xrtabackup2.4
179 0
|
SQL Oracle 关系型数据库
归档模式redo丢失
归档模式redo丢失
1132 0
|
SQL Oracle NoSQL
非归档模式redo丢失情况处理
实验1: 非归档模式ACTIVE redo丢失。实验2: 非归档模式CURRENT redo 丢失。实验3: 非归档模式redo 多个member 丢失部分member.实验4: 非归档模式INACTIVE redo丢失。
1409 0
|
网络安全 数据安全/隐私保护