文/李來(lái)祥
Linux中MySQL的異地自動(dòng)備份
文/李來(lái)祥
隨著校園網(wǎng)應(yīng)用的日益豐富,Linux系統(tǒng)下MySQL數(shù)據(jù)庫(kù)的應(yīng)用也越來(lái)越廣泛。然而數(shù)據(jù)的意外丟失對(duì)于校園網(wǎng)應(yīng)用來(lái)說(shuō)是很大的損失,業(yè)務(wù)數(shù)據(jù)和校園網(wǎng)應(yīng)用的日常業(yè)務(wù)運(yùn)作唇齒相依。數(shù)據(jù)的丟失,即使是暫時(shí)性,也會(huì)給校園網(wǎng)應(yīng)用的正常運(yùn)行帶來(lái)諸多的麻煩,況且有些基礎(chǔ)數(shù)據(jù)是不可再生的。所以搞好數(shù)據(jù)庫(kù)的備份工作,對(duì)于校園網(wǎng)應(yīng)用的安全運(yùn)行來(lái)說(shuō)至關(guān)重要。
傳統(tǒng)的MySQL數(shù)據(jù)庫(kù)備份人為參與的因素較多,費(fèi)時(shí)費(fèi)力。而且隨著MySQL數(shù)據(jù)量的增加,傳統(tǒng)的備份方式越來(lái)越不現(xiàn)實(shí),本著低成本高效率的原則,如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)異地自動(dòng)備份是一個(gè)值得關(guān)注的話題。本文結(jié)合網(wǎng)絡(luò)應(yīng)用管理的實(shí)際經(jīng)驗(yàn),分以下幾個(gè)步驟詳細(xì)介紹了Linux環(huán)境下如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)輕量級(jí)的異地自動(dòng)備份。
數(shù)據(jù)庫(kù)服務(wù)器:Linux AS3,MySQL-4.1.14-rhel3
FTP 服務(wù)器:Linux AS3, vsftpd-1.2.0-4(Linux自帶)
由于MySQL安裝完成之后,超級(jí)用戶root的口令為空,所以任何人都可以無(wú)需口令地以root用戶進(jìn)行連接并且被授予所有權(quán)限。盡管這樣的連接必須從本地主機(jī)發(fā)出,但對(duì)于MySQL數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō)仍然是不安全的。因此備份的第一項(xiàng)工作就是應(yīng)該為root設(shè)置一個(gè)口令。方法如下:在mysql>模式下,使用SQL語(yǔ)句和PASSWORD()函數(shù)設(shè)置root口令,具體命令如下:
通過(guò)上述命令將連接使用MySQL的超級(jí)用戶root的登錄口令設(shè)置成123456。
MySQL數(shù)據(jù)庫(kù)的常用備份方法是使用應(yīng)用程序mysqldump,備份命令格式如下:
說(shuō)明:
(1)mysql_bin_dir:mysqldump所在的路徑,一般默認(rèn)為為/usr/bin
(2)user:數(shù)據(jù)庫(kù)用戶名;
(3)dataname:數(shù)據(jù)庫(kù)名;
(4)password:用戶密碼;
(5)$(date +%Y%m%d):系統(tǒng)用來(lái)獲取當(dāng)前時(shí)間的命令,這個(gè)時(shí)間作為前綴用來(lái)標(biāo)識(shí)備份文件。
如何將定期備份的數(shù)據(jù)庫(kù)文件自動(dòng)上傳到另一臺(tái)FTP服務(wù)器,是實(shí)現(xiàn)數(shù)據(jù)庫(kù)自動(dòng)備份的關(guān)鍵。在上傳數(shù)據(jù)前,需要FTP服務(wù)器提供具有上傳數(shù)據(jù)權(quán)限的用戶,以及正常的FTP服務(wù)。這里通過(guò)Linux的shell腳本程序來(lái)實(shí)現(xiàn),具體的腳本命令如下:
為了節(jié)省MySQL數(shù)據(jù)庫(kù)上的空間,可以用以下命令刪除在MySQL服務(wù)器生成的臨時(shí)文件。
創(chuàng)建文件backup.sh,將其保存在/root目錄下,具體內(nèi)容如下:
在/root目錄下,賦予backup.sh可執(zhí)行權(quán)限具體命令為:
具體操作如下:
用root登陸系統(tǒng)編輯crontab文件
在末尾添加如下一行,即每天的01:05執(zhí)行以上腳本
這樣,服務(wù)器就可以自動(dòng)的每天實(shí)現(xiàn)MySQL數(shù)據(jù)的異地備份了。
MySQL數(shù)據(jù)庫(kù)異地自動(dòng)備份的實(shí)現(xiàn)在一定程度上減少了人為參與的環(huán)節(jié),確保了數(shù)據(jù)的安全,為L(zhǎng)inux下mysql數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)應(yīng)用的正常運(yùn)行,提供了有力的保證。
(作者單位為山東聊城大學(xué)網(wǎng)絡(luò)信息中心)