Xtrabackup每周增量备份脚本程序(含附件)

  • A+
所属分类:MySQL

程序描述

本程序是一个对percona xtrabackup使用的脚本,它完成了MySQL每周的备份。

程序结构

此程序包含了4个目录(bin、conf、log、var):

  • bin:存放运行备份的主脚本程序(*.sh)。
  • conf:存放着程序运行的配置文件变量(*.conf)。
  • log:存放的是备份时xtrabackup的输出内容(*.log)。
  • var:存放了索引文件(*.index)和错误记录文件(*.err)。
  1. *.index:每当备份成功后都会记录一条信息到此文件中,此文件也是增量备份的一个基础文件,程序会用过此文件判断是增量备份还是全量备份。
  2. *.err:每当备份出错了会记录一条数据到此文件。如果需要对备份成功与否进行监控,可以通过此文件的变化来判断是否备份成(文件无变化就是备份成功了)。

程序流程图

程序流程图

先决条件

确保你的xtrabackup 程序在机器上已经可以正确使用。

注意事项

为了安全请使用root以外的用户来使用本程序,本人专门使用了一个mysql用户来执行mysql相关的操作。

使用方式

  • 执行

  • 备份成功索引文件内容

  • 备份失败错误文件内容

(提示:其实索引文件的内容格式和错误文件的一样)

程序展示

以下主要展示了程序文件中的内容。附件将会在文章尾部附上

  • 配置文件 mysql_increment_hot_backup.conf

  • 主程序说明

程序说明这里分4个模块来看(主逻辑、变量初始化、检测文件正确性、使用的其他方法)

  1. 主逻辑

2. 变量初始化

3. 检测配置文件正确性

4. 使用的其他方法

(提示:其实在程序中的有关将备份成功的文件打包步骤和远程传输步骤还没有实现,有兴趣的可以自行处理。当然,熟练使用xtrabackup的可以直接使用xtrabackup中的--stream 和 --remote-host 参数来进行远程备份。这样貌似自己实现将备份传输到远端有点多余。 :) )

作者联系方式

谢谢作者的投稿,如有任何疑问可以直接联系作者,以下为联系方式:

昵称:HH

QQ:275258836

附件

xtrabackup_cron

 

感觉本文内容不错,读后有收获?

逛逛衣服店,鼓励作者写出更好文章。

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
HH

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:7   其中:访客  7   博主  0

    • 匿名 9

      没有还原脚本?

      • 运维小伙伴 0

        使用楼主提供的脚本,发现一个问题:mkdir -p $backup_dir/$backup_folder和–no-timestamp 似乎是冲突的,直接运行脚本,会报错:“innobackupex: Error: Failed to create backup directory /XXXXX/incr_2016-05-07_18-12-45_6: 文件已存在 at /usr/bin/innobackupex line 4027”,注释掉其中的一个即可正常。我使用的Xtrabackup版本是percona-xtrabackup-2.2.9-5067.el6.x86_64。

        经实际测试, percona-xtrabackup-2.3.4-1.el6.x86_64版本下上述程序功能正常。请小伙伴们注意自己的软件版本哦,谢谢

        • Giving丶 1

          不错,谢谢!

          • chen_hao chen_hao 3

            由于有些用户说需要在备份的时候加上压缩命令方便恢复使用,这边我就添加上了
            在tar_backup_file方法中添加上如下代码
            cd $backup_dir
            tar -jcf ${1}_${backup_date}_${backup_time}_${backup_week_day}.tar.bz2
            ${1}_${backup_date}_${backup_time}_${backup_week_day}
            cd – > /dev/null
            新的程序我放在网盘上 https://yunpan.cn/crF25kgIJWuXS 访问密码 724f

            • 到此一游 9

              辛苦了

              • Koma 9

                这个很好

                • 游客 9

                  很好!