备份还原:mysqldump

MySQL 备份:mysqldump

MySQL 自带的逻辑备份工具,把数据导出成 SQL 文本(CREATE/INSERT),单线程。优点:通用、可移植、可用文本编辑器查看;缺点:大数据量慢、Restore 也慢。适合中小库、结构迁移。对比并行逻辑备份见 mydumper,物理热备见 XtraBackup

一、全量备份(mysqldump)

# 全库(含数据+结构)
mysqldump -uroot -p --all-databases --single-transaction --routines --triggers --events > full.sql

# 单库
mysqldump -uroot -p --single-transaction --routines --triggers mydb > mydb.sql

# 单表
mysqldump -uroot -p mydb users > users.sql

关键参数:

  • --single-transaction:InnoDB 下开启一致性快照,热备不停服(InnoDB 推荐必加)。
  • --master-data=2 / --source-data=2:在备份中记录 binlog 位点(CHANGE MASTER TO 注释),用于搭建主从/增量恢复。值 2 = 注释形式(不执行)。
  • --routines --triggers --events:备存储过程/触发器/事件,否则默认缺。
  • --set-gtid-purged=ON:GTID 环境下导出时写入 GTID 集合,配合 GTID 复制。

二、数据恢复

# 恢复到目标库
mysql -uroot -p mydb < mydb.sql
# 或
mysql -uroot -p < full.sql

提示:大备份恢复慢,恢复前确认目标库为空/结构一致,避免主键冲突。用 gzip 压缩传输:mysqldump ... | gzip > full.sql.gz,恢复 gunzip -c full.sql.gz | mysql -uroot -p

三、与 GTID / 主从联动

# 导出带 GTID 位点(用于 GTID 复制从库初始化)
mysqldump -uroot -p --all-databases --single-transaction --set-gtid-purged=ON --master-data=2 > master_full.sql

# 从库导入
mysql -uroot -p < master_full.sql
# 再按位点/GTID 配置主从(见 MySQL 主从复制完全指南)

适用:纯逻辑备份、中小规模、结构迁移、配合主从/GTID 初始化。追求速度或大库请用 XtraBackup(物理热备),或 mydumper(并行逻辑)。

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录