MySQLレプリケーションについてここで質問があります。私はデータベースについて非常に限られた知識しか持っていません。誰かが私がこれを明確にするのを手伝ってください。私の目標は、ダウンタイムを回避できる展開を実行できるようにすることです。
DBが複製されているとします(マスターとスレーブ)。新しいリリースを実行したいとし、移行スクリプトを実行する必要があるとします。私の計画は、レプリケーションを停止することです。そして、スレーブでスクリプトを実行します。移行スクリプトは次のようになります。
- 一部のビジネスロジックに基づいて、複数のクエリを実行してテーブルの列に新しい値を設定します。
- 新しい列を追加する
レプリケーションを再開すると、実際にはどうなりますか?スレーブはマスターの変更に追いつきます。しかし、マスターはスレーブに適用された変更をどのように取得しますか?同じデータベーススクリプトを実行すると、マスター上の同じデータセットに対して移行スクリプトが再度実行されることはありません。
スレーブがマスターに追いついた場合、スレーブのスナップショットを使用して新しいスレーブとして使用することは理にかなっていますか。そして、古い奴隷はマスターになりますか?
これが実際に明確であることを願っています。ありがとう。どんな助けでも本当にありがたいです。