500GBのデータベースAサイズがあります。データベースAのテーブルには、MyISAMテーブルとINNODBテーブルの両方が含まれています。 MyISAMテーブルはマスターテーブルで、Innodbテーブルはメイントランザクションテーブルです。
Mysqlダンプを使用してバックアップと復元を行うと、長時間または数日で終了します。
ただし、このリンクでは、PerconaのXtraBackupも推奨されています。これは、より高速で、すでに使用されているテーブルをロックせず、復元の時間もありません。 500 GBのデータの場合、既存のDBサーバーからのものでない場合にそれらをinnodb_file_per_tableモデルに変換する場合を除き、Percona XtraBackupが迅速かつ効率的であることを好みます。以下のリンクは、続行する方法について説明します。
http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html
Mydumperをチェックしてください。 mysqldumpよりもはるかに高速です: 新しいmydumper 0.6.1リリースは、パフォーマンスと使いやすさの機能を提供します
ここからダウンロードできます: https://github.com/maxbube/mydumper
Mydumperとは何ですか?どうして?
- 並列処理(したがって、速度)とパフォーマンス(高価な文字セット変換ルーチン、効率的なコード全体を回避)
- 出力の管理がより簡単に(テーブル用の個別のファイル、ダンプメタデータなど、データの表示/解析が容易)
- 一貫性-すべてのスレッドにわたってスナップショットを維持し、正確なマスターおよびスレーブログの位置などを提供します。
- 管理性-データベースとテーブルの包含と除外を指定するPCREをサポートします
Innobackupexで次のことを試してください。
innobackupex --parallel=7 --rsync /var/mysql/backup
並列処理番号は好きなように変更できます。あなたがmyisamテーブルを持っていると述べたので、「rsync」パラメータはそれらのバックアップを高速化するのに役立ちます。
問題は、mysqldumpの一時停止されたダンプファイルからより速く復元する方法に関するものであり、別のバックアップソリューションに関するものではないと思います。
これを行う方法の1つは、スキーマにテーブルのグループを作成し、グループごとに個別のDBユーザーを作成し、MySQL権限を使用して、1人を除くすべてのDBユーザーにテーブルを挿入できないようにすることです。
これは、実証済みの高速でほぼ並行した手法ですが、500Gからの復元にかかる時間は100%確実ではありません。しかし、私見、あなたは何か平行したものが必要です。例については、以下のリンクを参照してください。