快乐学习
前程无忧、中华英才非你莫属!

Day19-Xtrabackup增量备份详解和自动备份、还原

一、增量备份介绍

只对与全备的数据和现在线数据库的那部分差异数据的备份。

  

1、基于全备的增量备份:

innobackupex --defaults-file=/etc/my.cnf --user=root --password="RU5DMMBN4XL1BD3mp/Vy/uep3CvfXSXOgaqeC8fLYemRWgc/64rRpd2o94GpIOOPEmKj0KH9MEE2lOmKA+ncf83cukHIyrsGbHreEpAmqd128OJeQfsCkcML6kxzrL2BQJQd5fp/XiEpswF7/U05uksoAQ5RzxzQwI/EHnK50KlhVlzYCeMGycXO1fCpF5Sa7djZN44J9ICxFbHsmpgPrNn9J94Sc7M/piLWJfRHIcqBEAaAar1YfNHn5A4VoZbiYn0ef6JGnrTo/7w0+TmPQq2y2wTi3e+WB8CgtxEYhcW/+T4CwjLiUC1LlgKqL2jxBRsI/io1wXf/LU4PafxbaenMJxjRXUGqmcdyyc0tLrX6rEgBGYcAw5Uxx7BmOPHMwMqmTAR+HFJc2puOx4D8yVpfR6nAURvsampLqLSyQqhOny7H" --socket=/data/mysql/mysql.sock  --incremental /bak/add/  --incremental-basedir=/bak/full/2017-05-12_22-57-05/ --parallel=2

2、基于增量备份的增量备份:

innobackupex --defaults-file=/etc/my.cnf --user=root --password="RU5DMNgwJ6G0fD6oUDVwUmiCrbsMSNOYFpvwzdtdn0US+8HkwzDHj6mm0T/wS0HD3VWgDy/yX0mIJzBRR8fGv0ivGNxnyV8GVAUbrRfX/v999w56wTKDDxLP1M+wCm/UBiR2CqbNTj5w5vwROF2IGC7SM0OgdiFXAwVU/VyVTobe3l0FyjlW481ULg6scnnfrBkYsVQnATyO9dQscaQnhIDrdkjq76o2fF7pFFue6G9CIxleBBisuZR22yI7s2RoU52Yb4UibeYffbCcXcckEAGmxuIZwUPsKuLLuxDt2zPG1nVHuSZfpITQReVEV4eE9/GdThBHE2T0Fb6j4gq812787sQ9CT4Ex4gENFJYdLxGxktzTYG+PrLq0xmNiqeUSVlNpwerAm8A5OiOLbpf2YGiPf/fYsXKy+rss4SQCQVbug8J" --socket=/data/mysql/mysql.sock  --incremental /bak/add/  --incremental-basedir=/bak/add/2017-05-12_23-11-39/ --parallel=2

说明:

--incremental-basedir:基准目录

--incremental :增量备份的目标目录

--parallel=2  :开启两个进程

3、增量备份恢复

增量备份的恢复大体为3个步骤

*恢复完全备份

*恢复增量备份到完全备份(开始恢复的增量备份要添加--redo-only参数,到最后一次增量备份去掉--redo-only参数)

*对整体的完全备份进行恢复,回滚那些未提交的数据

恢复完全备份(注意这里一定要加--redo-only参数,该参数的意思是只应用xtrabackup日志中已提交的事务数据,不回滚还未提交的数据)

innobackupex --defaults-file=/etc/my.cnf --apply-log  --redo-only  /bak/full/*

3.1 将基于全备的增量备份1应用到完全备份

innobackupex --defaults-file=/etc/my.cnf --apply-log  --redo-only  /bak/full/2017-05-12_22-57-05/  --incremental-dir=/bak/add/2017-05-12_23-11-39/

3.2 将基于增量备份1的增量备份2应用到完全备份(注意恢复最后一个增量备份时需要去掉--redo-only参数,回滚xtrabackup日志中那些还未提交的数据)

innobackupex --defaults-file=/etc/my.cnf --apply-log  /bak/full/2017-05-12_22-57-05/  --incremental-dir=/bak/add/2017-05-13_12-02-02/

3.3 把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据:

innobackupex --defaults-file=/etc/my.cnf --apply-log   /bak/full/*

3.4、关闭数据库:Servcie mysqld stop

3.5 恢复(要保证mysql是关闭状态):

innobackupex  --defaults-file=/etc/my.cnf --copy-back --rsync /bak/full/*

3.6 授权:

cd  /data/mysql

chown -R mysql:mysql *

说明:不授权的话,.sock 生成不了,导致mysql启动报错。

3.7 验证:

开启数据库:Servcie mysqld start

二、自动备份、还原

hy.sh bakup.sh

参考此篇文章

http://blog.csdn.net/yangzhawen/article/details/44941435  

三、获得额外知识

常用同步命令

参考文章:rsync为同步的命令详解 http://www.cnblogs.com/maxincai/p/5142245.html

获取文件:

rsync -avz root@192.168.1.62:/bak/  /bak/other/

推送文件:

rsync -avzP -e 'ssh -p 22' /bak/full root@192.168.1.62:/bak/

生产环境MySQL的正确开启、关闭的姿势:

mysqld_safe --defaults-file=/etc/my.cnf  > /dev/null &
mysqladmin -uroot -pRU5DMDepnP4hk94BQCzIE8C7MBmd1dVFuarEDThD3bZMk6ltrMK55SRaobMcI3XQ6nQSL7+6er1Vp+LmxWEJ1xJzdIdBeBGiu9gUKgBmfoHhfg5FZzAlC0J3v6eT7xa7gIntqn9Jq+gBozXx50gXPrkriJf8xsveVasOV5Jc4EvevE9ZfZ4KFdQa78yrmAf7xu6UsLGKRnkfrekXV8uCnhUIDfKMkhr/AWBxtHAJRlrxEeH5SSeYctrFRJsXlG1BCYpudnZ9gRu+DBpj8SGpe3JRqhuqsbwsfi4nX7cjNMCr5lYzYTTOMYdwLN2/PWDrM5TFPqXjRv/i53jnvXHNJFkElc204Slhp+FEPV3K/RUdpvP3Q2eJajmiSatts09o4fV7Ig/SRFjhG0gYSldWyVYOZgGQRM1wO2i2CWbVDA+gLXah shutdown

shell格式不正确: 通过 vi 文件  :set ff=unix   :wq 即可解决!

 

四、总结备份策略

普通备份策略:一天进行一次物理全备,一周进行一次逻辑全备份。

精密的备份策略:如果架构比较复杂,应用比较多,有钱的话,可以针对一台服务器就跟着一个备份服务器。

如果主从复制技术保证高可用,不出错,可以在权重比较低的从库机器上进行备份策略。

策略:  每天凌晨一点进行一次物理全备,每隔1个小时进行一次物理增量备份。

            间隔3天在主库进行一次逻辑全备,并同步到备份机器上。

            说明:全面监控备份时间段的压力,如果压力过大,需要及时调解策略和者配置文件,避免因为备份造成数据库异常,从而影响业务。

            

如果上述的总结您感觉比较垃圾,不喜勿pen~。   

重点说明:备份策略n多种,看哪种安全,稳定,又经济,任何故障都可以恢复的需要优先考虑。

  

打赏
赞(0) 打赏
未经允许不得转载:同乐学堂 » Day19-Xtrabackup增量备份详解和自动备份、还原

特别的技术,给特别的你!

联系QQ:1071235258QQ群:710045715

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

error: Sorry,暂时内容不可复制!