Xtrabackup实现Mysql的InnoDB引擎热备份-国外便宜VPS

前面Zabbix使用的数据库是mysql,数据库备份不用多说,必须滴,由于使用的是innodb引擎,既然做,那就使用第三方强大的Xtrabackup工具来热备吧,Xtrabackup的说明,参见https://my.oschina.net/u/1171265/blog/200437

数据库备份

简单粗暴,下面给出mysql备份脚本:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

 

#!/bin/bash

#mysql热备脚本,Version:1.0

#Author:jzd

#备份策略:每周一进行完整备份,以后每一天在前一天的基础上进行增量备份

#

#备份目录

back_dir=&#8221;/back&#8221;</p>

<p>#备份数据库信息

host=&#8221;127.0.0.1&#8243;

dbuser=&#8221;dbuser&#8221;

dbpasswd=&#8221;dbpasswd&#8221;</p>

<p>#日志文件

back_log=&#8221;${back_dir}/mysql_back.log&#8221;</p>

<p>#week day

week_day=`date+%w`

#yesterday

yesterday=`date+%F-d&#8220;1 days ago&#8221;`</p>

<p>#日志记录函数

functionlog(){</p>

<p>  echo&#8220;`date` $1&#8221; | tee -a ${back_log}</p>

<p>}</p>

<p>#判断当前日期,是周一进行全备份,其他时间进行增量备份

if[${week_day}-eq1];then

#完整备份

  log&#8220;周${week_day}开始完全备份&#8230;&#8221;

  innobackupex&#8211;host=${host} &#8211;user=${dbuser} &#8211;password=${dbpasswd} ${back_dir} &amp;&gt;&gt; ${back_log}

  if[$?-eq0];then

    log&#8220;完全备份完毕.&#8221;

    else

       log&#8220;完全备份出错,请检查.&#8221;

       exit1

  fi

  else

    let dir_num=`find${back_dir}-typed-name&#8220;${yesterday}*&#8221; | wc -l`

    if[${dir_num}-ne1];then

      log&#8220;昨天增量目录未找到或昨天备份目录大于等于2个,请确认后再次备份.&#8221;

      exit1

    fi

    incremental_dir=`find${back_dir}-typed-name&#8220;${yesterday}*&#8221;`

    log&#8220;周${week_day}开始增量备份&#8230;&#8221;

    #增量备份

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。