为什么MySQL物理备份体积比数据目录小_排查是否排除了临时文件和日志

风芳大大_2557

风芳大大_2557

2026-05-15

854人浏览

原创

物理备份常跳过ibtmp1、#sql-.ibd、#sql-.frm、错误日志、慢查询日志、通用日志及二进制日志等非关键文件,因其可重启重建且不参与一致性恢复。

为什么mysql物理备份体积比数据目录小_排查是否排除了临时文件和日志

物理备份体积比数据目录小,大概率是备份工具跳过了临时文件和日志

物理备份(比如用 rsync、tar 或 mysqlbackup)默认不会无差别复制整个 /var/lib/mysql 目录下所有文件。很多工具会主动忽略运行时生成的临时或可重建文件,导致备份体积明显小于 du -sh /var/lib/mysql 的结果。

哪些文件常被物理备份跳过?

这些文件不参与一致性恢复,且重启服务后能自动重建,所以多数备份策略会排除它们:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • ibtmp1:InnoDB 临时表空间,默认随 mysqld 启动创建,关机即删;若 innodb_temp_data_file_path 未设为固定大小,它会被跳过
  • #sql-*.ibd 和 #sql-*.frm:ALTER 过程中残留的临时表文件,属“幽灵文件”,备份工具通常不认
  • 错误日志(mysqld.err)、慢查询日志(slow.log)、通用日志(general.log):纯文本日志,非数据文件,mysqldump 和 mysqlbackup 默认不包含
  • 二进制日志(binlog.000001 等):除非显式启用 --include-binlogs(如 mysqlbackup),否则不进备份包

如何验证备份是否漏了关键数据文件?

别只比总大小,要逐项核对备份内容与实际数据目录结构:

  • 用 tar -tzf backup.tar.gz | grep '\.ibd$' 查看备份里有哪些 .ibd 文件,再对比 ls /var/lib/mysql/*/ | grep '\.ibd$'
  • 检查备份是否含 ibdata1(共享表空间)或每个库下的 db.opt —— 缺失说明可能用了不完整路径备份
  • 运行 mysqlbackup --backup-dir=/path/to/backup list-backup(如果是 MySQL Enterprise Backup),它会明确列出“Excluded files”
  • 如果用 rsync 自建脚本,确认没加 --exclude='*.err' --exclude='ibtmp1' 类参数——有时候排除逻辑写死了但忘了同步更新

真正危险的是“看起来一致,其实漏了系统表空间”

最容易被忽略的是 ibdata1 和 mysql.ibd 的状态。如果 innodb_file_per_table=OFF(虽已不推荐,但老实例仍存在),所有表数据都挤在 ibdata1 里;此时若备份只拷了各库子目录而漏掉 ibdata1,恢复后所有表都会变成空壳。务必先查 SHOW VARIABLES LIKE 'innodb_file_per_table';,再决定备份范围是否覆盖根目录级文件。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

2273

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

1379

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

815

5

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.19

3152

5

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.25

5328

4

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.08

1179

3

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.11

5591

4

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

2023.08.14

4902

7

mysql事务隔离级别
mysql事务隔离级别

mysql规范中定义了四种事务隔离级别,不同的隔离级别对事务的处理有所不同。本专题为大家提供mysql事务隔离级别相关的文章内容,大家可以免费体验。

2023.08.16

6514

11

热门下载

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

精品课程

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

共1课时 | 188人学习