mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
--dump完全备份
vi /tmp/mysql_full_bak.sh
#!/bin/sh
scriptsDir='pwd'
mysqlDir='/usr/local/mysql'
user=root
userPWD=root123
dataBackupDir=/tmp/mysqlbackup
eMailFile=$dataBackupDir/email.txt
eMail=chenhaibo@myhexin.com
logFile=$dataBackupDir/mysqlbackup.log
#DATE='date -I'
DATE=`date -I`
echo "" > $eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
cd $dataBackupDir
dumpFile=mysql_$DATE.sql
GZDumpFile=mysql_$DATE.sql.tar.gz
#bakup
$mysqlDir/bin/mysqldump -u$user -p$userPWD \
--opt --default-character-set=utf8 --extended-insert=false \
--triggers -R --hex-blob --all-databases \
--flush-logs --delete-master-logs \
-x > $dumpFile
#tar
if [[ $? == 0 ]]; then
tar czf $GZDumpFile $dumpFile >> eMailFile 2>&1
echo "BackupFileName:$GZDumpFile" >> $eMailFile
echo "DataBase Backup Success!" >> $eMailFile
rm -rf $dumpFile
#delete previous daily backup files
cd $dataBackupDir/daily
rm -f *
# Delete old backup files(mtime>2).
#$scriptsDir/rmBackup.sh
#Move Backup Files To Backup Server.
#适合Linux(MySQL服务器)到Linux(备份服务器)
#$scriptsDir/rsyncBackup.sh
#if (( !$? )); then
#echo "Move Backup Files To Backup Server Success!" >> $eMailFile
# else
# echo "Move Backup Files To Backup Server Fail!" >> $eMailFile
# fi
#else
#echo "DataBase Backup Fail!" >> $emailFile
fi
#write log
echo "--------------------------------------------------------" >> $logFile
cat $eMailFile >> $logFile
#send imail
cat $eMailFile | mail -s "MySQL Backup" $eMail
增量备份
vi /tmp/mysql_daily_bak.sh
#!/bin/sh
scriptsDir='pwd'
mysqlDir='/usr/local/mysql'
dataDir=$mysqlDir/var
user=root
userPWD=root123
dataBackupDir=/tmp/mysqlbackup
dailyBackupDir=$dataBackupDir/daily
eMailFile=$dataBackupDir/email.txt
eMail=chenhaibo@myhexin.com
logFile=$dataBackupDir/mysqlbackup.log
DATE=`date -I`
HOSTNAME=`uname -n`
echo "" > $eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
#刷新日志
$mysqlDir/bin/mysqladmin -u$user -p$userPWD flush-logs
cd $dataDir
filelist=`cat mysql-bin.index`
iCounter=0
for file in $filelist
do
iCounter=`expr $iCounter + 1`
done
nextNum=0
iFile=0
for file in $filelist
do
binLogName=`basename $file`
nextNum=`expr $nextNum + 1`
if [[ $nextNum == $iCounter ]]; then
echo "skip lastest!" > /dev/null
else
dest=$dailyBackupDir/$binLogName
#跳过已备份的二进制日志文件
if [[ -e $dest ]]; then
echo "Skip exist $binLogName!" > /dev/null
else
# 备份日志文件到备份目录
cp $binLogName $dailyBackupDir
if [[ $? == 0 ]]; then
iFile=`expr $iFile + 1`
echo "$binLogName Backup Success!" >> $eMailFile
fi
fi
fi
done
if [[ $iFile == 0 ]];then
echo "No Binlog Backup!" >> $eMailFile
else
echo "Backup $iFile File(s)." >> $eMailFile
echo "Backup MySQL Binlog OK!" >> $eMailFile
fi
删除old文件
vi /tmp/rmBackup.sh
#!/bin/sh
# Name:rmBackup.sh
# PS:Delete old Backup.
# 定义备份目录
dataBackupDir=/tmp/mysqlbackup
# 删除mtime>2的日志备份文件
find $dataBackupDir -name "mysql_*.gz" -type f -mtime +2 -exec rm {} \; > /dev/null 2>&1
同步备份到备份服务器
vi /tmp/rsyncBackup.sh
#!/bin/sh
# Name:rsyncBackup.sh
#定义数据库备份目录
dataBackupDir=/tmp/mysqlbackup/
# 定义备份服务器上存放备份数据的目录
backupServerDir=/root/mysqlbackup/
# 定义备份服务器
backupServer=172.16.107.133
# 同步备份文件到备份服务器
rsync -a --delete $dataBackupDir -e ssh $backupServer:$backupServerDir > /dev/null 2>&1
恢复服务器
全部恢复
mysqldump --user=root -p --all-databases > /backup/mysql.sql
DB恢复
/usr/local/mysql/bin/mysql -uroot -pUserPWD db_name < db_name.sql
增量恢复
1.对于任何可适用的更新日志,将它们作为 mysql 的输入
% ls -t -r -1 HOSTNAME-bin* | xargs mysqlbinlog | mysql -uUser –pUserPWD
2.一般恢复
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000052 | mysql -uUser -pUserPWD
定制任务
#crontab –e
10 4 * * 1-6 root /tmp/mysql_daily_bak.sh #礼拜一到礼拜六运行每天备份脚本
10 4 * * 0 root /tmp/mysql_full_bak.sh #礼拜天执行全备份的脚本
mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell相关推荐
- mysql 备份锁表_mysql 不停机 短时间锁表 备份 主备同步 新增备份机器
刷新数据 [[email protected] ~]# mysql -e 'flush tables with read lock;' 锁表刷新表数据 [[email protected] ~]# m ...
- mysql 策略_MySQL 密码策略
MySQL密码策略 MySQL 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题. 密码策略问题异常信息: ERROR 1819 (HY000): You ...
- oracle备份保留3天,【错误更正】oracle 备份: 每天备份,全备份,保留七天。...
1. 保留七天 只保留七天的备份是这样设置的 RMAN connect target/ connected to target database: DBSID (DBID=3100778490) RM ...
- mysql数据库恢复策略_MySQL 备份和恢复策略(一)
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.本文主要对MyISAM表做备份恢复. 备份策略一:直接拷贝数据 ...
- oracle的rman备份保留天数,rman备份集的保留策略
rman备份集的保留策略 基于时间和基于冗余数量的备份保留策略 基于时间的备份保留策略: 你希望数据库最早能恢复到几天前,比如7,那么保留的备份文件就能保证将数据库恢复到一周内任何一个时刻.设置命令: ...
- RMAN备份概念_关于备份保留策略(RETENTION POLICY)
可以使用CONFIGURE RETENTION POLICY命令来创建一个持续的和自动备份保留策略. 当备份保留策略生效时,RMAN根据CONFIGURE命令指定的标准将数据文件或控制文件的备份视为过 ...
- RMAN 的备份保留策略
RMAN 的备份保留策略: 命令格式: configure retention policy clear ---------------备份保留策略使用默认值 configure retention ...
- mysql 完全备份恢复吗_mysql完全备份与恢复
备份的重要性: 在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大概分为以下几种. 硬件故障 软件故障 自然灾害 ×××××× 误操作 (占比最大) 备份类型: 物理和逻辑角度: 物 ...
- mysql冷区域热区域_mysql的数据备份方式,及热备与冷备的优缺点对比
一.按照数据库的运行状态分类: (1)热备:在数据库运行时,直接进行备份,对运行的数据库没有影响 (2)冷备:在数据库停止运行的时候进行备份,这种备份方式最为简单,只需要拷贝数据库物理文件即可. (3 ...
最新文章
- matlab preloadfcn,运行xilinx blockset中的错误包含在matlab中
- Spring @Lazy
- sklearn之svm-葡萄酒质量预测(2)
- 一起来看看Fastjson的三种漏洞利用链
- python教程:可变长参数(*args、**kwargs)、返回值(return)
- [云炬python3玩转机器学习笔记] 2-5机器学习相关的哲学思考
- 什么是Session分布式共享
- Java正则表达式实现计算器_用java编写win7计算器
- 【Java】I/O阻塞下的守护线程与程序计数
- mysql 获取所有用户所有权限存储过程
- linux摄像头流媒体开源项目,Github上最受欢迎的10大开源免费的RTSP流媒体项目
- MOEA/D学习记录
- ButterWorth滤波器学习(参照博主链接——https://blog.csdn.net/cjsh_123456/article/details/79342300)
- html批量转换ppt,将ppt批量转换成图片(一张幻灯片转成一张图片)
- 51单片机-LED点阵
- 【OpenCv】图像分割——分水岭算法
- .net core 上传excel文件
- 2013 【第四届蓝桥杯省赛】 C/C++ B组
- labview声音信号采集和分离
- 提交辞职申请时,领导挽留,要不要留下来
热门文章
- Leet Code OJ 112. Path Sum [Difficulty: Easy]
- Leet Code OJ 231. Power of Two [Difficulty: Easy]
- 整车物流系统源代码_整车物流AGV智能搬运机器人一阶段实地测试顺利完成
- Effective Java之避免使用受检的异常(五十九)
- 【解题报告】Leecode. 575. 分糖果——Leecode每日一题系列
- (*长期更新)软考网络工程师学习笔记——Section 15 无线网络技术
- 剑指Offer25 合并两个排序的链表
- php dedecms 记录访问者ip,dedecms实现显示访问者ip地址的办法
- /etc/rc.local——开机自启配置文件
- 利用JNative实现Java调用动态库