您InnoDB只需复制“冷备份”所有相关文件,即可移动数据库 。
InnoDB数据和日志文件在具有相同浮点数格式的所有平台上都是二进制兼容的。如果浮点格式不同,但是您尚未使用表中的数据类型,FLOAT或者 DOUBLE您的表中没有 数据类型,则过程相同:只需复制相关文件。
移动或复制每表.ibd 文件时,数据库目录名称在源系统和目标系统上必须相同。存储在InnoDB共享表空间中的表定义 包括数据库名称。表空间文件中存储的事务ID和日志序列号在数据库之间也有所不同。
要将.ibd文件和关联的表从一个数据库移动到另一个数据库,请使用以下RENAME TABLE语句:
RENAME TABLE db1.tbl_name TO db2.tbl_name;
如果您有文件的“ 干净 ”备份 .ibd,则可以将其还原到其原始来源的MySQL安装中,如下所示:
1、自复制.ibd文件以来,该表一定不能删除或截断,因为这样做会更改存储在表空间中的表ID。
2、发出以下ALTER TABLE语句以删除当前.ibd文件:
ALTER TABLE tbl_name DISCARD TABLESPACE;
3、将备份.ibd文件复制到正确的数据库目录。
4、发出以下ALTER TABLE语句,告诉InnoDB您将新 .ibd文件用于表:
ALTER TABLE tbl_name IMPORT TABLESPACE;
注意
ALTER TABLE ... IMPORT TABLESPACE功能不对导入的数据施加外键约束。
在这种情况下,“ 干净的 ” .ibd 文件备份是可以满足以下要求的文件备份:
.ibd文件