是否可以为 InnoDB 中的每个数据库创建一个唯一的 ibdate 文件?
因为如果我在 InnoDB 中创建了多个数据库,它将全部存储在 ibdata1、ibdata2 等...
这使得仅恢复 1 个数据库而不是所有拥有 InnoDB 的客户端变得困难。 MyISAM 为每个表创建多个 .frm、MYD 和 MYI 文件,以便于恢复。
我们怎样才能使 InnoDB 上的恢复更容易。我必须制作 DUMP .sql 文件还是有其他解决方案?
谢谢
最佳答案
InnoDB 的数据不能按库分开,但是可以按表分开,表和MyISAM 表一样存储在各自的子目录下。参见 http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html
但是无论您是使用中央表空间文件还是每个表的文件,您都不应该通过在文件系统上四处移动文件来备份或恢复 InnoDB 数据库。即使您没有运行查询来写入 InnoDB 表,也有后台线程正在处理 ib_logfile、撤消日志、插入缓冲区和其他内容。您的数据在任何给定时间都分布在多个地方,如果您尝试四处移动 InnoDB 文件,您将损坏它们。
相反,使用 mysqldump 在 MySQL 运行时安全地对 InnoDB 数据进行逻辑转储。
关于mysql - 为 InnoDB 中的每个数据库创建新的 ibdata* 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404394/