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

标签 mysql backup innodb restore

是否可以为 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/

相关文章:

php - 我可以将这两个选择查询合并为一个吗?

mysql - Linux 从 Webmin 执行 MySQL 备份到基于时间的路径

mysql - 使用 MyISAM 读取数据,使用 InnoDB 写入数据

amazon-web-services - 我需要备份 AWS EBS 数据吗?

MySql 外键索引

innodb - MySQL 时间点恢复

php - laravel Eloquent 关系问题

php - 这个 Jquery 帖子有问题吗?

php - 添加 Rest API 响应到 MySQL 数据库

sql-server - SQL Server - 归档的最佳复制模型