3 Star 7 Fork 10

mo-shan / script

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
xtrabackup恢复演练.md 5.09 KB
一键复制 编辑 原始数据 按行查看 历史
mo-shan 提交于 2019-05-31 15:07 . test

备份恢复

一、准备工作

1、准备lbzip2解压缩工具

wget http://archive.lbzip2.org/lbzip2-2.5.tar.gz
tar zxf lbzip2-2.5.tar.gz
cd lbzip2-2.5
./configure
make && make install
lbzip2 -d -k 3321_full_stream_3321_2019-05-13_01.bz2

注:如果已经安装该工具,则跳过该步骤

2、准备xtrabackup工具

scp -l 20000 -P37100 -r /opt/soft/xtrabackup 10.8.101.157:/opt/soft

附:

二、全量恢复

[root@qs-mgdb-101 tmp]# ls -l 3321_full_stream_3321_2019-05-13_01.bz2 
-rw-r--r-- 1 root root 106509185392 5月  16 16:38 3321_full_stream_3321_2019-05-13_01.bz2
[root@qs-mgdb-101 tmp]# 

1、解压备份文件

  • 这里使用的是lbzip2工具解压。
mkdir -p /tmp/{tmp1,tmp2} #创建需要的临时目录, tmp1保存全量备份解压、抽取出来的文件, tmp2是临时目录
lbzip2 -d -k 3321_full_stream_3321_2019-05-13_01.bz2

2、流抽取

xbstream -x < 3321_full_stream_3321_2019-05-13_01 -C /tmp/tmp1

3、应用redo日志

innobackupex --prepare --apply-log --tmpdir=/tmp/tmp2 /tmp/tmp1

注:这里的tmpdir目录路径必须是绝对路径

4、copy到数据目录

innobackupex --defaults-file=/opt/soft/mysql/my_3321.cnf --copy-back --use-memory=959M --tmpdir=/tmp/tmp2 /tmp/tmp1

注:这里的tmpdir目录路径必须是绝对路径

三、增量恢复

[root@qs-mgdb-101 tmp]# ls -l
总用量 932084
-rw-r--r-- 1 root root 814503191 5月  16 17:57 3325_full_stream_3325_2019-05-13_03.bz2
-rw-r--r-- 1 root root  66027561 5月  16 17:57 3325_incremental_stream_3325_2019-05-14_03.bz2
-rw-r--r-- 1 root root  37749280 5月  16 17:57 3325_incremental_stream_3325_2019-05-15_03.bz2
-rw-r--r-- 1 root root  36158531 5月  16 17:57 3325_incremental_stream_3325_2019-05-16_03.bz2
[root@qs-mgdb-101 tmp]# 

1、处理压缩文件

这里使用的是lbzip2工具解压。

mkdir -p /tmp/{tmp1,tmp2,tmp3}    #创建需要的临时目录, tmp1保存全量备份解压、抽取出来的文件, tmp2保存增量备份解压、抽取出来的文件, tmp3是临时目录
lbzip2 -d -k 3325_full_stream_3325_2019-05-13_03.bz2
lbzip2 -d -k 3325_incremental_stream_3325_2019-05-14_03.bz2
lbzip2 -d -k 3325_incremental_stream_3325_2019-05-15_03.bz2
lbzip2 -d -k 3325_incremental_stream_3325_2019-05-16_03.bz2

2、处理增量备份文件

(1)流抽取全量备份文件

xbstream -x < 3325_full_stream_3325_2019-05-13_03.bz2 -C /tmp/tmp1

(2)应用全量备份的redo日志

innobackupex --prepare --redo-only --apply-log --tmpdir=/tmp/tmp3 /tmp/tmp1

注:这里需要加上--read-only参数,这里的tmpdir目录路径必须是绝对路径

3、处理增量备份文件

需要注意一下两点:

  • 有多少个增量备份就需要重复几次(1)(2)两个步骤。
  • 只要增量文件不是最后一个,在应用redo日志的时候都需要加上--redo-only。
  • 为了更直观的演示,这里将所有操作都贴出来,实际上只需要参考(1)(2)即可。

(1)流抽取第一个增量备份文件

xbstream -x < 3325_incremental_stream_3325_2019-05-14_03 -C /tmp/tmp2

(2)应用第一个增量备份的redo日志,并合并到全量备份目录

innobackupex --prepare --redo-only --apply-log --incremental-dir=/tmp/tmp2 --tmpdir=/tmp/tmp3 /tmp/tmp1

注:这里需要加上--read-only参数,这里的tmpdir目录路径必须是绝对路径

(3)流抽取第二个增量备份文件

rm -rf /tmp/tmp2/* #需要先清空tmp2目录
xbstream -x < 3325_incremental_stream_3325_2019-05-15_03 -C /tmp/tmp2

(4)应用第二个增量备份的redo日志,并合并到全量备份目录

innobackupex --prepare --redo-only --apply-log --incremental-dir=/tmp/tmp2 --tmpdir=/tmp/tmp3 /tmp/tmp1

注:这里需要加上--read-only参数,这里的tmpdir目录路径必须是绝对路径

(5)流抽取第三个(也是最后一个)增量备份文件

rm -rf /tmp/tmp2/* #需要先清空tmp2目录
xbstream -x < 3325_incremental_stream_3325_2019-05-16_03 -C /tmp/tmp2

(6)应用第三个(也是最后一个)增量备份的redo日志,并合并到全量备份目录

innobackupex --prepare --apply-log --incremental-dir=/tmp/tmp2 --tmpdir=/tmp/tmp3 /tmp/tmp1

注:注意,这里不需要加上--redo-only,这里的tmpdir目录路径必须是绝对路径

4、copy到数据目录

innobackupex --defaults-file=/opt/soft/mysql/my_3325.cnf --copy-back --use-memory=959M --tmpdir=/tmp/tmp3 /tmp/tmp1

注:这里的tmpdir目录路径必须是绝对路径

1
https://gitee.com/mo-shan/script.git
git@gitee.com:mo-shan/script.git
mo-shan
script
script
master

搜索帮助