InnoDB存儲引擎(八)備份與恢復

目錄

8.1 備份與恢復概述

8.2 冷備

8.3 邏輯備份

8.4 二進制日誌備份與恢復

8.5 熱備

8.6 快照備份

8.7 複製

8.8 企業實現


MySQL數據庫提供的大部分工具(如mysqldump、ibbackup、replication)都能很好地完成備份的工作,當然也可以通過第三方工具來完成,如xtrabacup、LVM快照備份等。

8.1 備份與恢復概述

根據備份的方法不同可以將備份分爲:

  1. Hot Backup(熱備):在數據庫運行中直接備份,對正在運行的數據庫沒有任何影響

  2. Cold Backup(冷備):在數據庫停止情況下,一般只需要複製相關的數據庫物理文件即可

  3. Warn Backup(溫備):在數據庫運行中進行,但是會對當前數據庫的操作有影響,如加一個全局讀鎖以保證備份數據的一致性

 

按照備份後文件的內容,備份文件又可以分爲:

  1. 邏輯備份:備份出的文件是可讀的,一般是文本文件。內容一般由一條條SQL語句,或者表內實際數據組成

  2. 裸文件備份:指複製數據庫的物理文件,既可以在數據庫運行中複製,也可以在數據庫停止運行時直接的數據文件複製

 

按照備份數據庫的內容來分,備份又可以分爲:

  1. 完全備份:對數據庫進行一個完整的備份

  2. 增量備份:在上次完全備份的基礎上,對於更改的數據進行備份

  3. 日誌備份:對MySQL數據庫二進制日誌的備份,通過對一個完全備份進行二進制日誌的重做來完成數據庫的point-in-time的恢復工作。數據庫複製(replication)原理就是異步實時地將二進制日誌重做傳送並應用到從數據庫

8.2 冷備

只需要備份MySQL數據的frm文件,共享表空間文件,獨立表空間文件(*.ibd),重做日誌文件。另外建議定期備份MySQL數據庫的配置文件my.cnf,這樣有利於恢復的操作。

8.3 邏輯備份

  1. mysqldump:用來完成轉存數據庫的備份及不同數據庫之間的移植,備份的文件就是導出的SQL語句,一般只需要執行這個文件就可以完成數據恢復

  2. select ... into outfile:導出一張表的數據,通過load data infile來進行導入恢復

8.4 二進制日誌備份與恢復

二進制日誌非常關鍵,用戶可以通過它完成point-in-time的恢復工作。MySQL數據庫的replication同樣需要二進制日誌。在默認情況下並不啓用二進制日誌,要使用二進制日誌首先必須啓用它。

推薦的二進制日誌的服務器配置:

log-bin = mysql-bin
sync_binlog = 1
innodb_support_xa = 1

8.5 熱備

  1. ibbackup

  2. XtraBackup

8.6 快照備份

通過文件系統支持的快照功能對數據庫進行備份。備份的前提是所有數據庫文件放在同一文件分區中,然後對該分區進行快照操作。

8.7 複製

複製(replication) 是MySQL數據庫提供的一種高可用高性能的解決方案,一般用來建立大型的應用。總體來說,replication 的工作原理分爲以下3個步驟:

  1. 主服務器(master) 把數據更改記錄到二進制日誌(binlog) 中。

  2. 從服務器(slave) 把主服務器的二進制日誌複製到自己的中繼日誌(relay log)中。

  3. 從服務器重做中繼日誌中的日誌,把更改應用到自己的數據庫上,以達到數據的最終一致性。

8.8 企業實現

本人現就職於50-100人的創業公司,經詢問後瞭解到,我們公司採用的是 阿里雲 的 雲數據庫 RDS 版

採用 半同步 方式

https://help.aliyun.com/document_detail/26183.html?spm=5176.2020520104.237.3.301b1450ZjO2lm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章