2012-02-17 6 views
2

大容量の3つのテーブルを持つかなり大きなデータベースを2 hds(RAIDなし)のサーバにインポートする必要があり、容量はそれぞれ2TBです。 各テーブルのibdデータファイルは約800GBなので、ディスク全体に分散させるという課題に直面しています。
私がインポートと言うとき、私はmysqldumpファイルからのインポートを意味します。mysql innodb各ファイルが別のディレクトリにあるテーブルごとに1つのファイル?

何ができますか?

+0

は思え:/ – Mchl

答えて

0

空のデータベースから始めているので、データをインポートする前に空のテーブルを作成し、データファイルの1つを別のボリュームに移動するのはかなり簡単です。ファイルを移動している間はサーバーをシャットダウンし、新しいパスを指す元の位置にシンボリックリンクを作成する必要があります。

ここでは、これがどのように行われたかを示す簡単な例を示します。 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; 

: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 
0

私はMariaDBから人々を尋ね、ここクリスティアン・ニールセンは私に言ったものだ:

--innodbファイル・テーブルごとに、適切な場所にデータファイルをシンボリックリンクを(「クリーン」な方法があるかもしれません

+0

を私は別の場所に別々に各データファイルをシンボリックリンクしなければなりません、シンボリックリンクはファイル自体であり、存在するディレクトリではありません。 – user121196

+1

各データファイルにシンボリックリンクが可能です。 –

関連する問題