MySQL導(dǎo)入與導(dǎo)出備份詳解
一、MySQL備份類型詳解
對于現(xiàn)代互聯(lián)網(wǎng)公司而言,存儲在服務(wù)器數(shù)據(jù)庫中的數(shù)據(jù),逐步成為企業(yè)和公司的命脈,對企業(yè)和公司的生存發(fā)展具有十分重大的影響。為了保證數(shù)據(jù)庫數(shù)據(jù)存儲安全,確保不會因?yàn)檎`操作和不可抗力而破壞,通常我們都會對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行備份。對MySQL數(shù)據(jù)庫的備份,可以有很多種方式,我們接下來按照不同的分類標(biāo)準(zhǔn),來講解一下這些備份方式:
(一)按照備份對數(shù)據(jù)庫的影響分類
1、熱備份(Hot Backup)。 指在數(shù)據(jù)庫運(yùn)行過程中進(jìn)行備份,并且對數(shù)據(jù)庫正常運(yùn)行沒有任何影響。
2、冷備份(Cold Backup)。 指在數(shù)據(jù)庫停止運(yùn)行后開始進(jìn)行的備份。
3、溫備份(Warm Backup)。 指在數(shù)據(jù)庫運(yùn)行過程中進(jìn)行備份,但是會造成數(shù)據(jù)庫性能下降,對數(shù)據(jù)庫提供服務(wù)造成影響的備份方式。
(二)按照備份的文件進(jìn)行分類
1、邏輯備份。 采用邏輯備份的方式,備份出的數(shù)據(jù)通常是.sql類型的文件。備份后的內(nèi)容可讀且為文本文件。該方法一般用于數(shù)據(jù)庫的升級、遷移或者對數(shù)據(jù)庫表的批量修改等場景。該方法恢復(fù)時(shí)間較長。
2、裸文件備份。 指拷貝數(shù)據(jù)庫的物理文件,采用這種方式,數(shù)據(jù)庫恢復(fù)時(shí)間較短。
(三)按照備份的方式進(jìn)行分類
1、完全備份。 指的是對數(shù)據(jù)庫進(jìn)行完整的備份。
2、增量備份。 指的是在上一次備份的基礎(chǔ)上,對更新的數(shù)據(jù)進(jìn)行備份,而不是備份所有數(shù)據(jù)。
3、日志備份。 指的是對數(shù)據(jù)庫的日志進(jìn)行備份,MySQL主從同步架構(gòu)中就是采用這種備份方式。
二、MySQL數(shù)據(jù)庫導(dǎo)出
(一)mysqldump導(dǎo)出數(shù)據(jù)
mysqldump是MySQL數(shù)據(jù)庫自帶的數(shù)據(jù)備份導(dǎo)出的工具,該工具支持MyISAM和InnoDB引擎的數(shù)據(jù)表。mysqldump備份使用參數(shù)如下:
-u:表示指定登錄數(shù)據(jù)庫使用的用戶。
-p:表示指定登錄數(shù)據(jù)庫使用的用戶密碼。
-d:表示導(dǎo)出時(shí)只導(dǎo)出數(shù)據(jù)庫的表結(jié)構(gòu)。
-t:表示導(dǎo)出時(shí)只導(dǎo)出數(shù)據(jù)庫的具體數(shù)據(jù)而不包括表結(jié)構(gòu)。
-A:表示導(dǎo)出所有的數(shù)據(jù)庫。
使用mysqldump示例如下:
mysqldump -uroot -proot -A >all_database.sql mysqldump -uroot -proot pzz > pzz.sql mysqldump -uroot -proot pzz student > student.sql mysqldump -uroot -proot -d pzz > pzz_table.sql mysqldump -uroot -proot -t pzz > pzz_data.sql
上述五條命令,分別表示導(dǎo)出數(shù)據(jù)庫中的所有數(shù)據(jù),導(dǎo)出pzz數(shù)據(jù)庫中的數(shù)據(jù),導(dǎo)出pzz數(shù)據(jù)庫中student表中的所有數(shù)據(jù),導(dǎo)出pzz數(shù)據(jù)庫中表結(jié)構(gòu)相關(guān)數(shù)據(jù)以及導(dǎo)出pzz數(shù)據(jù)庫中除了表結(jié)構(gòu)之外的實(shí)際數(shù)據(jù)。
使用mysqldump導(dǎo)出的文件,結(jié)果如下所示:
(二)mysqlhotcopy裸文件備份
在MySQL5.5及以下版本的數(shù)據(jù)庫中(MySQl5.7版本的數(shù)據(jù)庫中已經(jīng)刪去mysqlhotcopy命令),可以進(jìn)行快速備份。mysqlhotcopy所進(jìn)行的備份,本質(zhì)上就是對數(shù)據(jù)庫庫表文件的直接物理復(fù)制,只不過在復(fù)制時(shí)使用了鎖對數(shù)據(jù)庫的內(nèi)容進(jìn)行了鎖定。并且,mysqlhotcopy命令只能備份MyISAM引擎的數(shù)據(jù)表。mysqlhotcopy命令使用示例如下:
mysqlhotcopy -u root -p root pzz /root mysqlhotcopy -u root -p root pzz./student/root
上面兩條命令,第一條是對pzz數(shù)據(jù)庫進(jìn)行備份,第二條是對pzz數(shù)據(jù)庫中的student數(shù)據(jù)表進(jìn)行備份。備份過程如下:
(三)mysqldump與mysqlhotcopy比較
1、mysqldump會備份成.sql文件,而mysqlhotcopy采用的是裸文件備份。
2、mysqldump備份和恢復(fù)比mysqlhotcopy速度慢,因此不適合大文件備份。
3、mysqldump支持MyISAM和InnoDB引擎,而mysqlhotcopy只支持MyISAM引擎。
4、mysqlhotcopy在MySQL5.5(不含)以上的版本中不自帶。
5、mysqlhotcopy只能運(yùn)行在數(shù)據(jù)庫所在的設(shè)備上,而mysqldump可以運(yùn)行在本地設(shè)備上,也可以運(yùn)行在遠(yuǎn)程客戶端。
6、mysqldump和mysqlhotcopy在運(yùn)行時(shí),都會對數(shù)據(jù)庫進(jìn)行上鎖操作。
7、mysqldump備份的恢復(fù)本質(zhì)上是對.sql文件中SQL語句的執(zhí)行,而mysqlhotcopy備份的回復(fù)本質(zhì)上是直接覆蓋。
三、MySQL數(shù)據(jù)庫導(dǎo)入
如果我們采用mysqlhotcopy對數(shù)據(jù)庫進(jìn)行備份,那么在恢復(fù)時(shí)只需要將備份的數(shù)據(jù)覆蓋原有的數(shù)據(jù)即可。而如果對mysqldump導(dǎo)出的.sql文件進(jìn)行恢復(fù),則需要進(jìn)行MySQL的數(shù)據(jù)導(dǎo)入。MySQL數(shù)據(jù)庫的導(dǎo)入,有兩種方式,一種是使用“<”符號,直接將.sql文件中的信息導(dǎo)入MySQL數(shù)據(jù)庫,第二種是在登入數(shù)據(jù)庫后,使用source命令導(dǎo)入數(shù)據(jù)。
例如,要導(dǎo)入exp.sql的備份數(shù)據(jù),則可以執(zhí)行命令:
mysql -uroot -proot < exp.sql
或者是登錄進(jìn)入數(shù)據(jù)庫后,執(zhí)行:
source /root/exp.sql
總結(jié)
到此這篇關(guān)于MySQL導(dǎo)入與導(dǎo)出備份詳解的文章就介紹到這了,更多相關(guān)MySQL備份內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。