2011-12-13 13 views
5

私は80GBのMySql DBを持っています。MySql - ダウンタイムを最小限に抑えてレプリケーションを作成

現在のDBをマスターとして持ち、それに対してスレーブを設定しながら、そのDB上にレプリケーションを作成したいとします。

私の主な質問は、可能な限り最低限のダウンタイム、好ましくはなしで、マスターから新しいスレーブにデータ(全80GB)を移動する方法です。

私の最初の考えは、DBを(ログの位置をとった後に)停止してから、mysqldata libからファイルをコピーしてからサーバを再起動するだけですが、ファイルをコピーするには約2時間かかります。

どのような考えですか?

+0

;-)笑、そのMySQLクラスタが良いですが、言わなければなりませんダウンタイム...特にMyISAMデータがたくさんある場合は... http://www.marcpope.com/article.php?story=2013060316014742 –

答えて

6

車輪の再発明をし、私はすでに、これらの記事に書いた情報に書き換えるのではなくOn July 8, 2011 I addressed a similar question. I wrote scripts that would zap binary logs and starting performing an rsync.

On June 16, 2011, I wrote a post contrasting doing an rsync versus using XtraBackup.

On May 23, 2011, I discussed what considerations to make when doing this kind of backup.

は、私は単にへのリンクを提供しますこの質問に対処する自分の投稿。

慎重にお読みください。

試してみてください!

CAVEAT

指定されている複数のrsyncsを実行した後、あなたシャットダウンmysqlの、もう一つのrsyncを実行し、MySQLのを起動したときに、私のrsyncのアルゴリズムで唯一のダウンタイムはあります。

私はシャットダウンの理由を明らかにしたいと思います:

あなたシャットダウンmysqlのとき:

  • 開いているすべてのMyISAMテーブルが閉じている、多くのファイルハンドルが開かれているどのようにマークヘッダがありますMyISAMテーブルに追加します。テーブルがOKになるには、ゼロ(0)でなければなりません。それ以外の場合、このヘッダフィールドにゼロ以外の値を持つ閉じたMyISAMテーブルは、クラッシュしてテーブルを修復する必要があるとマークします。 mysqlをシャットダウンすると、そのすべてが消去されます。

  • バッファプール内のデータページまたはインデックスページのうち、ダーティとマークされているインデックスページはすべて、ディスクにフラッシュする必要があります。シャットダウンを実行すると、バッファプールが完全にフラッシュされます。もちろん、プールが大きく、ダーティページの数が多いほど、バッファプールのフラッシュ時間は長くなります。 mysqldのシャットダウンのこのフェーズを短縮するには、rsyncを実行する前にSET GLOBALinnodb_max_dirty_pages_pct= 0;を実行してください。すべてのトランザクションが完了します(コミットまたはロールバックのいずれか)。

0

私はあなたにいくつかの誤解があると思います。

  1. それが開始する前に、あなたは
  2. 書き込み記録マスタバイナリ位置
  3. からすべてのテーブルをロックマスターするマスター
  4. ログインのマスター
  5. 再起動mysqlの上でバイナリログを有効にする必要がありますマスターからバイナリデータをコピーします(直接コピー* .MYI、* .MYD ...など)。コピーが完了したら
  6. を削除してwriを削除してくださいTEスレーブにスレーブロック
  7. SCPデータを(ネットワーク距離に依存する)
  8. セットアップ関連マスタ情報(バイナリログ位置、およびバイナリログを無効にすることを忘れない)その後
  9. 開始スレーブ

スレーブに大きな遅延があるはずです。
スレーブはマスタに自動的に追い付くようになります。
スレーブは準備完了です。

したがって、ダウンタイムは、テーブルをロックして、バイナリデータをmasterデータベースの別の場所にコピーするときだけです。

ドキュメント: - http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html

0

私は、次のツールが大きな助けと効率のものであることを発見しました。著者は現在、Facebookのデマのために働いています。 セットアップが簡単で、4 9のHAに届きます。 ;-)

MHA tool for MySQL replication high availability

私はここで私はロックテーブルのほんの数秒で完璧なスレーブを実行する方法について書いたガイドだ

関連する問題