首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

使用 XtraBackup 實現 MySQL 熱備份與異地同步:免鎖表操作指南

     編輯:MySQL 資料庫相關知識

前言

傳統 mysqldump 備份需鎖表,影響線上業務。Percona XtraBackup 支援 InnoDB 熱備份,無需鎖表、不阻塞寫入,是生產環境異地同步的首選工具。本文記錄基於 XtraBackup 2.0.7 的完整備份、壓縮、傳輸、恢復與主從同步流程。

環境準備

  1. 安裝 Perl 依賴:yum install perl-DBD-mysql
  2. 獲取 XtraBackup 2.0.7(2.1+ 版本不支援舊版 InnoDB):
    wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.0.7/RPM/rhel5/x86_64/percona-xtrabackup-2.0.7-552.rhel5.x86_64.rpm
  3. 安裝 RPM 包:rpm -ivh percona-xtrabackup-2.0.7-552.rhel5.x86_64.rpm

備份流程

  1. 確認源資料庫運行中
  2. 執行熱備份命令:
    innobackupex --user=yourDBuser --password=MaGiCdB1 --defaults-file=/etc/my.cnf /backup/dir

    /backup/dir 為任意足夠大的分區目錄

  3. 檢查備份目錄是否生成數據文件

壓縮與傳輸

# 壓縮
tar czvf backdir.gz backup
# 跨機器傳輸
scp backdir.gz target_ip:/target/dir

目標端恢復步驟

  1. cd /target/dir
  2. tar xzvf backdir.gz
  3. 確認 /etc/my.cnf 含 datadir=/target/dir
  4. 確保資料目錄為空
  5. 應用日誌:innobackupex --apply-log /target/dir
  6. 拷回數據:innobackupex --copy-back --defaults-file=/etc/my.cnf /target/dir

啟動主從同步

  1. 啟動 MySQL 服務
  2. 配置並啟動主從複製(CHANGE MASTER TO ...; START SLAVE;)

關鍵提示

  • XtraBackup 版本必須與 MySQL 版本、InnoDB 版本匹配
  • 備份期間源庫可正常讀寫,業務零影響
  • 恢復後務必檢查 show slave status\G 中 Slave_IO_Running 與 Slave_SQL_Running 均為 Yes
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved