《最基础的MySQL物理备份形式 - 冷备份》我们详细介绍了冷备份的方法,下面我们将学习MyISAM InnoDB存储引擎会备份什么物理文件。


一、 MyISAM 存储引擎


1. 文件位置:所有MyISAM表的数据都存放在MySQL配置文件中 datadir 参数所指定的目录下。每个数据库对应一个文件夹。

datadir是一个路径,我们可以再my.ini文件里找到。像这样:

datadir

复制路径,我们就可以看到这些文件:(我的MySQL默认是Innodb储存引擎,后面就只文字介绍了)

dotcpp数据库文件

然后一个数据库里存储的表都会有3个文件:


文件扩展名文件用途存储内容是否MyISAM特有
.frm存储表结构元数据表定义、列信息、数据类型、约束等否(所有存储引擎共有)
.MYD存储表数据实际的表记录数据是(MyISAM特有)
.MYI存储索引数据表的索引信息,用于快速查询是(MyISAM特有)

注意MyISAM 具有非事务性:MyISAM不支持事务,因此它没有自己的事务日志(如redo log)。


二、 Innodb存储引擎

InnoDB的存储和备份要复杂得多,因为它是一个事务性存储引擎。它的数据可能存储在多个地方,具体取决于配置,一些基础参数配置和解释如下:

参数名称默认值功能描述重要性说明
innodb_file_per_tableON (1)表空间模式开关
• ON独享表空间。每个表的数据和索引存储在自己的 .ibd 文件中。
• OFF共享表空间。所有表的数据和索引存储在共享的 ibdata 文件中。
最重要的参数,直接影响数据库的维护、备份和性能。现代版本默认开启,强烈建议保持 ON
innodb_data_file_path
innodb_data_home_dir
ibdata1:12M:autoextend
(通常位于 datadir)
共享表空间定义
这两个参数共同定义了共享表空间文件(ibdata1ibdata2...)的路径、名称和大小
即使开启独享表空间,共享表空间文件依然必须存在,用于存储元数据、撤销日志、双写缓冲等系统级数据。
innodb_log_group_home_dirdatadir重做日志目录
定义了InnoDB重做日志文件 (ib_logfile0ib_logfile1) 的存放目录。
至关重要。重做日志记录了所有数据更改操作,用于保证事务的持久性(Durability) 和数据库崩溃恢复,绝不能丢失或随意删除。

根据InnoD引擎的性质,在进行InnoDB物理备份时,无论采用共享还是独享表空间模式,都必须备份三部分核心文件:首先是共享表空间文件(由innodb_data_home_dir和innodb_data_file_path参数定义),其中存储着事务undo信息、元数据等关键系统数据;其次是重做日志文件(位于innodb_log_group_home_dir指定路径),用于保证事务持久性和崩溃恢复;最后是数据库目录下的.frm表结构文件。当使用独享表空间时,还需额外备份对应的.ibd数据文件,但需注意.ibd文件仅存储表数据,而事务系统数据仍依赖于共享表空间文件,这是确保备份完整可用的关键。

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)