利用二进制文件的复制操作,可以对InnoDB进行完整的物理备份,备份对全部的InnoDB表进行复制,并生成所有表空间文件的副本。
数据库中所有的InnoDB表必须备份在一起,原因是InnoDB会在系统表空间中集中维护一些信息,其他的InnoDB表空间包含的数据依赖于系统表空间中InnoDB的数据字典。
为了保证一致性,进行文件复制时,必须停掉MySQL服务器,因此,该方法是冷备份的方法。
二进制文件的物理备份具有可移植性。
二进制文件可以从一台MySQL服务器直接复制到另外一台服务器,在不同架构的服务器间进行备份时非常有用。
对于不同的存储引擎,可移植性稍微不同。
- InnoDB:全部的表空间和日志文件可以直接复制,数据库的路径名称在源/目标服务器上必须保持一致。
- MyISAM和Archive:每个表的所有文件都可以直接复制,元数据文件需要从.sdi文件中导入。
注意:MySQL在Windows操作系统中,内部使用小写字母保存数据库和表的名称,如果目标系统对于大小写敏感,可以使用“lower_case_table_names=1”选项。
InnoDB的二进制文件物理备份过程
备份恢复
使用物理备份恢复InnoDB时需要按照如下步骤进行:
注意,InnoDB使用共享表空间存储表的元数据,因此需要:
- 将共享表空间和独立表空间文件作为一组进行复制
- 复制对应的重做日志和撤销日志