私たちは標準の Mysql マスター/スレーブ レプリケーション システムを実行しており、これは数年間うまく機能しています。実際、サーバーの停止 (マスターをオフラインにした) から、スレーブ DB を使用して (マスターに変えた後) 復旧できました。
とにかく、問題の原因となっている問題は、サーバーを復旧し、元のマスターをマスターに戻し、元のスレーブをスレーブに戻した後に発生しました。
それは私が馬鹿だったことが原因でした - 他の何のせいでもありません!
基本的に、書き込みはスレーブで発生しました。つまり、マスターの同じテーブルへの書き込みは、重複した主キー エラーのためにレプリケートできません。
私が言ったように、私のせいです。
そこに誤って書き込まれたスレーブからレコードを削除できます。したがって、競合する ID をスレーブから削除しますが、マスター DB からレコードが必要です。
私の質問は次のとおりです。(SQL_SLAVE_SKIP_COUNTER を 1 に設定することにより) マスターから関連するクエリをスキップすることでレプリケーションを「修正」できることはわかっていますが、それはマスターからのレコードを失うことを意味します。
では、エラーが発生したレプリケーション書き込みを「再生」する方法はありますか? 基本的に、レプリケーションを1つのクエリに戻すことを指していますか?
それとも、スレーブを削除し、最後に成功したバックアップから再投入し、再びスレーブに設定するという、すべての困難を経験する必要がありますか?
よろしくお願いします。