是否可以为InnoDB中的每个数据库创建一个唯一的ibdate文件?
因为如果我在InnoDB中创建了多个数据库,那么它将全部存储在ibdata1,ibdata2等中......
这使得恢复1个数据库变得困难,而不是所有拥有InnoDB的客户端。 MyISAM为每个表创建多个.frm,MYD和MYI文件,使其更容易恢复。
我们如何在排序中使InnoDB上的恢复更容易。我是否必须制作DUMP .sql文件或其他解决方案?
由于
答案 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数据进行逻辑转储。