MySQL入門–備份與恢復(一)

MySQL備份與恢復
1.1. 備份基礎知識mysql

爲何要備份 ?sql

² 完整系統恢復須要 :若是系統發生故障,則擁有系統的備份相當重要,由於能夠恢復系統。實施怎樣的備份和恢復策略取決於被恢復數據要達到的完整性和時效性。數據庫

² 審計功能須要 :對於某些系統及關聯的流程,可能須要審計或分析獨立於主生產環境的環境中的數據。可使用備份建立這樣一個獨立的環境。編程

² 常規 DBA 任務 :在須要執行常見的 DBA 任務時使用備份。例如,將數據從一個系統傳輸到另外一個系統,根據特定的生產服務器狀態建立開發服務器,或者將系統的特定部分恢復到用戶出錯前的某個狀態。服務器

備份類型一:網絡

熱備份 :備份在讀取或修改數據的過程當中進行,不多中斷或者不中斷傳輸或處理數據的功能。使用熱備份時,系統仍可供讀取和修改數據的操做訪問。異步

冷備份 :備份在用戶不能訪問數據時進行,所以沒法讀取或修改數據。脫機備份會阻止執行任何使用數據的活動。這類型的備份不會干擾正常運行的系統的性能。可是,對於某些應用程序,會沒法接受在一段較長的時間裏鎖定或徹底阻止用戶訪問數據。ide

溫備份 :備份在讀取數據時進行,但在多數狀況下,在進行備份時不能修改數據自己。這種中途備份類型的優勢是沒必要徹底鎖定最終用戶。可是,其不足之處在於沒法在進行備份時修改數據集,這可能使這種類型的備份不適用於某些應用程序。在備份過程當中沒法修改數據可能產生性能問題。性能

備份類型二:學習

磁盤備份: 可使用複製或 RAID 鏡像之類流程,或者使用 DRBD 之類的外部應用程序,將數據直接備份到其餘磁盤。這些技術提供實時(或幾乎實時)備份,以及快速恢復數據的方法。

二進制日誌備份: 二進制日誌記錄對數據的修改。所以,二進制日誌對恢復自上次完整備份以來發生的事件頗有用。備份二進制日誌的優勢是其中包含了各個時間對數據所作的全部更改的記錄,而不是數據的快照。能夠按順序建立多個二進制日誌備份。根據修改的數據量以及完成完整備份的頻率,決定要在備份之間建立的二進制日誌備份的數量。二進制日誌的不足之處是必須恢復自序列中最後一次完整備份以來建立的全部按順序的二進制日誌。此外,從系統故障中恢復的速度可能會很慢,具體取決於必須恢復的二進制日誌的數量。

邏輯 / 文本備份 :可使用 mysqldump 進行完整數據轉儲。這些數據轉儲基於特定的時間點,可是是全部備份副本中速度最慢的。使用 mysqldump 的優勢是所建立的文件是簡單的 SQL 腳本,其中包含可在 MySQL 服務器上運行的語句。不足之處在於 mysqldump 會在轉儲過程當中鎖定表,這會阻止用戶在備份過程當中讀寫文件。

備份類型三:

Ø 邏輯備份

Ø 物理備份

Ø 基於快照的備份

Ø 基於複製的備份

Ø 增量備份

下面分別詳細介紹備份類型三種的 5 中備份方式;

1.1.1. 邏輯備份

邏輯備份將數據庫的內容轉儲到文本文件中。這些文本文件包含 SQL 語句,所以可移植性很好。這些 SQL 語句包含重建MySQL 數據庫和表所需的所有信息。可使用該文本文件在運行不一樣體系結構的其餘主機上從新裝入數據庫。

在建立邏輯備份時, MySQL 服務器必須處於運行狀態,由於服務器在建立文件時要讀備份的表的結構和內容,而後將結構和數據轉換爲 SQL 語句。其餘應用程序能夠在邏備份過程當中執行讀取操做。

採用邏輯備份時,能夠備份本地和遠程的 SQL 服務器。只能在本地 MySQL 服務器上執行其餘類型的備份(物理備份)。

邏輯備份的速度一般比物理備份慢。這是由於 MySQL 服務器必須讀取表並解釋其內容。而後,將表內容轉換成磁盤文件,或者將語句發送給客戶機程序,由客戶機程序將語句寫出。在恢復過程當中,邏輯備份速度比物理備份慢。這是由於恢復的方法執行單個 CREATE 和 INSERT 語句來從新建立每一個備份表和行。

1.1.2. 物理備份

物理備份生成數據庫文件的完整副本,可使用標準命令進行備份,如 tar 、 cp 、 cpio 、 rsync 或 xcopy ;恢復時能夠在不一樣的計算機體系結構間恢復,但必須恢復到同一個數據庫引擎;比邏輯備份和恢復的速度快;物理備份是 MySQL 數據庫文件的二進制副本。這些副本以徹底相同的格式保留數據庫, MySQL 自己就採用這種格式將這些副本存儲在磁盤上。 推薦一個大數據學習扣裙606數字859數字705天天晚上20:10都有一節【免費的】大數據直播課程,專一大數據分析方法,大數據編程,大數據倉庫,大數據案例,人工智能,數據挖掘都是純乾貨分享由於是原始數據庫文件的完整副本,所以物理備份的大小與原始數據庫文件徹底相同。原始二進制備份的速度比邏輯備份快,由於該過程是簡單的文件複製,不須要了解文件的內部結構。可是,若是使用物理備份將數據庫傳輸到採用不一樣體系結構的其餘計算機,則文件必須是二進制可移植文件。由於物理備份是數據庫文件位的完整表現形式,所以必須將其恢復到使用相同數據庫引擎的 MySQL 服務器。在從 InnoDB 表恢復原始 MySQL 備份時,會在目標服務器上保留一個 InnoDB 表。

數據庫文件在備份期間不能有更改,要實現這一點的方法取決於存儲引擎,對於 InnoDB 須要關閉 MySQL 服務器,對於MyISAM 鎖定表以容許讀取,但不容許更改;也可使用快照、複製或專有方法實現;採用二進制備份方法時,必須確保在備份進行期間服務器不修改文件。能夠經過各類方法作到這一點。有一種方法是關閉 MySQL 服務器,而後再進行備份。這種方法有明顯的不足之處。對於某些存儲引擎,更好的辦法是暫時鎖定數據庫,進行備份,而後再將數據庫解鎖。也可使用快照、複製或專有方法,最大限度地減少對 MySQL 和應用程序的影響。

1.1.3. 基於快照的備份

基於快照的備份使用 MySQL 外部的快照功能。例如,若是 MySQL 數據庫和二進制日誌在具備相應文件系統的 LVM2 邏輯捲上,則可建立快照副本。基於快照的備份最適合 InnoDB 之類的事務引擎。能夠爲 InnoDB 表執行熱備份;對於其餘引擎,能夠執行溫備份。

快照備份是可伸縮的,由於執行快照所需的時間不會隨數據庫大小的增加而增長。事實上,從應用程序的角度來看,備份期限幾乎是零。可是,建立快照後,基於快照的備份幾乎老是包括一個物理備份。

1.1.4. 基於複製的備份

MySQL 能夠支持單向異步複製,即一臺服務器做爲 master ,而一臺或多臺其餘服務器做爲 slave 。經過使用副本或slave 而不是 master ,可使用複製來執行備份。這樣作的優點是備份操做不會影響 master 的性能。缺點是成本較高,由於必須購買額外的硬件和網絡帶寬。此外,因爲複製固有的延遲特性, slave 的數據庫副本包含一個相對於 master 延遲的數據版本。

1.1.5. 增量備份

備份只是在損失或損壞後進行數據恢復所需的組件之一。另外一個組件是二進制日誌,其中包含了數據更改的記錄。要恢復數據庫,可以使用備份將數據恢復到其在備份時的狀態。在恢復了備份以後,需應用二進制日誌的內容以應用自備份建立以來的全部數據更改。要確保爲全部 MySQL 服務器啓用二進制日誌記錄。必須擁有 SUPER 權限才能設置此變量。若是在沒有SUPER 權限的狀況下嘗試設置此變量,將出現如下錯誤:ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation

相關文章
相關標籤/搜索