mysql备份脚本,每天执行一次全量备份,三次增量备份
线上一个小业务的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备份脚本,每天执行一次全量备份,三次增量备份的更多相关文章
- 将mysql数据同步到ES6.4(全量+增量)
下载安装包时注意下载到指定文件夹 这里我放在OPT文件夹下一:安装logstash进入到opt文件夹打开终端 执行以下命令wget -c https://artifacts.elastic.co/do ...
- Percona-XtraBackup系列三:增量备份恢复
1:创建测试表和测试库如果需要快速建立测试表和库的话,参考之前写的这篇博客:http://www.cnblogs.com/xiaoit/p/3376685.html create database b ...
- kettle入门(七) 之kettle增量方案(一)全量比对取增量-依据唯一标示
引: ods有个project表来自于上游系统,数据量不大 十几万,下游系统须要此数据,而且须要每天提供截止当天的增量数据 要求每条数据给出数据变化时间及标示,即数据若是插入 有插入时间和插入标示 若 ...
- innobackupex 备份 Xtrabackup 增量备份
Mysql增量备份Xtrabackup中包含两个工具:• xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表).• i ...
- mysql全量和增量备份详解(带脚本)
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...
- Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份 ...
- MySQL XtraBackup备份脚本
#backup.sh #!/bin/sh #on xtrabackup 2.1.8 # 第一次执行它的时候它会检查是否有完全备份,否则先创建一个全库备份 # 当你再次运行它的时候,它会根据脚本中的设 ...
- mysql容灾备份脚本
一,环境需求 **安装前准备 操作系统环境:Centos 7.2 [root@localhost soft]# rpm -qa | grep mariadb [root@localhost soft] ...
- Mysql备份工具xtraback全量和增量测试
Mysql备份工具xtraback全量和增量测试 xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表) 官方网址http:// ...
随机推荐
- 配置apache的虚拟机+软件下载
第一步: 打开c:/wamp/apache/conf中的httpd.conf文件, 在httpd.conf中ctrl+f输入vhosts 找到那一行将前面的#号去掉 操作如图所示 第二步: 打开虚拟主 ...
- Java 流(Stream)、文件(File)和IO
Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一个数据的序 ...
- css实现在图片上显示文字
一. 准备工作 1. 点击此下载 相关的文件 二. 浏览器中运行 play-img.html 文件,即可显示效果 三. 效果图
- Windows 安装Kafka
Windows 7 安装Apache kafka_2.11-0.9.0.1 下载所需文件 Zookeeper: http://www.apache.org/dyn/closer.cgi/zoo ...
- 2016 最佳 Linux 发行版排行榜
2015年,不管在企业市场还是个人消费市场都是 Linux非常重要的一年.作为一个自2005年起就开始使用 Linux的 Linuxer ,我门见证了 Linux在过去十年的成长.2016 Linux ...
- 利用firebug调试功能辅助了解闭包和this
算一算,有段时间没写博客. 上午的时候翻看以前收藏的一个系列博文<深入理解javascript原型和闭包>, 讲闭包那节:http://www.cnblogs.com/wangfupeng ...
- Ajax与json
Ajax Ajax简介 Ajax技术,从用户发送请求到获取响应,当用户界面在整个过程中不会受到干扰,而且我们可以在必要的时候只刷新页面的一小部分,而不用刷新整个页面,即"无刷新"技 ...
- idea如何设置类头注释和方法注释
CSDN 2016博客之星评选结果公布 [系列直播]算法与游戏实战技术 "我的2016"主题征文活动 详细:idea如何设置类头注释和方法注释 标签: idea ...
- java之多线程 二
线程的生命周期: 当线程被创建并被启动时,它既不是一启动就进入了执行状态,在线程的生命周期中,它要经过new(新建),就绪(Runnable),运行(Running),阻塞(Blocked),dead ...
- quartz集群分布式(并发)部署解决方案-Spring
项目中使用分布式并发部署定时任务,多台跨JVM,按照常理逻辑每个JVM的定时任务会各自运行,这样就会存在问题,多台分布式JVM机器的应用服务同时干活,一个是加重服务负担,另外一个是存在严重的逻辑问题, ...