MySQL備份

1. MySQL排除表備份

#!/bin/bash
#created by 90root
#date: 20160809
 
date_y=$(date +%Y)
date_m=$(date +%m)
time=`date '+%F-%R'`
mysql_user="mysql_user"
mysql_passwd="mysql_passwd"
mysql_host="127.0.0.1"
tar_path="/data/backup/backup_mysql_tables"
mysql_dump="mysqldump -h$mysql_host -u$mysql_user -p$mysql_passwd"
mysql_cmd="mysql -h$mysql_host -u$mysql_user -p$mysql_passwd"
 
#備份數據庫列表
backup_db_arr=("test1" "test2" "test3" "test4")
 
#測數據庫存放路徑
if [ ! -d $tar_path/$date_y/$date_m ];then
    mkdir -p $tar_path/$date_y/$date_m
fi
 
 
#排除備份數據庫列表
exclude_db_tables="tables_name1|tables_name2|tables_name3|tables_name4"
 
#循環數組
for j in "${backup_db_arr[@]}";do
    if [ "$j" == "test2" ];then
        for i in `$mysql_cmd -e "use $j;show tables"|sed '1d'|grep -Ev "$exclude_db_tables"`;do
            $mysql_dump $j $i|gzip >> $tar_path/$date_y/$date_m/$j-$time.sql.gz
        done
    else
        $mysql_dump $j |gzip >> $tar_path/$date_y/$date_m/$j-$time.sql.gz
    fi
done

2. MySQL多庫備份

#!/bin/bash
#about: 90root
 
date=$(date +%Y%m%d-%H:%M)
date_y=$(date +%Y)
date_m=$(date +%m)
Mysql_Backup_Path=/data/backup/backup_mysql
Mysql_host="127.0.0.1"
Mysql_user="mysql_user"
Mysql_pass="mysql_passwd"
Mysql_cmd="mysql -h$Mysql_host -u$Mysql_user -p$Mysql_pass"
Mysql_dump="mysqldump -h$Mysql_host -u$Mysql_user -p$Mysql_pass"
Mysql_database="test1 test2 test3"
 
#檢測數據庫存放路徑
if [ ! -d $Mysql_Backup_Path/$date_d ];then
    mkdir -p $Mysql_Backup_Path/$date_y/$date_m
fi
 
#清空mysql備份日誌文件
echo > $Mysql_Backup_Path/mysqldump.log
 
#判斷日期目錄
if [ ! -d $Mysql_Backup_Path/$date_y/$date_m ];then
    mkdir $Mysql_Backup_Path/$date_y/$date_m
fi
 
#多庫備份
for dbname in $Mysql_database;do
    $Mysql_dump $dbname | gzip > $Mysql_Backup_Path/$date_y/$date_m/${dbname}_${date}.sql.gz
    if [ $? -eq 0 ];then
        echo "****** mysqldump ${dbname} `date +%Y%m%d-%H:%M:%S` ******" >> $Mysql_Backup_Path/mysqldump.log
    fi
done


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章