CentOS下使用mysqlhotcopy定時備份MySQL數據庫(MyISAM存儲引擎)
mysqlhotcopy與mysqldump比較: mysql
使用mysqlhotcopy以前須要安裝perl-DBI和DBD-mysql: sql
yum -y install perl perl-DBIShell腳本以下:
# Name:mysqlbackup.sh # PS:MySQL DataBase Backup,Use mysqlhotcopy script. # Last Modify:2008-06-12 # 定義變量,請根據具體狀況修改 # 定義腳本所在目錄 scriptsDir=`pwd` # 數據庫的數據目錄 dataDir=/usr/local/mysql/var/ # 數據備份目錄 tmpBackupDir=/tmp/mysqlblackup backupDir=/home/backup/mysql # 用來備份數據庫的用戶名和密碼 mysqlUser=root mysqlPWD='456123' # 若是臨時備份目錄存在,清空它,若是不存在則建立它 if [[ -e $tmpBackupDir ]]; then rm -rf $tmpBackupDir/* else mkdir $tmpBackupDir fi # 若是備份目錄不存在則建立孾C if [[ ! -e $backupDir ]];then mkdir $backupDir fi # 獲得數據庫備份列表,在此能夠過濾不想備份的數據庫 for databases in `find $dataDir -type d | \ sed -e "s/\/usr\/local\/mysql\/var\///" | \ sed -e "s/test//"`; do if [[ $databases == "" ]]; then continue else # 備份數據 /usr/local/mysql/bin/mysqlhotcopy --user=$mysqlUser --password=$mysqlPWD -q "$databases" $tmpBackupDir dateTime=`date "+%Y.%m.%d %H:%M:%S"` echo "$dateTime Database:$databases backup success!" >>MySQLBackup.log fi done # 壓縮備份文件 date=`date -I` cd $tmpBackupDir tar czf $backupDir/mysql-$date.tar.gz ./ #End完成
加入定時任務 shell
30 5 * * * /root/mysqlbackup.sh >> mysqlbackup.log 2>&1如何還原? 一、中止mysql服務器。 二、複製備份的數據庫目錄到mysql數據目錄下。 三、更改目錄全部者爲mysql服務器運行的用戶(如mysql)。 四、啓動mysql服務器