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