2017-12-01 4 views
0

私はかなりデータ重いワードプレスのウェブサイトをローカルで取り組んでいます。私はプロダクションにプッシュする準備ができていますが、データベースは18ギガバイトです(ただ1つのテーブル、1つの.ibdファイル)。 (それは10.1.21-MariaDBSQLデータベースを複数のファイルに分割する方法(後で再結合する)

問題は、私のアップロード速度はかなりひどいです。だから私は本当に2日のようにファイルをアップロードするのではなく、99%でエラーを出して、もう一度やり直すことにしました。

データベースを管理可能なチャンク(たとえば1GB)に分割して、一度に1つずつアップロードして、元のフォーム(完全な作業データベース)に戻すことはできますか?

+0

をこの記事を見てみましょう://stackoverflow.com/questions/1120095/split-files-using-tar-gz-zip-or-bzip2 –

+0

https://meta.stackexchange.com/questions/66377/what-is-the-xyをお読みください-problem – DaveInCaz

答えて

2

チャンクしないでください。圧縮をサポートしているrsyncを使用してください。接続が途切れた場合は中止します。帯域幅が狭い状況では、アップロードの速度を調整する方法が最も重要です。例えば

db/をコピーしてremoteが宛先サーバであるべきデータベースディレクトリである

rsync -avzP --bwlimit=1000 db/ remote:db/ 

。誤って2つのコピーを作成したり間違った場所にダンプしたりしないように、コピー元とコピー先のパスを設定する方法については非常に慎重にお読みください。

もう1つ注意すべきことは、mysqldumpのようなツールを使用して、のみを抽出することです。のデータです。 MySQLのデータディレクトリには、必ずしも重要でない追加の迷惑メールがたくさん含まれています。再構築することができます。これには、かなり大きくなる可能性のある取引ジャーナルと、データを簡単にサイズ変更できるインデックスが含まれます。

圧縮された.sqlファイルは、すべてのデータが含まれていても実際のMYSQLデータディレクトリのサイズのほんの一部です。それは単なるコンパクトな表現です。データベースは、記憶域を最適化するのではなく、読み書きに適したメソッドに物事を格納することを忘れないでください。

xtrabackupのようなツールを使用して、実行中のInnoDBバックアップデータベースの一貫したスナップショットを作成することもできます。実行中のデータベースのデータをコピーすることは非常に問題があり、それらのファイルは絶えず変更されています。 xtrabackupツールは、整合性をテストしたスナップショットを作成します。スナップショットは、データファイルを検査し、必要に応じてコピー内の状態を操作するために動作する組み込みInnoDBエンジンを備えています。

1

次のようにOUTFILEを使用してテキストファイルを作成します。

例:表にデータをロードする

SELECT customer_id, firstname, surname INTO OUTFILE '/exportdata/customers.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM customers; 

使用MySQLのローダーます。https:

LOAD DATA INFILE '/tmp/expense_upload.csv' 
INTO TABLE expenses (ss_id, user_id, cost, context, date); 
+0

ファイルが大きい場合にファイルを行番号で分割することができます。split -l 5000 myfile segment –

+0

これをやってみましたが、大量のデータがあるのでCSVから読み込むのに数時間かかるからです。私はrsyncと一緒に行くことにしました。とにかく、ありがとう! –

関連する問題