|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!关于数据库的备份和规复是DBA的次要义务,而怎样才干无效的备份数据库,而且能在数据库溃散的时分实时规复便变的相称主要了,假如在Linux上纯手动的备份数据库,将会带来很年夜的贫苦,一切我就写了个剧本,把剧本到场到按期义务列表中,按期实行数据备份,这就变得加倍简单办理数据库了,我这里是一个复杂的小剧本,固然在实践援用中还要修正,好比增加用户和暗码,能够依据本人的必要在做修正。
上面复杂的先容一下这个剧本,这个剧本实行的时分有四个参数:
/PATH/mysqlbak.sh-f//完整备份,这个能够依据本人数据库变化的情形设置多长工夫实行一次,到场一个月实行一次吧!
/PATH/mysqlbak.sh-d//这个是从最初一次完整备份到今朝的工夫的一次差别备份,如许就削减了备份数据库的工夫。
/PATH/mysqlbak.sh-i//这个参数能够完成增量备份,也就是上一次备份和此次备份之间数据库的变化,这个工夫能够短一点,如许能够在数据库溃散的时分削减丧失,能够一个小时一次。
/PATH/mysqlbak.sh-h//这个是匡助信息
把这些都到场到按期实行企图中,就能够完成主动实行剧本了,不必***手动举行备份了。
#!/bin/bash
#
functionHELPTXT{
echo"/PATH/mysqlbak.sh-f:Youcanbackupalldatabases"
echo"/PATH/mysqlbak.sh-i:Justbackuptheexterchangefromthelastbackup"
echo"/PATH/mysqlbak.sh-d:Backupfromthelastfull-backuptothecurrenttime"
}
DATE=`date"+%F-%H-%M-%S"`
mysql-e"FLUSHTABLESWITHREADLOCK;"
mysql-e"SHOWMASTERSTATUS;">/dev/null
startfile=/tmp/startposition
exterfile=/tmp/exterposition
whilegetopts"fdih"OPTS;do
case$OPTSin
f)
mysqldump--all-databases>/mybackup/db.$DATE
STARTPOSITION=`mysql-e"SHOWMASTERSTATUS;"|tail-1|awk{print$2}>$startfile`
ESTARTPOSITION=`mysql-e"SHOWMASTERSTATUS;"|tail-1|awk{print$2}>$exterfile`
cd/mybackup
tar-cjf/root/bakmysql/db.$DATE.tar.gz2db.$DATE>/dev/null
;;
d)
mysql-e"FLUSHTABLESWITHREADLOCK;"
mysql-e"SHOWMASTERSTATUS;">/dev/null
FILE=`mysql-e"SHOWMASTERSTATUS;"|tail-1|awk{print$1}`
STARTPOSITION=`cat$startfile`
ENDPOSITION=`mysql-e"SHOWMASTERSTATUS;"|tail-1|awk{print$2}`
mysqlbinlog--start-position$STARTPOSITION--stop-position$ENDPOSITION/mydata/data/$FILE>/mybackup/incre.$DATE
cd/mybackup
tar-cjf/root/bakmysql/incre.$DATE.tar.gz2incre.$DATE>/dev/null
;;
i)
mysql-e"FLUSHTABLESWITHREADLOCK;"
mysql-e"SHOWMASTERSTATUS;">/dev/null
FILE=`mysql-e"SHOWMASTERSTATUS;"|tail-1|awk{print$1}`
EENDPOSITION=`mysql-e"SHOWMASTERSTATUS;"|tail-1|awk{print$2}>>$exterfile`
ESTARTPOSITION=`tail-n2$exterfile|head-n1`
Exendposition=`tail-n1$exterfile`
mysqlbinlog--start-position$ESTARTPOSITION--stop-position$Exendposition/mydata/data/$FILE>/mybackup/exter.$DATE
cd/mybackup
tar-cjf/root/bakmysql/exter.$DATE.tar.gz2exter.$DATE>/dev/null
;;
h)
HELPTXT
;;
esac
done
在crontab-e中增加义务企图,就可以完成主动备份数据库了!!
但愿这个小剧本可以让你加倍便利的办理mysql数据库,若有成绩,能够配合切磋!
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|