|
網(wǎng)站數(shù)據(jù)對我們對站長來說都是最寶貴的,我們平時應(yīng)該養(yǎng)成良好的備份數(shù)據(jù)的習(xí)慣。這樣可使我們數(shù)據(jù)庫崩潰造成的損失大大降低。 在MySQL中進(jìn)行數(shù)據(jù)備份的方法有兩種: 1. mysqlhotcopy 這個命令會在拷貝文件之前會把表鎖住,并把數(shù)據(jù)同步到數(shù)據(jù)文件中,以避免拷貝到不完整的數(shù)據(jù)文件,是最安全快捷的備份方法。 命令的使用方法是: mysqlhotcopy -u root -p<rootpass> db1 db2 … dbn <output_dir> 如果需要備份全部數(shù)據(jù)庫,可以加上–regexp=”.*”參數(shù)。 Mysqlhotcopy命令可自動完成數(shù)據(jù)鎖定工作,備份時不用關(guān)閉服務(wù)器。它還可以刷新日志,使備份文件和日志文件的檢查點能保持同步。 2. mysqldump 這個命令是用來把數(shù)據(jù)庫倒成sql文件的,是非常古老的命令了。 命令的使用方法是: mysqldump -u root -p<rootpass> –hex-blob db1 > db1.sql 加上–hex-blob參數(shù)以后,blob數(shù)據(jù)會被類似BASE64的方法轉(zhuǎn)換為文本來存儲在sql文件中,就不會導(dǎo)致sql文件格式問題了。經(jīng)過測試,通過這種方法備份的blob數(shù)據(jù)再重新恢復(fù)回去能夠完全正確。 如果要備份所有的數(shù)據(jù)庫,可以加上–all-databases參數(shù)。 用mysqldump命令還可直接把數(shù)據(jù)庫轉(zhuǎn)移到另外一臺服務(wù)器上,不用生成備份文件。重復(fù)執(zhí)行可定期更新遠(yuǎn)程數(shù)據(jù)庫。 % mysqladmin -h remote_host create testdb % mysqldump –opt testdb | mysql -h remote_host testdb 另外還可通過ssh遠(yuǎn)程調(diào)用服務(wù)器上的程序,如: % ssh remote_host mysqladmin create testdb % mysqldump –opt testdb | ssh remote_host mysql testdb 2種數(shù)據(jù)庫備份方式的優(yōu)缺點: 使用mysqlhotcopy等程序備份速度快,因為它直接對系統(tǒng)文件進(jìn)行操作,但是需人為協(xié)調(diào)數(shù)據(jù)庫數(shù)據(jù)的備份前后一致性。 mysqldump程序備份數(shù)據(jù)庫較慢,但它生成的文本文件便于移植。 對于沒有使用InnoDB的數(shù)據(jù)庫,用mysqlhotcopy是最好的方法;否則必須采用mysqldump。不論如何,直接拷貝文件的備份方法應(yīng)該被廢棄了。 |
|
|