MySQL入門--備份與恢復(一)
MySQL備份與恢復
1.1. 備份基礎知識
為什麼要備份 ?
² 完整系統恢復需要 :如果系統發生故障,則擁有系統的備份至關重要,因為可以恢復系統。實施怎樣的備份和恢復策略取決於被恢復資料要達到的完整性和時效性。
² 審計功能需要 :對於某些系統及關聯的流程,可能需要審計或分析獨立於主生產環境的環境中的資料。可以使用備份建立這樣一個獨立的環境。
² 常規 DBA 任務 :在需要執行常見的 DBA 任務時使用備份。例如,將資料從一個系統傳輸到另一個系統,根據特定的生產伺服器狀態建立開發伺服器,或者將系統的特定部分恢復到使用者出錯前的某個狀態。
備份型別一:
熱備份 :備份在讀取或修改資料的過程中進行,很少中斷或者不中斷傳輸或處理資料的功能。使用熱備份時,系統仍可供讀取和修改資料的操作訪問。
冷備份 :備份在使用者不能訪問資料時進行,因此無法讀取或修改資料。離線備份會阻止執行任何使用資料的活動。這型別的備份不會干擾正常執行的系統的效能。但是,對於某些應用程式,會無法接受在一段較長的時間裡鎖定或完全阻止使用者訪問資料。
溫備份 :備份在讀取資料時進行,但在多數情況下,在進行備份時不能修改資料本身。這種中途備份型別的優點是不必完全鎖定終端使用者。但是,其不足之處在於無法在進行備份時修改資料集,這可能使這種型別的備份不適用於某些應用程式。在備份過程中無法修改資料可能產生效能問題。
備份型別二:
磁碟備份: 可以使用複製或 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 本身就採用這種格式將這些副本儲存在磁碟上。因為是原始資料庫檔案的完整副本,因此物理備份的大小與原始資料庫檔案完全相同。原始二進位制備份的速度比邏輯備份快,因為該過程是簡單的檔案複製,不需要了解檔案的內部結構。但是,如果使用物理備份將資料庫傳輸到採用不同體系結構的其他計算機,則檔案必須是二進位制可移植檔案。因為物理備份是資料庫檔案位的完整表現形式,因此必須將其恢復到使用相同資料庫引擎的 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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2646811/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《入門MySQL—備份與恢復》MySql
- 入門MySQL——備份與恢復MySql
- MySQL入門--備份與恢復(三)MySql
- MySQL入門--備份與恢復(二)MySql
- 《MySQL 入門教程》第 06 篇 備份與恢復MySql
- MySQL 備份與恢復MySql
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- MySQL 非常規恢復與物理備份恢復MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- MySQL備份與恢復——實操MySql
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- Mysql備份恢復MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- Mysql的幾種備份與恢復MySql
- MySQL 日誌管理、備份與恢復MySql
- RAC備份恢復之Voting備份與恢復
- 【MySQL】MySQL備份和恢復MySql
- 備份與恢復:polardb資料庫備份與恢復資料庫
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- mysql學習筆記之備份與恢復MySql筆記
- MySQL-19.資料庫備份與恢復MySql資料庫
- docker 中 MySQL 備份及恢復DockerMySql
- Mongodb的備份恢復與匯出匯入MongoDB
- Oracle 備份 與 恢復 概述Oracle
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- Mysql資料庫備份及恢復MySql資料庫
- MySQL8.4備份恢復快速命令MySql
- MySQL日誌管理,備份和恢復MySql
- MySQL備份和恢復方法彙總MySql
- SqlServer 備份和恢復(一)SQLServer
- GitLab的自動備份、清理備份與恢復Gitlab