"MyISAM 存储引擎( 非事物存储引擎 ):所有数据都存放在 Mysql 配置中所设定的 Datadir 目录下。
MyISAM 存储引擎除了备份 Mysql 系统共有的物理文件外,有三个文件需要备份,记录表结构元数据的 .frm 文件、存储表数据的 .MYD 文件、存储索引数据的 .MYI 文件。
2、Innodb 存储引擎( 事务性存储引擎 ):存放数据的位置取决于对 Innodb 的相关配置。
决定 Innodb 存放数据位置的参数:Innodb_data_home_dir 、Innodb_data_file_path 、Innodb_log_group_home_dir( 指定了数据和日志文件存放的位置 )
决定 Innodb 表空间存储方式参数:Innodb_file_per_table( 决定 Innodb 是以共享表空间还是独享表空间存储数据 )
如果使用共享表空间存储方式,Innodb 需要备份 Innodb_data_home_dir 和 Innodb_data_file_path 所设定的数据文件及 Datadir 中相应的数据目录下的所有 Innodb 存储引擎表的 .frm 文件。
如果使用独享表空间存储方式,除了备份上面所有文件外,还要备份 Datadir 中相应数据目录下的所有 .idb 文件( 该文件中存放的才是独享表空间方式下 Innodb 存储引擎表的数据 )。
## 使用独享表空间时,数据并不是全部放在 Datadir 下数据库目录下的 .ibd 文件中,这里存放的只是表数据而以。
## Innodb 是事务存储引擎,它的 undo 和 redo 信息,不管是使用独享还是共享表空间存储数据,与事务相关的 undo 信息以及其它一些元数据信息,
## 都是存放在 Innodb_data_home_dir 和 Innodb_data_file_path 这两个参数所设定的数据文件中的。所以这两个目录下的数据文件不管什么情况( 物理备份 )都必须备份。
Innodb 还有自己存放 redo 信息和相关事务信息的日志文件在 Innodb_log_group_home_dir 参数所设定的位置,这里的所有日志文件也必须备份。"
三、备份策略
备份策略设计是否合理,关系到了所作备份是否能满足需求,所以这是很重要的。
1、对于较为核心的在线应用业务,必须要有备用的主机通过 Mysql 复制进行相应的备份,复制线程一直开启,恢复线程一天恢复一次,尽量让备份机数据延迟主机一段时间,一般为一天。
这样当数据丢失时,就可以通过增量备份快速恢复数据,甚至可以直接开放备份机对外提供服务。
2、对于重要级别稍微低一些的应用,恢复时间要求不是太高的话,可以不使用备份机,而采用周期性的物理全备份加每小时或每合适时间的二进制日志备份。
3、对于更为级别低一些的应用,恢复时间没有太多要求,但不希望丢失太多数据,则可以采用定期逻辑全备份加二进制日志备份的方式。因为逻辑备份更为简单,可以在线备份,不影响业务系统。""
4、如果是测试环境,那么只需做逻辑全备份即可。""