阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

mysqldum全库数据压缩备份通用脚本

143次阅读
没有评论

共计 3105 个字符,预计需要花费 8 分钟才能阅读完成。

随着业务的不断增长,在 MySQLd 上的数据势必会越来越多,那么只有备份单个库的备份脚本就不再适用实际的生产环境,因此就那篇的备份脚本重新写了下(http://www.linuxidc.com/Linux/2017-02/140392.htm),当然因为数据量的增大,磁盘空间也要节约使用,那么就可以通过压缩效率极高 bzip2 来对备份的数据进行进一步的压缩数据,当然如果系统中没有 bzip2 的话,需要安装,这个安装可以通过 rpm 的前端工具 yum 或者 apt-get 等安装或者是直接安装源码包都可以,这个比较简单在这里就不再做过多的赘述了,脚本如下:

#!/bin/bash
#masterbak.sh version3.0 chmod 700
#writer jim
#00 03 * * * /usr/local/scripts/master_dbbak.sh
#history
#2016.11.19
#2016.12.3
export datetime=`date +”%Y%m%d”`
export base_bindir=”/usr/local/mysql/bin”
export mysql_socket=”/tmp/mysql.sock”
export mysql_password=”youpassword”
# 当然也可以在系统的家目录下加.my.cnf 在里面的 [mysql] 和[mysqldump]下写上备份的账户密码
export datadir=”`$base_bindir/mysql -S $mysql_socket -p$mysql_password -Bse “show variables like ‘datadir’;” |awk ‘{print $2}’`”
export mysql_backup=”/data/backup/mysql_backup”
export masterbakdir=”$mysql_backup/masterbakdir”
export backup_log=”$masterbakdir/logs”
######################## 设定要备份的库 ################################
export exclude=”information_schema|performance_schema|mysql”
export all_databases=`mysql -Bse “show databases;”|egrep -v “$exclude”`
 
if [! -e “$backup_log/”$datetime””];then
        mkdir -p $backup_log/”$datetime”
fi
 
######################### 记录主库库状态 #################################
$base_bindir/mysql -S $mysql_socket -p$mysql_password -e “select now();show master status\G” |tee -a $backup_log/”$datetime”/masterstat_${datetime}.log
########################### 开始备份 #####################################
echo “============================ start mysqldump `date`” | tee -a $backup_log/”$datetime”/masterstat_${datetime}.log
 
for i in $all_databases
do
    $base_bindir/mysqldump –allow-keywords -S $mysql_socket -p$mysql_password -R –add-locks –opt $i > $masterbakdir/$i-$datetime.sql
    echo “`date` $i backup success” |tee -a $backup_log/”$datetime”/masterstat_${datetime}.log
done
 
if [$? -eq 0];then
    echo “============================ end mysqldump `date +”%Y-%m-%d %H:%M:%S”`”|tee -a $backup_log/”$datetime”/masterstat_${datetime}.log
else
    echo “`date` mysqldump backup fail”|tee -a $backup_log/”$datetime”/masterstat_${datetime}.log
fi
######################### 进行数据压缩 #######################################
/usr/bin/bzip2 -z $masterbakdir/*.sql
#################### 删除 7 天前的备份数据及 30 天前的 log#################
find $masterbakdir -type f -ctime +7 -name “*.bz2” -exec rm -vf {} \; >> $backup_log/free-${datetime}.log
find $backup_log -type f -ctime +7 -name “free-*” -exec rm -vf {} \;
find $backup_log -type d -ctime +30 -name “*” -exec rm -vrf {} \;
exit 0

使用 mysqldump 进行 MariaDB 的备份  http://www.linuxidc.com/Linux/2015-07/120294.htm

使用 mysqldump 导出数据库  http://www.linuxidc.com/Linux/2014-10/108192.htm

基于 mysqldump 快速搭建从库  http://www.linuxidc.com/Linux/2015-04/116170.htm

恢复 mysqldump 创建的备份集  http://www.linuxidc.com/Linux/2015-02/113631.htm

使用 mysqldump 命令行工具创建逻辑备份  http://www.linuxidc.com/Linux/2015-02/113629.htm

mysqldump 实现数据库逻辑备份 http://www.linuxidc.com/Linux/2015-08/121551.htm

mysqlpump 与 mysqldump 及 mydumper 的备份速度测试  http://www.linuxidc.com/Linux/2016-12/138170.htm

MySQL 的逻辑备份(mydumper+mysqldump) http://www.linuxidc.com/Linux/2016-12/137854.htm

mysqldump 快速搭建特定库主从架构(GTID) http://www.linuxidc.com/Linux/2016-10/136127.htm

mysqldump –master-data 参数实现主从复制快速部署 http://www.linuxidc.com/Linux/2016-07/133529.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140391.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3105字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中