失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql完全备份 增量备份及恢复脚本【MySQL】

mysql完全备份 增量备份及恢复脚本【MySQL】

时间:2020-09-06 22:36:46

相关推荐

mysql完全备份 增量备份及恢复脚本【MySQL】

数据库|mysql教程

mysql

数据库-mysql教程

易语言手机挂qq源码,vscode在线版,root如何进入ubuntu,tomcat目录权限,sqlite日期查询转换,js模态框插件,前端框架眼镜拍照教程,爬虫没有语音提醒,php 添加数据,上海seo的工资,c 电子商城网站,mp4网页播放插件,最新仿魔客吧商业版模板,wordpress多页面统一头部,图书馆管理系统代码 asp,织梦程序购物车lzw

刚进入公司时,领导分配的实验任务,这是我写的第一个比较完整和满意的mysql全备,増备及恢复脚本,欢迎指点!

html 仿视频网站源码,ubuntu光标怎么设置,tomcat和邮件服务器,爬虫使用案例,27岁学php晚吗,东莞seo行业lzw

代码如下!

simcms二手车源码团购商业版,vscode如何设置背景色,ubuntu安装ntfs,tomcat的jk插件,python爬虫回车,php 相关技术,seo优化从哪里找推广,网站介绍模板lzw

#!/bin/bash# full && increment backup and recover# 说明:事先要确保存在/data/bak目录,且要保证在执行增量备份时已做过至少一次全量备份,否则找不到position文件。port=3306ack_src_dir="/data/mysql/${port}/logs/binlog"back_dir=/data/bakDATE=`date +%Y%m%d`user= ootpass=cyak_db= est1mysql_bin=/usr/local/mysql-5.1.48/binsocket="/data/mysql/${port}/mysql.sock"full_bak(){cd ${back_dir}DumpFile=Full_back$DATE.sql${mysql_bin}/mysqldump --lock-all-tables --flush-logs --master-data=2 -u${user} -p${pass} ${bak_db} > ${DumpFile}${mysql_bin}/mysql -u${user} -p${pass} --socket=${socket} -e "unlock tables"#把当前的binlog和position信息存入position文件cat ${DumpFile} |grep MASTER_LOG_FILE|awk -F"\" {print $2} > ${back_dir}/positioncat ${DumpFile} |grep MASTER_LOG_FILE|awk -F"=" {print $3} |awk -F";" {print $1} >> ${back_dir}/position}incre_bak(){#锁定表,刷新log${mysql_bin}/mysql -u${user} -p${pass} --socket=${socket} -e "flush tables with read lock"${mysql_bin}/mysqladmin -u${user} -p${pass} --socket=${socket} flush-logs#获取上次备份完成时的binlog和positioncd ${back_dir}start_binlog=`sed -n 1p position`start_pos=`sed -n 2p position`#获取目前的binlog和positionmysql -u${user} -p${pass} --socket=${socket} -e "show master status/G" | awk {print $2}| sed -n 2,3p > now_positionstop_binlog=`sed -n 1p now_position`stop_pos=`sed -n 2p now_position`#如果在同一个binlog中if [ "${start_binlog}" == "${stop_binlog}" ]; then${mysql_bin}/mysqlbinlog --start-position=${start_pos} --stop-position=${stop_pos} ${back_src_dir}/${start_binlog} >> Incr_back$DATE.sql #跨binlog备份elsestartline=`awk "/${start_binlog}/{print NR}" ${back_src_dir}/mysql-bin.index`stopline=`wc -l ${back_src_dir}/mysql-bin.index |awk {print $1}`for i in `seq ${startline} ${stopline}`dobinlog=`sed -n "$i"p ${back_src_dir}/mysql-bin.index |sed s/.*////g`case "${binlog}" in"${start_binlog}")${mysql_bin}/mysqlbinlog --start-position=${start_pos} ${back_src_dir}/${binlog} >> Incr_back$DATE.sql;;"${stop_binlog}")${mysql_bin}/mysqlbinlog --stop-position=${stop_pos} ${back_src_dir}/${binlog} >> Incr_back$DATE.sql;;*)${mysql_bin}/mysqlbinlog ${back_src_dir}/${binlog} >> Incr_back$DATE.sql;; esacdonefi#解除表锁定,并保存目前的binlog和position信息到position文件。${mysql_bin}/mysql -u${user} -p${pass} --socket=${socket} -e "unlock tables"cp now_position position}full_recov(){cd ${back_dir}recov_file1=`ls | grep Full_back`${mysql_bin}/mysql -u${user} -p${pass} --socket=${socket} -e "use ${bak_db}; source ${back_dir}/${recov_file1};"}incre_recov(){ cd ${back_dir}recov_file2=`ls |grep Incr_back` ${mysql_bin}/mysql -u${user} -p${pass} --socket=${socket} -e "use ${bak_db}; source ${back_dir}/${recov_file2};"}while truedoecho -e "/t/t**************************************"echoecho -e "/t/t/tWelcome to backup program!"echoecho -e "/t/t/t(1) Full Backup For MySQL"echo -e "/t/t/t(2) Increment Backup For MySQL"echo -e "/t/t/t(3) Recover From The Full Backup File"echo -e "/t/t/t(4) Recover From The Increment Backup File"echo -e "/t/t/t(5) Exit The Program!"echo echo -e "/t/t**************************************"read -p "Enter your choice:" choicecase $choice in1)echo "now! lets backup the data by full method......."full_bakecho "succeed!"sleep 2;;2)echo "now! lets backup the data by increment method......"incre_bakecho "succeed"sleep 2;;3)echo "now! lets recover from the full back file"full_recovecho "successful"sleep 2;;4)echo "now! lets recover from the increment backup file"incre_recovecho "successful"sleep 2;;5)break;;*)echo "Wrong Option! try again!"sleep 2continue;;esacdone

如果觉得《mysql完全备份 增量备份及恢复脚本【MySQL】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。