首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 實時備份方案:從雙機同步到單機增量備份全解析

     編輯:MySQL 綜合教學

MySQL 實時備份方案:從雙機同步到單機增量備份全解析

資料安全是資料庫運維的核心。本文系統梳理 MySQL 實時備份的兩大主流路徑:主從同步(雙機熱備)與單機增量備份(基於二進制日誌),並提供完整配置步驟與還原實戰。

一、單機增量備份方案(基於 log-update)

適用於無法部署從庫的單機環境,利用 MySQL 4.0+ 內建的更新日誌功能。

1. 啟用更新日誌

編輯 my.cnf(或 my.cfg),在 [mysqld] 區段新增:

[mysqld]
log-update=/home/backup/update

重啟 MySQL 服務:

service mysql restart

此時 /home/backup/ 目錄下會生成 update.000001 等日誌檔,記錄所有非 SELECT 的 SQL 語句。

2. 每日全量備份

service mysql stop
tar -czf data_$(date +%F).tar.gz /var/lib/mysql
service mysql start

備份完成後,MySQL 會自動產生新的 update.* 檔案,作為該全備之後的增量實時備份。

3. 資料還原流程

# 1. 停止服務並解壓全備
service mysql stop
tar -zxvf data_2024-01-15.tar.gz -C /var/lib/mysql
service mysql start

# 2. 重放增量日誌
mysqladmin -u root -p /home/backup/update.000001 /home/backup/update.000002 ...

若需還原至某歷史時間點,僅需重放對應日期的增量日誌即可。


二、主從同步(雙機熱備)完整配置

主從同步是生產環境最成熟的高可用方案,基於二進制日誌傳輸與重放。

1. 版本要求

  • 主從版本均 ≥ 3.23
  • 從庫版本可高於主庫,但不可低於主庫

2. 主庫配置

編輯 my.cnf:

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=db_name          # 需同步的資料庫,多個用逗號分隔
binlog-ignore-db=mysql        # 不同步的資料庫

建立同步專用帳號:

GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'repl_pass';
FLUSH PRIVILEGES;

鎖表並備份資料:

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;  -- 記下 File 與 Position
-- 此處打包 /var/lib/mysql 目錄傳送至從庫
UNLOCK TABLES;

3. 從庫配置

[mysqld]
server-id=2
master-host=192.168.1.100
master-port=3306
master-user=repl_user
master-password=repl_pass
master-connect-retry=60
report-host=slave-hostname

將主庫備份資料解壓至從庫資料目錄,啟動從庫服務,然後執行:

STOP SLAVE;
CHANGE MASTER TO
    MASTER_HOST='192.168.1.100',
    MASTER_USER='repl_user',
    MASTER_PASSWORD='repl_pass',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=12345;
START SLAVE;
SHOW SLAVE STATUS\G;

確認 Slave_IO_Running: Yes 且 Slave_SQL_Running: Yes 即同步成功。

4. 常見過濾參數

  • replicate-do-db=test:僅同步指定庫
  • replicate-wild-do-table=test.tb_%:同步符合模式的表

三、單機增量備份 vs 主從同步:如何選擇?

維度單機增量備份主從同步
架構複雜度低,單機即可高,需雙機及網路互通
資料即時性秒級(日誌刷盤延遲)毫秒級(同步複寫)
故障切換手動介入,RTO 較長可配合 Keepalived/MHA 實現自動故障轉移
資源成本低雙倍硬體資源
適用場景中小型業務、預算有限、單機部署核心業務、高可用要求、讀寫分離需求

四、避坑指南

  • sync_binlog=0 風險:預設值 0 依賴 OS 刷盤,主機掉電會丟失未刷盤的 binlog,導致從庫同步位點錯誤(Error 1236)。核心業務建議設 sync_binlog=1。
  • 日誌清理策略:設定 expire_logs_days=7 避免磁碟被 binlog 填滿。
  • 備份驗證:定期演練還原流程,確保備份可用性。

綜上,單機增量備份適合資源受限環境,主從同步是高可用架構的基石。根據業務 SLA 選擇合適方案,並建立定期演練機制,才能在災難發生時從容應對。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved