逻辑备份是将数据库结构和数据导出为可读SQL语句的文本文件,兼容性好、便于修改,适用于中小规模库、跨版本迁移及开发测试;常用工具为mysqldump,支持全库、单库、多表、仅结构或仅数据导出,并可通过--single-transaction保障InnoDB一致性,还可按条件筛选、排除表或压缩存储,恢复时直接导入SQL文件即可。
逻辑备份就是把数据库里的结构和数据,转换成可读的 SQL 语句(比如 CREATE TABLE 和 INSERT INTO),存成文本文件。它不复制原始数据文件,而是通过查询数据库来“读出来再写进去”,所以兼容性好、便于检查和修改,适合中小规模库、跨版本迁移或开发测试场景。
mysqldump 是 MySQL 自带最常用的逻辑备份工具,无需额外安装,命令简洁:
mysqldump -u root -p --all-databases > all.sql
mysqldump -u root -p mydb > mydb.sql
mysqldump -u root -p mydb tb1 tb2 > tables.sql
mysq
ldump -u root -p -d mydb > schema.sql
mysqldump -u root -p -t mydb > data.sql
对 InnoDB 表做逻辑备份时,加上 --single-transaction 可避免锁表,让备份过程不影响线上写入。它利用事务快照机制,在备份开始时刻获取一个一致视图:
mysqldump -u root -p --single-transaction mydb > consistent.sql
逻辑备份灵活,能精准控制内容范围:
mysqldump -u root -p mydb users --where="status=1" > active_users.sql
mysqldump -u root -p mydb --ignore-table=mydb.log_table > clean.sql
mysqldump -u root -p mydb | gzip > mydb.sql.gz
把 SQL 文件重新导入 MySQL 即可,前提是目标库已存在(或先执行 CREATE DATABASE):
mysql -u root -p mydb
gunzip
/var/lib/mysql 下文件不可写会导致启动失败)