我需要导入一个相当大的数据库与3大表到服务器与2 hds(没有突袭),每个具有2TB的容量。 每个表的ibd数据文件大约是800GB,因此我面临着将它们分布在磁盘上的挑战。
当我说导入时,我的意思是从mysqldump文件导入。mysql innodb每个表中的一个文件,其中每个文件位于不同的目录中?
可以做些什么?
我需要导入一个相当大的数据库与3大表到服务器与2 hds(没有突袭),每个具有2TB的容量。 每个表的ibd数据文件大约是800GB,因此我面临着将它们分布在磁盘上的挑战。
当我说导入时,我的意思是从mysqldump文件导入。mysql innodb每个表中的一个文件,其中每个文件位于不同的目录中?
可以做些什么?
因为你是从一个空数据库,这是很容易造成空表,然后导入数据之前移动数据文件中的一个不同的卷。移动文件时应关闭服务器,并在原始位置创建指向新路径的符号链接。
下面是一个简单的例子来说明如何做到这一点。
在MySQL:
-- create empty tables
use test;
create table table1(id int) engine = innodb;
create table table2(id int) engine = innodb;
create table table3(id int) engine = innodb;
在终端:
# shut down mysql server
service mysql stop
# move one of the innodb files to a new volume
mv -i /usr/local/mysql/data/test/table3.ibd /mnt3/mysql/test/data/.
# create a symlink so mysqld can use the standard path to find the file
ln -s /mnt3/mysql/test/data/table3.ibd /usr/local/mysql/data/test/table3.ibd
# start mysql server
service mysql start
,我向MariaDB人,这里就是克里斯蒂安尼尔森对我说:
--innodb文件,每个表的符号链接和数据文件到适当的位置(有可能是一个“干净”的方式,但是这是我所知道的作品)
但我不得不每个数据文件符号链接分别导入不同的位置,符号链接文件本身,而不是它所在的目录,这可能吗? – user121196 2012-02-18 01:55:16
符号链接每个数据文件,这是可能的。 – 2012-03-07 21:00:34
好像InnoDB的不允许:/ – Mchl 2012-02-17 13:04:32