Mysql定時備份資料指令碼

來源:互聯網
上載者:User

標籤:mysqld   bash   rm -rf   mysq   expr   sql   處理   計劃   情況   

項目3.0的叢集以搭建完成,只剩下細節相關的配置,和後期安全和最佳化的處理,考慮到資料庫資料需要備份處理,

但每天手動進行備份處理太過於被動,而且白天使用者訪問,會有資料變化以及在備份時會影響伺服器正常啟動並執行效能,

所以考慮寫一個指令碼,並制定一個定時任務進行執行指令碼備份資料;

#!/bin/bash
###資料庫定時備份,並將備份的庫進行打包壓縮
user=root
passwd=123456
back_path=/vdb1/mysql/backup
data_name=zmq123
date=`date +%Y%m%d`

mkdir $back_path/$date
mysqldump -u $user -p$passwd $data_name |gzip > $back_path/$date/$data_name.sql.gz

#定時任務,計劃在每天晚上23點55分進行資料備份
55 23   *  *  * . /vdb1/mysql/mysqldump.sh

當運行了一段時間後,發現備份的資料有些占磁碟空間的,而我要儲存的只是最近一月的資料就可以了,所以將這個指令碼進行升級,

在可能沒有人注意的情況下,而磁碟不會被備份資料佔滿;

###升級版每天晚上11:55分進行定時備份,
#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
backpath=/vdb1/mysql/backup/$year$month/
user=root
passwd=123456
dataname=zmq123

[ -d $backpath ] || mkdir -p $backpath
rq=`date +%Y%m%d`
mysqldump -u $user -p$passwd $dataname|gzip >$backpath/$rq.sql.gz

#定時任務
分 時   日 月 周
55 23   *  *  * . /vdb1/mysql/mysqldump.sh

########每月2號晚上11:30進行定時刪除上個月備份資料
#!/bin/bash
year=`date +%Y`
month=`date +%m`
month=`expr $month - 1`
 if [ $month -eq 0 ];then
    month=12
    day=31
    year=`expr $year - 1`
 fi

 if [ $month -lt 10 ];then
    pre=0
 fi

backdir=/vdb1/mysql/backup/$year$pre$month
rm -rf $backdir                    #刪除上一個月的資料
##定時任務
30 23  2 * * . /vdb1/mysql/delmysqlbak.sh

OK!編寫完成,先運行段時間看下吧!有情況再進行改進;

Mysql定時備份資料指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.