天天看點

mysql資料庫自動備份

為了減輕DBA的工作,資料庫自動備份當然少不了,今天我和大家一起來學習通過crontab實作mysql資料的自動備份

我們在/etc/cron.daily/目錄下建立檔案backup内容如下

#!/bin/bash

#定義變量name的值,/bin/date日期格式為Y年-m月-d日

name=`/bin/date "+%Y-%m-%d"`  

#/usr/bin/mysqldump  備份資料庫的指令路徑

#-u root 資料庫的使用者名

#-p password 資料庫的密碼把password替換成你自己的密碼

#--opt database 你要備份的資料庫 如果要備份所有的庫你可以把--opt database替換成--all-databases前面那個database是你資料庫的名字,後面的databases是mysqldump的參數别搞混了

#/home/backup/database$name.sql這個是資料庫備份的路徑,$符号後面的name就是最前面定義的那個日期,備份的檔案将會以你自己定義的檔案名加當時的日期來命名

/usr/bin/mysqldump -u root -ppassword --opt test  > /home/backup/test$name.sql 

#這個就是備份所有資料庫的指令,和前面的有點小差别

/usr/bin/mysqldump -u root -ppassword --all-databases | gzip --fast > /home/backup/full$name.gz

不一樣的地方就是把--opt改成了--all-databases,再就是後面的壓縮參數gzip,這個參數也可以使用到前面的那個單個資料庫的備份指令中

儲存退出

#修改檔案backup為可執行檔案

chmod +x /etc/cron.daily/backup

進入crontab的配置檔案

# cat /etc/crontab

#每小時執行一次/etc/cron.hourly/目錄下的檔案

01 * * * * root run-parts /etc/cron.hourly

#每天執行一次/etc/cron.hourly/目錄下的檔案,執行時間是04點

00 04 * * * root run-parts /etc/cron.daily

#每周執行一次/etc/cron.hourly/目錄下的檔案,每周的第一天04點22分

22 4 * * 0 root run-parts /etc/cron.weekly

每月執行一次/etc/cron.hourly/目錄下的檔案,每月的第一天04點42分

42 4 1 * * root run-parts /etc/cron.monthly

剛才我們已經把backup腳本建立到了/etc/cron.daily這個目錄下,也就是每天04點都會自動執行腳本做資料庫的備份了

#重新開機crond服務

service crond restart

本文轉自yunlielai51CTO部落格,原文連結:http://blog.51cto.com/4925054/1105806,如需轉載請自行聯系原作者