程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> 如何利用crontab每天定時備份MySQL數據庫

如何利用crontab每天定時備份MySQL數據庫

編輯:MYSQL入門知識
 

當數據庫服務器建立並正式投入生產使用後,我們不得不擔憂一個問題:當數據庫遭到破壞後,怎樣安然恢復到最後一次正常的狀態,使得數據的損失達到最小。
我這裡以本博客的wordpress數據為例,來討論並實現全自動話的數據備份。

一、配置備份任務

1、建立自動備份腳本

為了使數據庫備份和恢復的符合我們的實際要求(備份保留七天,每天凌晨備份一次),用一段符合要求的Shell腳本來實現整個備份過程的自動化。

[root@mysqltest ~]# vim mysql-backup.sh
#!/bin/bash
##作者:Barlow##
##最後修訂:2013-6-25##
#腳本作用:備份Mysql數據庫
#
#設定備份保留天數K
K=7
#
TODAY=`date '+%Y%m%d'`
KDAY=`date -d "$TODAY - $K day" '+%Y%m%d'`
BACKDIR=/var/mysqlbak/$TODAY
KDAYDIR=/var/mysqlbak/$KDAY
mkdir -p $BACKDIR
#
# The Password of MySQL
ROOTPASS=******* ##將*替換為實際mysql數據庫的root密碼
#
# Get the Name of Database
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
#
# Backup with Database
for dbname in $DBLIST
do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done
#
#刪除過期備份
if [ -d "$KDAYDIR" ];then
rm -rf $KDAYDIR
exit
fi

改變腳本權限,root具有完全權限,其他用戶沒有任何權限:

[root@mysqltest ~]# chmod 700 mysql-backup.sh

運行一次腳本:

[root@mysqltest ~]# ./mysql-backup.sh

查看運行結果:

[root@mysqltest ~]# ll /var/mysqlbak/20130625/
mysql/ wordpress/
[root@mysqltest ~]# ll /var/mysqlbak/20130625/
總用量 8
drwxr-x---. 2 mysql mysql 4096 6月 25 14:26 mysql
drwxr-x---. 2 mysql mysql 4096 6月 25 14:26 wordpress

可以看到備份已經成功完成。

2、創建自動任務每天運行

[root@mysqltest ~]# crontab -e
00 01 * * * /root/mysql-backup.sh
##每天凌晨1點運行一次  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved