为InnoDB中的每个数据库创建新的ibdata *文件

时间:2011-09-13 15:23:13

标签: mysql backup innodb restore

是否可以为InnoDB中的每个数据库创建一个唯一的ibdate文件?

因为如果我在InnoDB中创建了多个数据库,那么它将全部存储在ibdata1,ibdata2等中......

这使得恢复1个数据库变得困难,而不是所有拥有InnoDB的客户端。 MyISAM为每个表创建多个.frm,MYD和MYI文件,使其更容易恢复。

我们如何在排序中使InnoDB上的恢复更容易。我是否必须制作DUMP .sql文件或其他解决方案?

由于

1 个答案:

答案 0 :(得分:5)

您无法通过数据库分离InnoDB数据,但您可以按表将它们分开,并且这些表存储在相应的子目录下,就像MyISAM表一样。见http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html

但无论您使用的是中央表空间文件还是每个表的文件,都不应该通过在文件系统上移动文件来备份或恢复InnoDB数据库。即使您没有运行查询来写入InnoDB表,也有后台线程正在处理ib_logfile,撤消日志,插入缓冲区等。您的数据在任何给定时间都分布在多个地方,如果您尝试移动InnoDB文件,破坏它们。

相反,使用mysqldump在MySQL运行时安全地对InnoDB数据进行逻辑转储。