大容量の3つのテーブルを持つかなり大きなデータベースを2 hds(RAIDなし)のサーバにインポートする必要があり、容量はそれぞれ2TBです。 各テーブルのibdデータファイルは約800GBなので、ディスク全体に分散させるという課題に直面しています。
私がインポートと言うとき、私はmysqldumpファイルからのインポートを意味します。mysql innodb各ファイルが別のディレクトリにあるテーブルごとに1つのファイル?
何ができますか?
大容量の3つのテーブルを持つかなり大きなデータベースを2 hds(RAIDなし)のサーバにインポートする必要があり、容量はそれぞれ2TBです。 各テーブルのibdデータファイルは約800GBなので、ディスク全体に分散させるという課題に直面しています。
私がインポートと言うとき、私はmysqldumpファイルからのインポートを意味します。mysql innodb各ファイルが別のディレクトリにあるテーブルごとに1つのファイル?
何ができますか?
空のデータベースから始めているので、データをインポートする前に空のテーブルを作成し、データファイルの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
私はMariaDBから人々を尋ね、ここクリスティアン・ニールセンは私に言ったものだ:
--innodbファイル・テーブルごとに、適切な場所にデータファイルをシンボリックリンクを(「クリーン」な方法があるかもしれません
を私は別の場所に別々に各データファイルをシンボリックリンクしなければなりません、シンボリックリンクはファイル自体であり、存在するディレクトリではありません。 – user121196
各データファイルにシンボリックリンクが可能です。 –
は思え:/ – Mchl