逻辑备份就是把 MySQL 数据库里的结构(比如 CREATE TABLE)和数据(比如 INSERT 语句)导出成一个纯文本的 SQL 文件,内容可读、可编辑、可跨版本迁移。
逻辑备份的核心特点
它不复制磁盘上的文件,而是让 MySQL 服务主动“说出”当前的数据长什么样。整个过程依赖 mysqldump 或 mysqlpump 等客户端工具,要求数据库处于运行(open)状态。备份结果是一个 .sql 文件,打开就能看到建表语句和插入语句,甚至能手动删掉某条记录或改个字段名再恢复。
常用逻辑备份方式:mysqldump
这是最主流的逻辑备份命令,用法灵活:
备份单个库:mysqldump -u root -p mydb > mydb.sql 备份多个库:mysqldump -u root -p --databases db1 db2 > dbs.sql 全量备份所有库:mysqldump -u root -p --all-databases > alldb.sql 加 --single-transaction 可在不锁表前提下保证一致性(适合 InnoDB)逻辑备份适合什么场景
它不是万能的,但特别适合以下情况:
需要把数据从旧版本 MySQL 迁移到新版本(SQL 兼容性好) 只恢复某张表或某几条记录(直接编辑 .sql 文件即可) 开发测试环境快速拉取生产子集数据 备份量不大(几百 MB 以内),对恢复时间不敏感逻辑备份的局限性
它也有明显短板,不能替代物理备份:
备份和恢复都较慢,尤其数据量大时(要逐行生成/执行 SQL) 无法做到秒级 RPO(恢复点目标),因为备份过程是“快照式”的,不是实时流式 不包含日志、配置文件、用户权限细节(除非显式加 --routines --events --triggers --hex-blob 等参数) 备份期间若发生 DDL 操作(如 ALTER TABLE),可能引发不一致