サーバーAからサーバーBへのDB移行を実行する必要があります。
サーバーA:MySQLバージョン5.0.6がインストールされている
サーバーB:5.6.20がインストールされているMySQLバージョン
OS:どちらもRedHat Linux 64ビットを実行しています。 16 RAMメモリ。
MyISAM、InnoDB、アーカイブデータベースがあります。
合計サイズは約4TB。
最大のMyISAMデータベース= 3.2TB
最大のInnoDBデータベース= 85GB
key_buffer_size=2GB.
最大のInnoDBテーブル(85GB)でmysqldumpを実行しました
time /usr/local/mysql/bin/mysqldump -uroot -p --extended-insert --single-transaction ABCEx > ABCEx.sql
5時間実行した後、ダンプファイルは145GBになり、まだ完了していません。
-rw-rw-r-- 1 mysql mysql 145019313099 Mar 2 05:12 ABCEx.sql
私は輸出時間と輸入も心配しています。これを促進するための助けはありますか?
MyISAM
テーブルの移行については、.myd .frm .myiファイルをサーバーAからBにコピーして移行することを読みました。以前に実行したことがある場合は、ガイドまたはリンクを提供できますか? 3.2TBのMyISAM
データベースについて話している。
助けてください....大歓迎です:)
サーバー間でテーブルを移行する最良の方法は、バイナリの「ネイティブ」形式で移行することです。 (mysqldumpのように)シリアル論理ダンプを実行すると、非常に大きなデータベースで数日かかるだけでなく、リカバリにさらに時間がかかります。
ソースサーバーでInnoDBテーブルの可用性を維持する必要がある場合、最善の方法は、MySQL Enterprise Backup (Oracleサブスクリプションの一部)などのユーティリティを使用するか、ソースの類似ツール Percona XtraBackup。最後のものはLinuxホストでのみ機能することに注意してください。
ほとんどのデータがMyISAM /アーカイブ形式である場合、バックアップの実行に関して、可用性と一貫性を同時に保証することはできません。その場合、最良の方法はスナップショットを実行することです(ファイルシステムまたは環境-VM、LVM-が許可する必要があります)。 mylvmbackupなどのツールは、プロセスを簡略化します。考えられる最悪のシナリオでは、これらのテーブルをロック-FLUSH TABLES WITH READ LOCK
すでにmysqldumpのために実行している)、または単にシャットダウンすることもできます。サーバー全体、、. frm、MYI、MYDファイルをコピーします(MyISAMの場合)。 InnoDB(.ibd)ファイルをコピーするだけでは機能しないことに注意してください; MySQL 5.6とLOCK TABLES ... FOR EXPORT + ALTER TABLE...DISABLE/ENABLE TABLESPACE
構造が必要です。 Rsyncは、MySQLが利用できない時間を短縮するのに役立ちます。
MySQLのバイナリファイルは、異なるノード、アーキテクチャ、OS間でほぼ100%互換性があることに注意してください。
最後のオプションは、ファイルシステムにアクセスできない場合、より最適化された方法で論理バックアップを実行し、並列に実行するです。 ---(mydumper のようなツールはそれを大幅に簡素化し、XtraBackupまたはEnterpriseバックアップが機能しない場合に非常に使用されます。それは遅くなりますが、良いシナリオではmysqldumpの5〜10倍速くなります。
mydumper よりも「ネイティブな」バイナリバックアップを作成できない、またはしたくない場合は、適切な代替手段です。ロードのダンプは、通常のmysqldumpバックアップよりもはるかに高速です。