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

是否有可能为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?


下一篇:验证mysqldump备份是否无损坏