线上一个小业务的mysql备份

全量备份

#!/bin/bash
#crete by hexm at --
#scripte name : full_backup.sh
#descriptioni : mysql full backup. oneday at a time. #time info
date=`date +%Y%m%d`
#time_now1=`date +%Y%m%d-%H:%M:%S` #dir info
BACKUP_DIR="/app/dbbackup/full_backup/"
today_dir="/app/dbbackup/full_backup/${date}"
LOG=/app/dbbackup/logs/dumpfull_${date}.txt
if [ ! -d "${BACKUP_DIR}" ]; then
mkdir -p "${BACKUP_DIR}"
fi
if [ ! -d "${today_dir}" ]; then
mkdir -p "${today_dir}"
fi echo `date +%Y%m%d%H%M%S` > ${today_dir}/time.txt
# 循环databases数组
time_now1=`date +%Y%m%d-%H:%M:%S`
echo "${time_now1} start to full backup" >> ${LOG}
for db in `/usr/local/mysql/bin/mysql -uroot -pwoyoudabaitu -e 'show databases'|grep -Ev "mysql|test|performance_schema|information_schema|Database"`
do
# 备份数据库生成SQL文件
#/bin/nice -n /usr/local/mysql/bin/mysqldump -uroot -pwoyou --database $db > ${today_dir}${db}-$(date +%Y%m%d).sql
/bin/nice -n //usr/local/mysql/bin/mysqldump -uroot -pwoyou --database --flush-privileges --master-data --single-transaction --opt $db > ${today_dir}/${db}-${date}.sql
done time_now2=`date +%Y%m%d-%H:%M:%S`
echo "${time_now2} full backup successfull" >> $LOG #get position
sleep if [ -f "${today_dir}/db_179_act-${date}.sql" ]; then
sed -n '22p' ${today_dir}/db_179_act-${date}.sql |awk -F"[! ]" '{print $4,$10}' > $today_dir/position
echo "${time_now2} get position ok!" >> $LOG
else
time_now3=`date +%Y%m%d-%H:%M:%S`
echo "${time_now3} get position faild" >> $LOG
#$SEND_MSG
fi #remove days ago backup.
find $BACKUP_DIR -mtime + -delete
#echo "remove 1 days ago full backup!" >> $LOG

增量备份

#!/bin/bash
#crete by hexm at --
#scripte name : increment_backup.sh
#descriptioni : mysql increment backup. hours at a time. #time info
date=`date +%Y%m%d`
time_hour=`date +%Y%m%d%H`
#time_now1=`date +%Y%m%d-%H:%M:%S` #dir info
BACKUP_DIR=/app/dbbackup/increment_backup/
LOG=/app/dbbackup/logs/dumpincr_${date}.txt
#TIME_DIR=/app/dbbackup/full_backup/${time_hour}
if [ ! -d "${BACKUP_DIR}" ]; then
mkdir -p "${BACKUP_DIR}"
fi time_now1=`date +%Y%m%d-%H:%M:%S`
echo "${time_now1} start to increment backup" >> ${LOG} cd /app/mysql.bin
tar cf ${time_hour}_mysql_bin.tar.gz *
wait
mv /app/mysql.bin/*.tar.gz ${BACKUP_DIR}
cd ls ${BACKUP_DIR}/${time_hour}_mysql_bin.tar.gz &> /dev/null if [ $? -eq 0 ];then
time_now2=`date +%Y%m%d-%H:%M:%S`
echo "${time_now2} increment backup successfull" >> $LOG
else
echo "${time_now2} increment backup faild" >> $LOG
#SEND_MSG
fi #remove 1 days ago backup.
#find $BACKUP_DIR -mtime +7 -delete
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -delete
#echo "remove 1 days ago increment backup!" >> $LOG

定时任务

#mysqldump backup mysql
* * * /bin/bash /app/bin/full_backup.sh & &>/dev/null
* * * /bin/bash /app/bin/increment_backup.sh & &>/dev/null
* * * /bin/bash /app/bin/increment_backup.sh & &>/dev/null
* * * /bin/bash /app/bin/increment_backup.sh & &>/dev/null

mysql备份脚本,每天执行一次全量备份,三次增量备份的更多相关文章

  1. 将mysql数据同步到ES6.4(全量+增量)

    下载安装包时注意下载到指定文件夹 这里我放在OPT文件夹下一:安装logstash进入到opt文件夹打开终端 执行以下命令wget -c https://artifacts.elastic.co/do ...

  2. Percona-XtraBackup系列三:增量备份恢复

    1:创建测试表和测试库如果需要快速建立测试表和库的话,参考之前写的这篇博客:http://www.cnblogs.com/xiaoit/p/3376685.html create database b ...

  3. kettle入门(七) 之kettle增量方案(一)全量比对取增量-依据唯一标示

    引: ods有个project表来自于上游系统,数据量不大 十几万,下游系统须要此数据,而且须要每天提供截止当天的增量数据 要求每条数据给出数据变化时间及标示,即数据若是插入 有插入时间和插入标示 若 ...

  4. innobackupex 备份 Xtrabackup 增量备份

    Mysql增量备份Xtrabackup中包含两个工具:•        xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表).•        i ...

  5. mysql全量和增量备份详解(带脚本)

    在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...

  6. Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录

    在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份 ...

  7. MySQL XtraBackup备份脚本

     #backup.sh #!/bin/sh #on xtrabackup 2.1.8 # 第一次执行它的时候它会检查是否有完全备份,否则先创建一个全库备份 # 当你再次运行它的时候,它会根据脚本中的设 ...

  8. mysql容灾备份脚本

    一,环境需求 **安装前准备 操作系统环境:Centos 7.2 [root@localhost soft]# rpm -qa | grep mariadb [root@localhost soft] ...

  9. Mysql备份工具xtraback全量和增量测试

    Mysql备份工具xtraback全量和增量测试   xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表) 官方网址http:// ...

随机推荐

  1. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  2. Apache配置

    redhat6.4企业版用的centos的yum源. 下面进行apache的安装与配置. 1.yum在线安装Apache 一般不采用yum在线安装因为如果apache坏掉了,yum安装过程中会有依赖的 ...

  3. 解决Android Graphical Layout 界面效果不显示

    解决Android Graphical Layout 界面效果不显示 qq463431476

  4. CentOS 6.5下Redis安装记录

    Redis简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工 ...

  5. #essay 161218# 自己的markdown笔记(日记)方法

    写在前面 本文可能极度无聊--自己markdown笔记方法 我的工具 1. computer 2. samsung mobile phone(自己的小S3) 3. markdownpad 2 4. p ...

  6. 《InsideUE4》-8-GamePlay架构(七)GameMode和GameState

    我的世界,我做主 引言 上文我们说到在Actor层次,UE用Controller来充当APawn的逻辑控制者,也有了可以接受玩家输入的PlayerController,和能自行行动的AIControl ...

  7. MVC架构学习之EasyFirst——快点夸我爱学习~

    iMooc上的MVC教程练习. MVC是PHP基础和进阶的分界点吧应该说是 一.准备 工欲善其事~ 个人环境:windows10+wamp2.5+ZendStudio12: 项目名称:MVCEasyF ...

  8. PAT 1037. 在霍格沃茨找零钱(20)

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...

  9. Python学习Day2笔记(集合和文件操作)

    1.集合的使用 列表是有序的可包含重复内容的 集合是无序的不可包含重复内容的 1) 集合关系测试 #列表去重list_1=[1,4,5,6,7,8,9,7,5,4,23,2] #有重复数据 list_ ...

  10. SmallPtAMP: C++ AMP implementation of SmallPt / SmallPtGPU

    前段时间突然对SmallPtGPU很感兴趣,于是自己也照葫芦画瓢搞了一个C++AMP的版本,整体跟SmallPtGPU基本相同,但是去掉了SmallPtGPU中显式计算直接光照的步骤,因而实现更加接近 ...