问题描述
我需要将两个Innodb数据库文件存储在单独的分区上. (一个数据库在raid0上是为了提高速度,另一个在raid1上是为了提高稳定性)
I have a requirement to store two Innodb database files on separate partitions. (one database on raid0 for speed, the other on raid1 for stability)
据我所读,实现此目的的唯一方法是使用innodb_file_per_table
并将.ibd和.frm文件在可能存在的任何地方符号链接到已配置的mysql存储目录(/var/lib/mysql在我的系统上),ibdata1文件必须存在(用于表元数据).
From what I've read, the only way to accomplish this is by using innodb_file_per_table
and symlinking .ibd and .frm files wherever-they-may-live to the configured mysql storage directory (/var/lib/mysql on my system), where the ibdata1 file must live (for table metadata).
这是完成拆分的唯一方法吗?
Is this the only way to accomplish the split?
是否存在与myisam的TABLE/INDEX DIRECTORY类似的innodb?
Is there an innodb analog to myisam's TABLE/INDEX DIRECTORY?
推荐答案
我今天为此写了一篇博客文章: http: //www.mysqlperformanceblog.com/2010/12/25/spreading-ibd-files-across-multiple-disks-the-optimization-that-isnt/
I just wrote a blog post on this today:http://www.mysqlperformanceblog.com/2010/12/25/spreading-ibd-files-across-multiple-disks-the-optimization-that-isnt/
您不想做符号链接-而且InnoDB不支持DATA DIRECTORY/INDEX DIRECTORY.
You don't want to do the symlinking thing - and InnoDB does not support DATA DIRECTORY/INDEX DIRECTORY.
对于InnoDB,您实际上需要整个数据系统的稳定性.假设-
You actually need stability of the data system wide for InnoDB. Let's say -
- 您有关键表A,B,C.
- 非关键表是D,E,F.
- 如果将D,E,F重定位到/mnt/RAID0,并且丢失了该卷,则InnoDB实际上也不允许您再访问表A,B,C.
- 除非它可以访问您的所有数据,否则InnoDB将拒绝启动.
如果您有两个非常不同的数据要求,则需要安装两次MySQL;)
If you have two very different data requirements, you need two installs of MySQL ;)
这篇关于Innodb;多个数据目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!