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

mysqldump 進階用法大全:備份、恢復、壓縮、選項精講

     編輯:MySQL 綜合教學

mysqldump 是 MySQL 邏輯備份的核心工具。本文從基礎備份恢復到進階參數選項、臨時表與 HEAP 表應用,全方位解析其實戰技巧。

一、基礎備份與恢復

1. 單庫備份

mysqldump -u root -p123456 tm > tm_050519.sql

2. 管道壓縮備份(推薦大數據量)

mysqldump -u root -p123456 tm | gzip > tm_050519.sql.gz

3. 直接恢復

mysql -u root -p123456 tm < tm_050519.sql

4. 壓縮文件直接恢復

gzip -d < tm_050519.sql.gz | mysql -u root -p123456 tm
# 或
zcat tm_050519.sql.gz | mysql -u root -p123456 tm

二、核心參數選項詳解

參數作用備註
--databases / -B指定多個數據庫,輸出包含 CREATE DATABASEmysqldump -B db1 db2 > all.sql
--tables後續參數視為表名配合 -B 可跨庫指定表
--no-create-db不輸出 CREATE DATABASE避免誤覆蓋目標庫
--no-create-info不輸出 CREATE TABLE僅導數據
--no-data / -d不導數據,僅結構適合遷移結構
--routines / -R導出存儲過程/函數默認不導出
--triggers導出觸發器默認開啟
--events導出事件調度器默認不導出
--single-transactionInnoDB 熱備份一致性快照生產必加,避免鎖表
--master-data=2輸出 CHANGE MASTER 註釋主從搭建必備
--skip-comments去除版本/時間等註釋精簡文件
--compact精簡輸出(去註釋、去 DROP)等同多個 skip 組合
--quick / --opt流式讀取,不緩存全表默認開啟,大表必須保持
--hex-blob二進制列用十六進制導出避免編碼問題

三、多庫/多表實戰組合

# 導出 db1、db2 完整結構+數據+存儲過程+主從信息,壓縮存儲
mysqldump -u root -p --databases db1 db2 -R --master-data=2 --single-transaction | gzip > full_$(date +%F).sql.gz

# 僅導出 db1 的 t1、t2 表結構(無數據)
mysqldump -u root -p db1 --tables t1 t2 --no-data > structure.sql

四、臨時表與 HEAP 表應用

1. 臨時表(SESSION 級隔離,斷開自動銷毀)

CREATE TEMPORARY TABLE tmp_table (
  name VARCHAR(10) NOT NULL,
  value INT NOT NULL
);
-- 使用後可手動釋放
DROP TABLE tmp_table;

2. 內存 HEAP 表(極速,重啟丟失)

CREATE TEMPORARY TABLE tmp_heap (
  id INT PRIMARY KEY,
  data VARCHAR(100)
) ENGINE=MEMORY;  -- 現代語法用 ENGINE=MEMORY

HEAP/MEMORY 限制: 不支持 BLOB/TEXT、AUTO_INCREMENT、NULL 索引;固定行長;受 max_heap_table_size 限制;崩潰數據全失,僅適用於可重算的中間結果集。

五、最佳實踐清單

  • 生產備份必加 --single-transaction --master-data=2 -R --events --triggers --hex-blob。
  • 定期驗證備份可恢復性(mysql -u root -p test_db < backup.sql)。
  • 異地存儲、加密傳輸、保留策略(如每日全量+每小時增量 Binlog)。
  • 大表考慮 mydumper/myloader 並行導出導入提速。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved