当前位置:Gxlcms > 数据库问题 > mysql分库分表备份脚本

mysql分库分表备份脚本

时间:2021-07-01 10:21:17 帮助过:22人阅读

2017-08-24 #创建备份用户 #grant select,lock tables,reload,super,file,show view on *.* to mysqlbackup@localhost identified by my_password; #grant execute on *.* to mysqlbackup@localhost identified by my_password; 授予调用存储过程的权限 ##flush privileges; USERNAME=mysqlbackup #备份的用户名 PASSWORD=my_password #备份的密码 HOST=localhost #备份主机 DATE=`date +%Y-%m-%d` #用来做备份文件名字的一部分 OLDDATE=`date +%Y-%m-%d -d -10 days` #本地保存天数 #指定命令所用的全路径 MYSQL=/app/mysql5.5/bin/mysql MYSQLDUMP=/app/mysql5.5/bin/mysqldump MYSQLADMIN=/app/mysql5.5/bin/mysqladmin #创建备份的目录和文件 BACKDIR=/data/backup/db [ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} [ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE} [ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE} #保存10天 多余的删除最前边的 #开始备份 for循环想要备份的数据库 MYSQLDUMP_LIST=$(${MYSQL} -uroot -p123456 -e "show databases"| grep -Evi "database|infor|perfor|mysql") for DBNAME in ${MYSQLDUMP_LIST} ##使用for依次罗列需要备份的数据库名字 do TABLE="$(${MYSQL} -uroot -p‘123456‘ -e "use $DBNAME;show tables;"|sed ‘1d‘)" #依次列出需要备份的表的名字 for tname in $TABLE do MYDIR=${BACKDIR}/${DATE}/${DBNAME} #echo $MYDIR [ ! -d $MYDIR ] && mkdir -p $MYDIR #创建备份表的目录 $MYSQLDUMP -uroot -p123456 $DBNAME $tname |gzip >$MYDIR/${DBNAME}_${tname}_${DATE}.sql.gz done logger "${DBNAME}_${tname} has been backup successful - $DATE" done

 

mysql分库分表备份脚本

标签:select   分表   exec   list   备份表   day   done   存储过程   view   

人气教程排行