为 InnoDB 中的每个数据库创建新的 ibdata* 文件
是否可以为 InnoDB 中创建的每个数据库创建一个唯一的 ibdate 文件?
因为如果我在 InnoDB 中创建了多个数据库,它将全部存储在 ibdata1、ibdata2 等中...
这使得仅恢复 1 个数据库而不是所有拥有 InnoDB 的客户端变得很困难。 MyISAM 为每个表创建多个 .frm、MYD 和 MYI 文件,这使得恢复更容易。
我们如何才能使 InnoDB 上的恢复变得更容易。我必须制作 DUMP .sql 文件还是有其他解决方案?
谢谢
Is it possible the create a unique ibdate file for each database made in InnoDB ?
Because if I have multiple database made in InnoDB it will all store it in the ibdata1, ibdata2, etc...
Which make it difficult to just restore 1 database and not all clients who have InnoDB. MyISAM create multiple .frm, MYD and MYI file for each table which make it easier to restore.
How can we make in sort that restore is more easy on InnoDB. Do I have to make a DUMP .sql file or there's other solution ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
InnoDB数据不能按数据库分开,但可以按表分开,表像MyISAM表一样存储在各自的子目录下。请参阅http://dev.mysql.com/doc/ refman/5.1/en/innodb-multiple-tablespaces.html
但是,无论您使用中央表空间文件还是每个表文件,您都不应该通过在文件系统上移动文件来备份或恢复 InnoDB 数据库。即使您没有运行查询来写入 InnoDB 表,也会有后台线程处理 ib_logfile、撤消日志、插入缓冲区和其他内容。您的数据在任何给定时间都分布在多个位置,如果您尝试移动 InnoDB 文件,您将会损坏它们。
相反,使用 mysqldump 在 MySQL 运行时安全地对 InnoDB 数据进行逻辑转储。
You can't separate InnoDB data by database, but you can separate it by table, and the tables are stored under the respective subdirectory just like MyISAM tables would be. See http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html
But regardless of whether you use a central tablespace file or file-per-table, you should not back up or restore InnoDB databases by moving files around on the filesystem. Even when you're not running queries to write to InnoDB tables, there are background threads that are processing the ib_logfile, undo logs, insert buffers, and other things. Your data is spread in multiple places at any given time, and if you try to move InnoDB files around, you will corrupt them.
Instead, use mysqldump to make logical dumps of InnoDB data safely while MySQL is running.