Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1366712
  • 博文数量: 243
  • 博客积分: 888
  • 博客等级: 准尉
  • 技术积分: 2955
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-05 14:33
个人简介

漫漫长路,其修远兮!

文章分类

全部博文(243)

文章存档

2017年(2)

2016年(22)

2015年(32)

2014年(57)

2013年(107)

2012年(23)

分类: Mysql/postgreSQL

2014-12-31 13:42:41

Percona最近发布了xtrabackup-2.1.0-alphal版本,可以支持基于AES256算法的数据加密,对于容灾存储不可信的场景来说,真是福音啊,可以不用自己写脚本实现了:)

可以从。下面是具体的使用过程:
1. 先进行备份

innobackupex --defaults-file=/home/mysql/mysql/etc/my.cnf \
--ibbackup=xtrabackup   --user=mysqlbackup --password='********' \
--host=127.0.0.1 --tmpdir=/tmp --compact --compress \
--compress-threads=5 --encrypt=AES256 \
--encrypt-key=3c0efcea569021b49245e47b5d6a0e28  \
--encrypt-threads=5 --no-timestamp --parallel=2 backup_data

看到下面的输出就说明OK了。

innobackupex: completed OK!
几个关键参数说明如下:--compact  # 备份数据不保存二级索引页(secondary index),apply-log的时候需要对应加上rebuild-indexes进行重建
# 压缩
--compress # 开启压缩,目前只支持quicklz算法
--compress-threads=5 # 并发压缩线程,默认为1
--compress-chunk-size=64K # 每个压缩线程使用的buffer,默认64K
# 加密
--encrypt=AES256 # 开启加密,目前支持的算法有AES128, AES192 和 AES256
--encrypt-key=3c0efcea569021b49245e47b5d6a0e28  # 32位密钥,不过不推荐这么使用,最好将密钥存放在文件中,用encrypt-key-file参数引用
--encrypt-threads=5 # 加密线程数,默认为1
2. 恢复。恢复过程相比直接备份会麻烦一点,需要先解密,再解压,才能进行apply-log
1) 解密,需要使用和加密时相同的key
for i in `find . -iname "*\.xbcrypt"`; do
    xbcrypt -d --encrypt-key=3c0efcea569021b49245e47b5d6a0e28 \
        --encrypt-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i
done
2) 解压缩。xtrabackup目前没有buildin的解压缩方式,需要使用第三方解压工具
for i in `find . -iname "*\.qp"`; do qpress -d $i  $(dirname $i) && rm $i; done

qpress可以支持多核,可以有效的提升解压效率。解压时加上-Tn,默认为2.
 3) 接下来就是正常的apply-log了,记得加上–rebuild-indexes
innobackupex --defaults-file=/home/mysql/mysql/etc/my.cnf \
--ibbackup=xtrabackup --apply-log \
--rebuild-indexes backup_data
最后:压缩效率还是挺高的,实测结果使用压缩后的备份比正常压缩可以节省70%的空间,当然这个和具体的场景有关,各位可以试试自己的场景:)

阅读(3662) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~