MySQL 备份

📅 2026/7/11 20:57:53
MySQL 备份
逻辑备份: 把数据库转换成 SQL 原数据库 user id name 1 Tom 2 Jack 备份以后 CREATE TABLE user( id INT, name VARCHAR(20) ); INSERT INTO user VALUES(1,Tom); INSERT INTO user VALUES(2,Jack); 恢复: mysql ↓ 执行SQL ↓ 恢复数据 运用工具: mysqldump 导出: 1、mysqldump -u root -p shop shop.sql //备份整个数据库 2、mysqldump -u root -p shop user orders data.sql //备份指定表user orders 3、mysqldump -u root -p --all-databases all.sql //备份所以数据库 4、mysqldump -u root -p --no-data shop table.sql //导出结构 不要数据 没有INSERT 5、mysqldump -u root -p --no-create-info shop data.sql //导出数据 不要结构 只有INSERT 导入: mysql -u root -p shop shop.sql物理备份 Percona XtraBackup 复制数据文件复制Redo Log恢复一致性 利用InnoDB 的Redo Log工作。 例如 10:00开始复制user.ibd 期间数据库不会停用户操作 UPDATE user SET nameJerry WHERE id1; Redo Log 会记录 10:01 Page 235 修改 xxx 继续复制等全部复制完最后会把Redo Log一起复制。 得到数据文件Redo Log 恢复的时候 先恢复数据文件然后Replay Redo Log。 最后数据库就是一致的。逻辑备份可跨版本、可读性强但恢复较慢因为要执行多条mysql语句。物理备份速度快且支持增量备份但依赖存储格式和版本。mysqldump 是导出 SQL而 XtraBackup 和 MySQL Enterprise Backup 是复制数据库文件工具类型是否停机是否支持增量适用场景mysqldump逻辑备份否一般否小型数据库、开发测试、迁移mysqlpump逻辑备份否否MySQL 5.7 引入支持并行导出Percona XtraBackup物理备份否是企业生产环境、InnoDBMySQL Enterprise Backup物理备份否是Oracle 企业版直接复制数据目录物理备份是建议否停机维护、实验环境mysqldump把数据库翻译成 SQL 脚本恢复时重新执行 SQL。Percona XtraBackup把InnoDB 数据文件 Redo Log安全地复制出来恢复时直接还原文件并应用日志属于物理热备份。MySQL Enterprise BackupOracle 官方提供的物理热备份工具工作原理与 XtraBackup 类似但属于商业版提供更多企业级特性和官方支持。