1

MySQLレプリケーションについてここで質問があります。私はデータベースについて非常に限られた知識しか持っていません。誰かが私がこれを明確にするのを手伝ってください。私の目標は、ダウンタイムを回避できる展開を実行できるようにすることです。

DBが複製されているとします(マスターとスレーブ)。新しいリリースを実行したいとし、移行スクリプトを実行する必要があるとします。私の計画は、レプリケーションを停止することです。そして、スレーブでスクリプトを実行します。移行スクリプトは次のようになります。

  • 一部のビジネスロジックに基づいて、複数のクエリを実行してテーブルの列に新しい値を設定します。
  • 新しい列を追加する

レプリケーションを再開すると、実際にはどうなりますか?スレーブはマスターの変更に追いつきます。しかし、マスターはスレーブに適用された変更をどのように取得しますか?同じデータベーススクリプトを実行すると、マスター上の同じデータセットに対して移行スクリプトが再度実行されることはありません。

スレーブがマスターに追いついた場合、スレーブのスナップショットを使用して新しいスレーブとして使用することは理にかなっていますか。そして、古い奴隷はマスターになりますか?

これが実際に明確であることを願っています。ありがとう。どんな助けでも本当にありがたいです。

4

1 に答える 1

3

スレーブがマスターに追いつき、マスターがスレーブで実行された変更をコピーするためにクロスマスターレプリケーションを行うか、ダウンタイムを設けてマスターのスクリプトを実行する必要があります。

1- ダウンタイムなしでスレーブ マスターの交換をクロス マスターに変更できます。
2-元スレーブがマスターを複製するのを止めます。
3-スクリプトを実行します。
4-元スレーブを再度起動します。

vmware などのツールを使用してテスト環境をセットアップし、試してみることをお勧めします。それが私がやったことです。

設定方法を説明するリンクがあります

http://onlamp.com/onlamp/2006/04/20/advanced-mysql-replication.html

実際の環境に変更を適用する前にテストすることはいくら強調しても足りないので、準備ができたと思うまで何度でもテストしてください。それが起こったら、もう一度テストしてください。バックアップも忘れずに

于 2012-08-20T12:13:21.097 に答える