讲师中心 微信公众号
AI工具推荐 视频效率加速

mysql的物理备份与逻辑备份的区别与应用

酷墨大大_7631

酷墨大大_7631

发布时间:2026-01-21 12:09:39

|

515人浏览过

|

来源于php中文网

原创

物理备份是直接拷贝MySQL数据文件,依赖实例状态和存储引擎,需一致性保障;逻辑备份导出SQL语句,与引擎无关、可跨版本恢复;生产中常混合使用二者。

mysql的物理备份与逻辑备份的区别与应用

物理备份是直接拷贝 MySQL 的数据文件

物理备份本质是复制 ibdata1、ib_logfile0、表空间文件(.ibd)、mysql 系统库目录、以及 my.cnf 配置等原始文件。它依赖 MySQL 实例的运行状态和存储引擎,尤其是 InnoDB 表必须在一致性状态下(如使用 FLUSH TABLES WITH READ LOCK 或配合 mysqldump --single-transaction 无法替代)才能安全拷贝。

常见工具包括:Percona XtraBackup(主流,支持热备)、rsync(冷备需停库)、cp(仅限测试环境)。备份速度快、恢复快,但跨版本/跨平台/跨架构(如 x86 → ARM)基本不可用,且无法只恢复单张表或某几行数据。

  • 必须确保 MySQL 使用的是 innodb_file_per_table=ON,否则所有表共享 ibdata1,单表恢复几乎不可能
  • XtraBackup 备份时会自动记录 binlog 位置和 gtid_executed,这对搭建从库很关键
  • 恢复前必须用 xtrabackup --prepare 回滚未提交事务、前滚已提交事务,否则 mysqld 启动失败并报错 InnoDB: Database page corruption on disk

逻辑备份导出的是 SQL 语句或文本格式的数据

逻辑备份不碰数据文件,而是通过客户端连接 MySQL,执行 SELECT 抽取数据,再拼成 INSERT、CREATE TABLE 等可执行 SQL。核心工具是 mysqldump 和 mydumper(多线程、更高效),MySQL 8.0+ 还可使用 mysqlpump(已弃用)或官方推荐的 mysqlshell 中的 util.dumpInstance()。

它与存储引擎无关,备份结果是纯文本,可读、可编辑、可跨版本恢复(只要语法兼容),也支持按库、按表、甚至按条件(--where)导出。

WordPress API Pro
WordPress API Pro

生产级WordPress REST API集成,用于管理文章、页面、媒体、WooCommerce产品、Elementor内容、SEO元数据、ACF及JetEngine字段

下载
  • mysqldump --single-transaction 对 InnoDB 有效,利用 MVCC 快照保证一致性;但对 MyISAM 仍需全局锁,生产环境慎用
  • mysqldump --skip-triggers --skip-routines 可避免导出触发器和存储过程——如果目标实例没权限或不需要,否则恢复时可能报 ERROR 1419 (HY000)
  • 大表导出易超时或 OOM,建议加 --quick --extended-insert=FALSE 控制内存占用;导入时用 set unique_checks=0; set foreign_key_checks=0; 加速

选物理还是逻辑?看恢复粒度和迁移需求

物理备份适合整实例灾难恢复、主从快速搭建、或对 RTO(恢复时间目标)要求极严的场景(如秒级恢复)。逻辑备份更适合开发测试数据同步、跨版本升级前验证、审计合规导出、或只需恢复某几张表/某个库的情况。

  • 线上主库每日全量 + binlog 增量:推荐 XtraBackup 全备 + mysqlbinlog --read-from-remote-server 拉取 binlog
  • 向测试环境推送指定业务库:用 mysqldump -B db_order db_user > backup.sql 更灵活
  • 误删了 user 表里某条记录,且没开 binlog:只能靠最近一次逻辑备份 + 手动 INSERT 回填,物理备份此时无能为力

混合策略才是生产常态

真实运维中几乎不会只用一种。典型做法是:每周一次 XtraBackup 物理全备(保留 4 周),每天凌晨用 mysqldump 做逻辑增量(只 dump 变更频繁的小库),同时开启 binlog 并定期归档。恢复时先还原物理备份到某时间点,再用 mysqlbinlog 重放至故障前一秒,最后用逻辑备份补漏(比如跳过某条坏数据)。

最容易被忽略的是权限校验:物理备份恢复后,mysql.user 表里的账号密码哈希值直接生效,但若原库用的是 caching_sha2_password 插件而目标 MySQL 版本太低,客户端连不上;逻辑备份默认导出 CREATE USER 语句,却可能因目标实例未加载对应认证插件而失败。

热门AI工具

更多
UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

4263

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

891

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

1109

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

6181

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

3023

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

6140

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

8301

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

1130

2024.04.29

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

0

2026.10.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 187人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn