程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> MySQL的自動備份方法

MySQL的自動備份方法

編輯:更多數據庫知識

   MySql自動備份是非常關鍵的,特別是對於DBA來說。這裡主要用代碼來說明這個問題,希望對各位有所幫助。可以將這個腳本放進crontab,每天凌晨執行一次,自動備份。

這個腳本每天最多只執行一次,而且只保留最近五天的備份在服務器上。

代碼:

#!/bin/bash

#ThisisaShellScriptForAutoDBBackup

 

#Poweredbyaspbiz

 

#2004-09

 

#Setting

#設置數據庫名,數據庫登錄名,密碼,備份路徑,日志路徑,數據文件位置,以及備份方式

 

#默認情況下備份方式是tar,還可以是mysqldump,mysqldotcopy

 

#默認情況下,用root(空)登錄mysql數據庫,備份至/root/dbxxxxx.tgz

 

DBName=mysql

 

DBUser=root

 

DBPasswd=

 

BackupPath=/root/

 

LogFile=/root/db.log

 

DBPath=/var/lib/mysql/

 

#BackupMethod=mysqldump

 

#BackupMethod=mysqlhotcopy

 

#BackupMethod=tar

 

#SettingEnd

 

 

NewFile="$BackupPath"db$(date+%y%m%d).tgz

 

DumpFile="$BackupPath"db$(date+%y%m%d)

 

OldFile="$BackupPath"db$(date+%y%m%d--date='5daysago').tgz

 

echo"-------------------------------------------">>$LogFile

echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile

 

echo"--------------------------">>$LogFile

 

#DeleteOldFile

 

if[-f$OldFile]

 

then

 

rm-f$OldFile>>$LogFile2>&1

 

echo"[$OldFile]DeleteOldFileSuccess!">>$LogFile

 

else

 

echo"[$OldFile]NoOldBackupFile!">>$LogFile

 

fi

 

if[-f$NewFile]

then

 

echo"[$NewFile]TheBackupFileisexists,Can'tBackup!">>$LogFile

 

else

 

case$BackupMethodin

 

mysqldump)

 

if[-z$DBPasswd]

 

then

 

mysqldump-u$DBUser--opt$DBName>$DumpFile

 

else

 

mysqldump-u$DBUser-p$DBPasswd--opt$DBName>$DumpFile

 

fi

 

tarczvf$NewFile$DumpFile>>$LogFile2>&1

 

echo"[$NewFile]BackupSuccess!">>$LogFile

 

rm-rf$DumpFile

 

;;

 

mysqlhotcopy)

 

rm-rf$DumpFile

 

mkdir$DumpFile

 

if[-z$DBPasswd]

 

then

 

mysqlhotcopy-u$DBUser$DBName$DumpFile>>$LogFile2>&1

 

else

 

mysqlhotcopy-u$DBUser-p$DBPasswd$DBName$DumpFile>>$LogFile2>&1

 

fi

 

tarczvf$NewFile$DumpFile>>$LogFile2>&1

 

echo"[$NewFile]BackupSuccess!">>$LogFile

 

rm-rf$DumpFile

 

;;

 

*)

 

/etc/init.d/mysqldstop>/dev/null2>&1

 

tarczvf$NewFile$DBPath$DBName>>$LogFile2>&1

 

/etc/init.d/mysqldstart>/dev/null2>&1

 

echo"[$NewFile]BackupSuccess!">>$LogFile

 

;;

 

esac

 

fi

 

echo"-------------------------------------------">>$LogFile

   關於MySQL數據庫的自動備份就為大家介紹到這裡,大家按照上文中講解的步驟方法去進行MySQL數據庫的自動備份工作,相信您一定可以很好的完成MySQL數據庫的自動備份工作。

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