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

mydumper 安裝、編譯錯誤排查與使用指南:多線程邏輯備份利器

     編輯:DB2 教學

mydumper 安裝、編譯錯誤排查與使用指南:多線程邏輯備份利器

mydumper 是針對 MySQL 的多線程邏輯備份工具,速度遠超 mysqldump,支援 PCRE 過濾、一致性快照、中繼資料輸出等特性。本文記錄源碼編譯安裝、四大常見編譯錯誤排查、參數說明與實戰建議。

一、特性速覽

  • 多線程並行備份,效能極佳。
  • 輸出分檔(每表獨立檔案),易管理、易解析。
  • 一致性快照:FLUSH TABLES WITH READ LOCK → 讀取主從狀態 → 工作線程 START TRANSACTION WITH CONSISTENT SNAPSHOT → UNLOCK TABLES。
  • PCRE 正則過濾庫/表。
  • 不支援 Schema 導出,需搭配 mysqldump --no-data。

二、源碼編譯安裝步驟

# 1. 安裝建構依賴
# CentOS/RHEL
yum install -y glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake
# Ubuntu/Debian
apt-get install -y libglib2.0-dev libmysqlclient-dev zlib1g-dev libpcre3-dev libssl-dev cmake

# 2. 下載源碼
wget https://launchpad.net/mydumper/0.6/0.6.2/+download/mydumper-0.6.2.tar.gz
tar -xzf mydumper-0.6.2.tar.gz
cd mydumper-0.6.2

# 3. 編譯安裝
cmake .
make && make install

三、四大常見編譯錯誤與解決

錯誤訊息原因解決
PCRE_INCLUDE_DIR / PCRE_PCRE_LIBRARY NOTFOUND缺 pcre-develyum install pcre-devel / apt-get install libpcre3-dev
MYSQL_INCLUDE_DIR NOTFOUNDmysql-devel 未裝或路徑未加入 PKG_CONFIG_PATH裝 mysql-devel;若非預設路徑,export PKG_CONFIG_PATH=/usr/local/mysql/lib/pkgconfig:$PKG_CONFIG_PATH
libmysqlclient.so.18: cannot open shared object file執行時找不到 MySQL 客戶端庫ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/ 或 echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf && ldconfig
option parsing failed: Error parsing option -r參數與值緊貼(如 -r1000)**參數與值需空格分開**:-r 1000

四、核心參數速查

mydumper -u user -p pwd -h host -P port -B db -o /backup/dir -t 8 -c -F 64 -r 100000
# -B, --database           目標資料庫
# -T, --tables-list        指定表清單(逗號分隔)
# -o, --outputdir          輸出目錄
# -t, --threads            線程數 (預設 4)
# -c, --compress           壓縮輸出
# -F, --chunk-filesize     分塊大小 MB (預設 64)
# -r, --rows               每塊行數 (啟用後關閉 -F)
# -x, --regex              PCRE 過濾 db.table
# -k, --no-locks           不加全域讀鎖 (不一致備份,極慎用)
# --less-locking           減少 InnoDB 鎖定時間
# -l, --long-query-guard   長查詢守護秒數 (預設 60)
# -K, --kill-long-queries  殺掉長查詢而非中止備份
# -D, --daemon             守護進程模式
# -I, --snapshot-interval  快照間隔分鐘 (需 -D)
# --tz-utc                 統一時區 +00:00 (預設開啟)
# --use-savepoints         使用存檔點減少 MDL (需 SUPER)
# -V, --version            版本資訊
# -v, --verbose            輸出等級 0-3

五、實戰範例

# 全庫備份,8 線程,壓縮,64MB 分塊
mydumper -u root -p pwd -h 127.0.0.1 -B prod_db -o /backup/prod_$(date +%F) -t 8 -c -F 64

# 排除 mysql、test 庫
mydumper ... -x '^(?!(mysql|test)\.)'

# 只備份特定表
mydumper ... -T orders,order_items,customers

六、還原工具 myloader

myloader -u root -p pwd -h 127.0.0.1 -B prod_db -d /backup/prod_2024-01-15 -t 8
# -d, --directory  備份目錄
# -q, --queries-per-transaction  每事務查詢數 (預設 1000)
# --overwrite-tables  覆蓋既有表
# --enable-binlog     還原時寫入 binlog

mydumper/myloader 組合是 MySQL 邏輯備份還原的高效能標準配置,建議納入常態備份策略。

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