构建金融级的全方位MySQL备份体系 - 遠端議程 - 姜承尧

tags: COSCUP2020 中階 TR311

歡迎來到 https://hackmd.io/@coscup/2020 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

點擊本頁上方的 開始用 Markdown 一起寫筆記!
手機版請點選上方 按鈕展開議程列表。

請從這裡開始

高可用、災難備援

高可用

讓系統盡可能長時間正常的運行,eg.99.9%

災難備援

在遇到災難時,數據可以100%被找回來的能力。
(補:如果你的系統是一台戰機,駕駛員是你的核心數據,那跳傘就是保證在遇到災難時,核心數據可以被保存,業務可以被重新建立)

三層災備體系 + 備份驗證

  1. 全量備份
  2. 增量備份
  3. 延遲備份: snapshot
  4. 備份校驗

全量備份

  • 物理備份
  • 邏輯備份 mydumper:強烈推薦
  • 備份策略
    • 定期進行全量備份
    • 不對線上業務產生影響
      • 選擇優先級最低的 Slave 來備份

增量備份

  • 即時二進制日誌備份
    • 選擇優先級最低的 Slave,透過 mysqlbinlog 備份

延遲備份

MySQL 5.6 增加 Delayed Slave 功能,可以做到建立一個延遲24H的從資料庫,達成一個24H前的快照副本。

驗證備份

將備份數據倒回Check Slave(優先:0),透過增量備份將最新修改應用到Check Slave(優先:0),對每條數據和線上資料庫作邏輯資料核對。

總結

  • MySQL最佳實踐:mydumper+binlog backup+delay salve+備份較驗。
  • 金融Level災難備份體系:全量備份+增量備份+延遲備份+備份較驗
  • 資料庫較驗 不等於 數據高可用(很重要,回去第一點再看一次)
  • 災難備援是金融系統需要投入的必要支出
Select a repo