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

如何實現MySQL的自動備份

編輯:MySQL綜合教程

MySQL數據庫備份是非常重要的工作之一,通過MySQL數據庫的數據備份就能夠實現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