mysql 第三十五篇文章~xtarbackup增量备份以及策略

一 简介: 今天咱们来探讨下增量备份的策略

二 背景: 随着数据量的日益增长,全备已经不现实了,所以探讨并测试了增量备份策略

三 具体策略: 1  一周为界限,一天做全备,其他时间以全备为基础进行增量备份

2  一周为界限,进行打包,然后上传到备份服务器

四 具体脚本:

第一部分 参数变量初始化

#!/bin/bash

#config

xingqi=`date +%w`

DATE=`date +%Y%m%d%H`

DATEyst=`date +"%Y%m%d%H" -d "-24hour"`
                  DISKSIZE=`df -h|grep ‘9[0-9]%‘`
                  dirname="/backup/database"
                  IP=`/sbin/ifconfig eth0 | grep ‘inet addr‘ | cut -d: -f2 | awk ‘{ print $1}‘|cut -d‘.‘ -f 3,4`
                  user="aaa"
                  password="ccc"
                  pwd=$dirname

第二部分   全备

function fullbackup() {

if [ -z "$DISKSIZE" ];then

mkdir -p $pwd
                    filename1=$DATE"_full_"$IP
                   innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$password --no-timestamp --socket=/tmp/mysql.sock --slave-info $pwd/$filename1 > /dev/null
                   sleep 2
                   else
                   echo " the disk is full "
                   fi

第三部分   第一次增量备份

function incrementalbackup(){

filename1=$DATEyst"_full_"$IP
                  filename2=$DATE"_incremental_"$IP

if [ -z "$DISKSIZE" ];then
                  innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$password --no-timestamp --socket=/tmp/mysql.sock --slave-info --incremental-basedir=$pwd/$filename1 --incremental $pwd/$filename2 > /dev/null
                  sleep 2
                  else

echo "the disk is full  "

fi

}

第四部分 第二次增量备份

function incrementalbackup_1(){

filename1=$DATEyst"_incremental_"$IP
             filename2=$DATE"_incremental_"$IP
             if [ -z "$DISKSIZE" ];then
             innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$password --no-timestamp --socket=/tmp/mysql.sock --slave-info --incremental-basedir=$pwd/$filename1 --incremental $pwd/$filename2 > /dev/null
             sleep 2
             else

echo "the disk is full "

fi

第五部分  统一打包

function tarbackup(){
          cd /backup/database
          tar -czf $DATEyst.tar.gz fullfile_xtra/
          rm -rf database/
           }

第六 部分  调用

if [ $xingqi = 2 ];then

tarbackup

fullbackup

elif [ $xingqi = 3 ];then
       incrementalbackup
       echo "incrementalbackup 1"
       elif [ $xingqi =1 ];then
       incrementalbackup_1

else
       incrementalbackup_1
       echo "incrementalbackup n"
       fi

五 增量恢复步骤

1  先恢复 全量备份

innobackupex --apply-log --redo-only BASE-DIR

2  恢复增量备份 1

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

3 恢复增量备份 2

innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

六 注意点:

备份:

1 备份脚本没有生成时间戳目录,因为有时间戳目录会增大脚本编写难度

2 备份脚本修改一些参数即可使用,是根据星期进行判断执行增量还是全量备份,全量备份前会把上一次的备份全套打包

还原

1 全量恢复+增量恢复 可以灵活进行配合 ,全量恢复是基础 切记

2  选取目标的增量恢复 不能加read-only

七  差不多就这样了,有问题留言

时间: 2024-08-29 22:59:53

mysql 第三十五篇文章~xtarbackup增量备份以及策略的相关文章

mysql 第四十五篇文章~初探MGR

一 简介 :MGR一直没有时间测试,今天咱们来初步了解搭建一下呗 二 环境: mysql5.7.20  单台机器 启动三实例 三  mysql 搭建: 1 建立相关目录+ mkdir -p /data/mysql/data_3306 mkdir -p /data/mysql/data_3307 mkdir -p /data/mysql/data_3308 2 脚本初始化 /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql

mysql 第三十九篇文章~canal的深度解读1

一 简介:经过一段时间的研究,对canal有了一些见解 二 配置文件: 1 canal.properties (系统根配置文件)     主要参数列表   canal.properties (系统根配置文件)   canal.destinations= example 当前server上部署的instance列表 默认为example 在canal.properties定义了canal.destinations后,需要在canal.conf.dir对应的目录下建立同名的文件 canal.auto

mysql 第三十二篇文章~并发导致的从库延迟问题

一 简介:今天来聊聊周期性从库延迟的问题 二 背景:近期每天的指定时间段,收到从库延迟的报警,然后过一段时间恢复.由于从库是提供读服务的,所以需要解决 三 分析思路: 1 周期性延时,而且全部从库都出现延迟,应该是由于主库的DML操作引起的 2 查看主库的慢日志记录(我们的数据库会每小时进行切割),也并没有发生DML慢语句,排除因为慢sql(DML操作)导致的问题,主库的DML操作如果出现慢语句,同步到从库会更慢,比如update,delete语句 3 查看从库的慢日志记录,是否出现DML慢语句

mysql 第十五篇文章~mycat常用管理命令

一 简介:今天咱们来聊聊mycat的管理功能二 前沿:mycat的常用管理命令需要掌握三 常用命令:   1 登录命令: mysql -uuser -ppassword -P 9066 -h 127.0.0.1 mycat管理用户的配置在server.xml中   2 Show @@backend ;查看后端host列表   3 show @@heartbeat;       | NAME | TYPE | HOST | PORT | RS_CODE | RETRY | STATUS | TIM

mysql 第二十五篇文章~相关分片功能的测试五

一 简介:今天咱们来进行测试 二分片规则 sharding-by-murmur 1 table 相关配置  <tableRule name="sharding-by-murmur"> <rule> <columns>id</columns> <algorithm>murmur</algorithm> </rule> </tableRule> 2 function 相关配置 <funct

mysql 第四十四篇文章~谈谈最基本的规范

一 简介:今天咱们来谈谈研发规范 二 规范   1 表       1 选择合适的字符集和存储引擎 推荐innodb utf8mb4       2 表名称不要包含mysql关键字,符合命名规范       3 不建议采用外键       4 尽量不要采用分区表,采用分库分表是最优方案  2 列       1 每一列都要设置comment注释        2 每一列最好都设置为非NULL,设置默认值       3 varchar和char的选择 定长选择char 变长选择varchar ,

第三十五篇-AppBarLayout的使用

效果图: 添加appbarlayout到xml文件中,然后在toolbar下面添加一个imageview并设置居中放置,我放置的是上面那个安卓的图标. 根据之前学过的toolbar那一节,结合viewpaper和toolbar设置三个页面,这时,运行程序,可能发现那三个页面并没有显示出来,NetedScollView这是个可滚动的页面,单击它,在右侧勾选fillViewport.在运行程序就可以显示页面了. page1 page2 page3 附上代码 main.java package com

第三十五篇 os模块、sys模块、json模块、pickle模块

目录 一.os模块 二.sys模块 三.json模块 dump和load 四.pickle模块 一.os模块 os模块和操作系统交互,主要用于文件操作 import os # test.py文件中 # os.mkdir() 一个路径参数和一个字符串参数.如果有路径参数,则在该路径下创建一个新的文件夹:如果无路径参数,则在当前文件的同级路径下创建一个新的文件夹 os.mkdir('king') # 创建了和test.py文件同级目录下的名为king的文件夹 # os.removedirs() 一个

小刘同学的第一百三十五篇日记

今天大致把论文改完了. 还剩一章的内容,明早大概2个小时就能改完整片论文了. 今天收到录用通知了-- 感觉很殇--可能要去小县城上班去了. 而且也不是做技术-- 不知道后面的路会怎么样, 牢记使命,不忘初心吧( ̄▽ ̄)~* 大家早安~ morning~ 原文地址:https://www.cnblogs.com/xiaoliutongxue/p/9022457.html