MySQL導(dǎo)入與導(dǎo)出備份詳解
一、MySQL備份類(lèi)型詳解
對(duì)于現(xiàn)代互聯(lián)網(wǎng)公司而言,存儲(chǔ)在服務(wù)器數(shù)據(jù)庫(kù)中的數(shù)據(jù),逐步成為企業(yè)和公司的命脈,對(duì)企業(yè)和公司的生存發(fā)展具有十分重大的影響。為了保證數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)安全,確保不會(huì)因?yàn)檎`操作和不可抗力而破壞,通常我們都會(huì)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行備份。對(duì)MySQL數(shù)據(jù)庫(kù)的備份,可以有很多種方式,我們接下來(lái)按照不同的分類(lèi)標(biāo)準(zhǔn),來(lái)講解一下這些備份方式:
(一)按照備份對(duì)數(shù)據(jù)庫(kù)的影響分類(lèi)
1、熱備份(Hot Backup)。 指在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中進(jìn)行備份,并且對(duì)數(shù)據(jù)庫(kù)正常運(yùn)行沒(méi)有任何影響。
2、冷備份(Cold Backup)。 指在數(shù)據(jù)庫(kù)停止運(yùn)行后開(kāi)始進(jìn)行的備份。
3、溫備份(Warm Backup)。 指在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中進(jìn)行備份,但是會(huì)造成數(shù)據(jù)庫(kù)性能下降,對(duì)數(shù)據(jù)庫(kù)提供服務(wù)造成影響的備份方式。
(二)按照備份的文件進(jìn)行分類(lèi)
1、邏輯備份。 采用邏輯備份的方式,備份出的數(shù)據(jù)通常是.sql類(lèi)型的文件。備份后的內(nèi)容可讀且為文本文件。該方法一般用于數(shù)據(jù)庫(kù)的升級(jí)、遷移或者對(duì)數(shù)據(jù)庫(kù)表的批量修改等場(chǎng)景。該方法恢復(fù)時(shí)間較長(zhǎng)。
2、裸文件備份。 指拷貝數(shù)據(jù)庫(kù)的物理文件,采用這種方式,數(shù)據(jù)庫(kù)恢復(fù)時(shí)間較短。
(三)按照備份的方式進(jìn)行分類(lèi)
1、完全備份。 指的是對(duì)數(shù)據(jù)庫(kù)進(jìn)行完整的備份。
2、增量備份。 指的是在上一次備份的基礎(chǔ)上,對(duì)更新的數(shù)據(jù)進(jìn)行備份,而不是備份所有數(shù)據(jù)。
3、日志備份。 指的是對(duì)數(shù)據(jù)庫(kù)的日志進(jìn)行備份,MySQL主從同步架構(gòu)中就是采用這種備份方式。
二、MySQL數(shù)據(jù)庫(kù)導(dǎo)出
(一)mysqldump導(dǎo)出數(shù)據(jù)
mysqldump是MySQL數(shù)據(jù)庫(kù)自帶的數(shù)據(jù)備份導(dǎo)出的工具,該工具支持MyISAM和InnoDB引擎的數(shù)據(jù)表。mysqldump備份使用參數(shù)如下:
-u:表示指定登錄數(shù)據(jù)庫(kù)使用的用戶(hù)。
-p:表示指定登錄數(shù)據(jù)庫(kù)使用的用戶(hù)密碼。
-d:表示導(dǎo)出時(shí)只導(dǎo)出數(shù)據(jù)庫(kù)的表結(jié)構(gòu)。
-t:表示導(dǎo)出時(shí)只導(dǎo)出數(shù)據(jù)庫(kù)的具體數(shù)據(jù)而不包括表結(jié)構(gòu)。
-A:表示導(dǎo)出所有的數(shù)據(jù)庫(kù)。
使用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ù)庫(kù)中的所有數(shù)據(jù),導(dǎo)出pzz數(shù)據(jù)庫(kù)中的數(shù)據(jù),導(dǎo)出pzz數(shù)據(jù)庫(kù)中student表中的所有數(shù)據(jù),導(dǎo)出pzz數(shù)據(jù)庫(kù)中表結(jié)構(gòu)相關(guān)數(shù)據(jù)以及導(dǎo)出pzz數(shù)據(jù)庫(kù)中除了表結(jié)構(gòu)之外的實(shí)際數(shù)據(jù)。
使用mysqldump導(dǎo)出的文件,結(jié)果如下所示:
(二)mysqlhotcopy裸文件備份
在MySQL5.5及以下版本的數(shù)據(jù)庫(kù)中(MySQl5.7版本的數(shù)據(jù)庫(kù)中已經(jīng)刪去mysqlhotcopy命令),可以進(jìn)行快速備份。mysqlhotcopy所進(jìn)行的備份,本質(zhì)上就是對(duì)數(shù)據(jù)庫(kù)庫(kù)表文件的直接物理復(fù)制,只不過(guò)在復(fù)制時(shí)使用了鎖對(duì)數(shù)據(jù)庫(kù)的內(nèi)容進(jìn)行了鎖定。并且,mysqlhotcopy命令只能備份MyISAM引擎的數(shù)據(jù)表。mysqlhotcopy命令使用示例如下:
mysqlhotcopy -u root -p root pzz /root mysqlhotcopy -u root -p root pzz./student/root
上面兩條命令,第一條是對(duì)pzz數(shù)據(jù)庫(kù)進(jìn)行備份,第二條是對(duì)pzz數(shù)據(jù)庫(kù)中的student數(shù)據(jù)表進(jìn)行備份。備份過(guò)程如下:
(三)mysqldump與mysqlhotcopy比較
1、mysqldump會(huì)備份成.sql文件,而mysqlhotcopy采用的是裸文件備份。
2、mysqldump備份和恢復(fù)比mysqlhotcopy速度慢,因此不適合大文件備份。
3、mysqldump支持MyISAM和InnoDB引擎,而mysqlhotcopy只支持MyISAM引擎。
4、mysqlhotcopy在MySQL5.5(不含)以上的版本中不自帶。
5、mysqlhotcopy只能運(yùn)行在數(shù)據(jù)庫(kù)所在的設(shè)備上,而mysqldump可以運(yùn)行在本地設(shè)備上,也可以運(yùn)行在遠(yuǎn)程客戶(hù)端。
6、mysqldump和mysqlhotcopy在運(yùn)行時(shí),都會(huì)對(duì)數(shù)據(jù)庫(kù)進(jìn)行上鎖操作。
7、mysqldump備份的恢復(fù)本質(zhì)上是對(duì).sql文件中SQL語(yǔ)句的執(zhí)行,而mysqlhotcopy備份的回復(fù)本質(zhì)上是直接覆蓋。
三、MySQL數(shù)據(jù)庫(kù)導(dǎo)入
如果我們采用mysqlhotcopy對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,那么在恢復(fù)時(shí)只需要將備份的數(shù)據(jù)覆蓋原有的數(shù)據(jù)即可。而如果對(duì)mysqldump導(dǎo)出的.sql文件進(jìn)行恢復(fù),則需要進(jìn)行MySQL的數(shù)據(jù)導(dǎo)入。MySQL數(shù)據(jù)庫(kù)的導(dǎo)入,有兩種方式,一種是使用“<”符號(hào),直接將.sql文件中的信息導(dǎo)入MySQL數(shù)據(jù)庫(kù),第二種是在登入數(shù)據(jù)庫(kù)后,使用source命令導(dǎo)入數(shù)據(jù)。
例如,要導(dǎo)入exp.sql的備份數(shù)據(jù),則可以執(zhí)行命令:
mysql -uroot -proot < exp.sql
或者是登錄進(jìn)入數(shù)據(jù)庫(kù)后,執(zhí)行:
source /root/exp.sql
總結(jié)
到此這篇關(guān)于MySQL導(dǎo)入與導(dǎo)出備份詳解的文章就介紹到這了,更多相關(guān)MySQL備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL導(dǎo)入導(dǎo)出助手類(lèi)庫(kù)MysqlHelper安裝使用
- Mysql數(shù)據(jù)庫(kù)的導(dǎo)入導(dǎo)出方式(各種情況)
- MySQL數(shù)據(jù)備份、還原、數(shù)據(jù)庫(kù)遷移以及表的導(dǎo)出和導(dǎo)入
- MySQL 億級(jí)數(shù)據(jù)導(dǎo)入導(dǎo)出及遷移筆記
- MySQL數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出數(shù)據(jù)之報(bào)錯(cuò)解答實(shí)例講解
- mysql數(shù)據(jù)庫(kù)如何導(dǎo)入導(dǎo)出sql文件
相關(guān)文章
mysql kill進(jìn)程后出現(xiàn)killed死鎖問(wèn)題及解決
這篇文章主要介紹了mysql kill進(jìn)程后出現(xiàn)killed死鎖問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01mysql生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)的方法
這篇文章主要介紹了mysql生成指定位數(shù)的隨機(jī)數(shù)及批量生成隨機(jī)數(shù)的方法,文中給大家介紹了常用mysql函數(shù),需要的朋友可以參考下2018-09-09mysql實(shí)現(xiàn)多表關(guān)聯(lián)統(tǒng)計(jì)(子查詢(xún)統(tǒng)計(jì))示例
這篇文章主要介紹了mysql實(shí)現(xiàn)多表關(guān)聯(lián)統(tǒng)計(jì)(子查詢(xún)統(tǒng)計(jì)),結(jié)合具體案例形式分析了mysql多表關(guān)聯(lián)統(tǒng)計(jì)的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10mysql中l(wèi)imit查詢(xún)踩坑實(shí)戰(zhàn)記錄
在MySQL中我們常常用order by來(lái)進(jìn)行排序,使用limit來(lái)進(jìn)行分頁(yè),下面這篇文章主要給大家介紹了關(guān)于mysql中l(wèi)imit查詢(xún)踩坑的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03Mysql中校對(duì)集utf8_unicode_ci與utf8_general_ci的區(qū)別說(shuō)明
一直對(duì)utf8_unicode_ci與utf8_general_ci這2個(gè)校對(duì)集很迷惑,今天查了手冊(cè)有了點(diǎn)眉目。不過(guò)對(duì)中文字符集來(lái)說(shuō)采用utf8_unicode_ci與utf8_general_ci時(shí)有何區(qū)別還是不清楚2012-03-03