MySQL不同儲存引擎的資料備份與恢復

2021-09-10 10:36:23 字數 2170 閱讀 4069

資料備份的目的很直接也很簡單,就是為了避免因不可**、偶然的事件而導致的慘重損失,所以資料越重要、變化越頻繁,就越要進行資料備份。在之前的幾篇文章中,我們以mysql為例對資料備份進行了粗略的解讀,本文我們依然以mysql為例,講講面對不同的儲存引擎如何做資料備份與恢復。

為了應對不同的資料處理,mysql提供了十幾種不同的儲存引擎,不過,我們沒有必要一一去了解,因為熟悉使用mysql的人都知道,比較常用的儲存引擎有兩個,分別是myisam和innodb。

了解了mysql常用的兩種儲存引擎之後,我們就來看看在這兩種引擎中如何進行資料備份和恢復。

myisam資料備份

因為myisam是儲存成檔案的形式,所以在備份時有多種方法可以使用,並且大多數虛擬主機提供商和internet平台提供商只允許使用myisam格式,掌握myisam資料備份就格外重要了。

方法1:檔案拷貝

為了保持資料備份的一致性,我們可以對相關表執行lock tables操作,對錶執行flush tables。當然,你只需要限制寫操作,這樣能夠保證在複製資料時,其它操作仍然可以查詢表,而flush tables是用來確保開始備份前將所有啟用的索引頁寫入硬碟。

標準流程:鎖表、重新整理表到磁碟、拷貝檔案、解鎖。

方法2:sql語句備份

select into ...outfile或backup table都可以進行sql級別的表備份,需要注意的是這兩種方法如果有重名檔案,最好是先移除重名檔案。另外,backup table備份需要注意輸出目錄的許可權,改方法只是備份myd和frm檔案,不備份索引。

方法3: mysqlhotcopy 備份

mysqlhotcopy 是乙個 perl指令碼,使用lock tables、flush tables和cp或scp來快速備份資料庫,但其只能執行在資料庫目錄所在的機器上,且只用於備份myisam。

shell> mysqlhotcopy db_name [/path/to/new_directory ]

shell> mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

方法4:mysqldump備份

mysqldump既可以備份表結構和資料,也可以備份單個表、單個庫或者所有庫,輸出是sql語句檔案或者是其它資料庫相容的格式。在之前的文章中,我們較詳細的介紹了mysqldump,本文就不再贅述了。

shell> mysqldump [options] db_name [tables]

shell> mysqldump [options] ---database db1 [db2 db3...]

shell> mysqldump [options] --all—database

方法5:冷備份

冷備份的方法就很簡單粗暴了,在mysql伺服器停止服務時,複製所有表檔案。

myisam資料備份恢復

不同的備份方式有相應的恢復方法:

innodb資料備份

myisam不支援事務和外來鍵,這使得mysql使用者往往會面臨一些挑戰,所以,理所當然的當innodb支援事務和外來鍵時,即使它的速度較慢,也還是獲得了mysql使用者的青睞。

方法1:mysqldump

方法2:copy file

innodb底層儲存的時候會將資料和元資訊存在ibdata*, *.ibd, *.frm, *.ib_logfile*等檔案中,所以備份了這些檔案就相當於備份了innodb資料。

方法3:select into

與myisam用法一樣。

方法4:商業工具

innodb資料備份恢復

在使用特定的恢復方法之前,innodb資料備份恢復還有兩個通用的方法,分別是innodb的日誌自動恢復功能,即重啟mysql服務和「萬能**」——重啟計算機。

Mysql不同儲存引擎的表轉換方法

mysql不同儲存引擎的表轉換方法 1 alter table 直接修改表的儲存引擎,但是這樣會導致大量的系統開銷,mysql為此要執行乙個就表向新錶的逐行複製。在此期間,轉換操作可能會占用伺服器的所有i o處理能力。轉換表之後,原先引擎的特殊性質都會丟失,無法復原。2 轉儲和匯入方法 用提供的my...

mysql的儲存引擎有 mysql儲存引擎有哪些?

儲存引擎是資料庫管理系統用來從資料庫建立 讀取和更新資料的軟體模組。mysql中有兩種型別的儲存引擎 事務型和非事務型。對於mysql 5.5及更高版本,預設的儲存引擎是innodb。在5.5版本之前,mysql的預設儲存引擎是myisam。那麼mysql儲存引擎有哪些?一 innodb 這是mys...

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...