我需要導入一個相當大的數據庫與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