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 name='Jerry'
WHERE id=1;


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 物理备份 企业生产环境、InnoDB
MySQL Enterprise Backup 物理备份 Oracle 企业版
直接复制数据目录 物理备份 是(建议) 停机维护、实验环境

mysqldump :把数据库翻译成 SQL 脚本,恢复时重新执行 SQL。

Percona XtraBackup :把 InnoDB 数据文件 + Redo Log 安全地复制出来,恢复时直接还原文件并应用日志,属于物理热备份

MySQL Enterprise Backup:Oracle 官方提供的物理热备份工具,工作原理与 XtraBackup 类似,但属于商业版,提供更多企业级特性和官方支持。

相关推荐
小二·9 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手10 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌10 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者10 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余10 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹11 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
TPBoreas11 小时前
MySQL性能优化面试全攻略
mysql·面试·性能优化
xlq2232212 小时前
11.表的内外连接,索引
mysql
AllData公司负责人12 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine