《Mysql應(yīng)用linux下改良版本mysqldump來備份MYSQL數(shù)據(jù)庫》要點:
本文介紹了Mysql應(yīng)用linux下改良版本mysqldump來備份MYSQL數(shù)據(jù)庫,希望對您有用。如果有疑問,可以聯(lián)系我們。
因為MYSQLDUMP會為整個庫來加一個全局鎖定.
如果單純用MYSQLDUMP進(jìn)行全庫備份會造成以下三個方面的影響.
1、服務(wù)器CPU嚴(yán)重阻塞.
2、磁盤I/O直線增加.
3、所有的查詢都成了慢查詢.
我現(xiàn)在的網(wǎng)站數(shù)據(jù)庫大概是5個G左右,而且每天都有增大.
表結(jié)構(gòu)是MYISAM,INNODB,MEMORY三者混合.
所以單純用HOTCOPY工具恐怕有點困難.所以我今天簡單變了一下我上次寫的關(guān)于用OUTFILE來備份MYSQL的腳本.
可以解決上面說的三個缺點.
1、備份腳本內(nèi)容 [david_yeung@localhost?~]$?cat?fast_backup?
#!/bin/sh
#
#?Created?by?david?yeung.
#
#?20080707.
#
#?Backup?mysql's?full?data.
#
DBNAME=$1
BACKUPDIR=/home/david_yeung/backup_new
USERNAME=backup_user
PASSWD=123456
TARNAME="$BACKUPDIR"/backup"$1"`date?'+%Y%m%d'`
#?Add?your?own?database?name?here.
case?"$1"?in
??my_site);;
??*)?exit;;?
esac
#?Get?all?the?tables'?name.
NUM=`/usr/local/mysql/bin/mysql?-u$USERNAME?-p$PASSWD?-s?-vv?-e?"show?tables"?-D?$DBNAME|wc?-l`
HEADNUM=`expr?${NUM}?-?3`
TAILNUM=`expr?${NUM}?-?7`
ARR1=`/usr/local/mysql/bin/mysql?-u$USERNAME?-p$PASSWD?-s?-vv?-e?"show?tables"?-D?$DBNAME|?head?-n"$HEADNUM"?|?tail?-n?"$TAILNUM"`
ARR2=($ARR1)
i=0
while?[?"$i"?-lt?"${#ARR2[@]}"?]
do
?tmpFileName=${ARR2[$i]}
?#?The?real?dump?process.
?/usr/local/mysql/bin/mysqldump?-u$USERNAME?-p"$PASSWD"?"$DBNAME"?"$tmpFileName"?>>?"$TARNAME"?
?let?"i++"
done
2、因為我們一直用存儲過程,所以得單獨備份出來.
[david_yeung@localhost?~]$?cat?fast_sp
#!/bin/sh
#?Created?by?david?yeung?20080122.
#
#?Backup?site's?routine.
TARNAME=/home/david_yeung/backup_new/spBackup"$1"`date?'+%Y%m%d'`
/usr/local/mysql/bin/mysqldump?-ubackup_user?-p123456?-n?-t?-d?-R?my_site?>?"$TARNAME"
3、丟到計劃任務(wù)里面去,就不管了. [root@localhost?backup_new]#?crontab?-l
0?01?*?*?*?/home/david_yeung/fast_backup?my_site
0?0?*?*?5?/home/david_yeung/fast_sp
每天凌晨1點備份數(shù)據(jù),每個周五凌晨備份存儲過程.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/1046.html