私は、MySQL の削除ステートメントがスレーブによって処理されないようにする方法を探していました。データ ウェアハウス プロジェクトに取り組んでおり、データをスレーブにレプリケートした後で、運用サーバーからデータを削除したいと考えています。
これを行うための最良の方法は何ですか?
ありがとうございました
私は、MySQL の削除ステートメントがスレーブによって処理されないようにする方法を探していました。データ ウェアハウス プロジェクトに取り組んでおり、データをスレーブにレプリケートした後で、運用サーバーからデータを削除したいと考えています。
これを行うための最良の方法は何ですか?
ありがとうございました
これを行うにはいくつかの方法があります。
SET SQL_LOG_BIN=0;
する前に、マスターで関連するセッションを実行します。そうすれば、バイナリログに書き込まれませんBEFORE DELETE
、削除を無視します。複製したくないステートメントには、アプローチ #1 を使用する傾向があります。SUPER
特権が必要です。
#2 は試していませんが、可能なはずです。
これはハックでしか実現できず、問題が発生する可能性があります。MySQL のレプリケーションは、このために設計されていません。
マスターにレコードを挿入すると、スレーブにレプリケートされると想像してください。次に、マスターから削除しますが、スレーブからは削除しません。誰かが同じ一意のキーを持つレコードを追加すると、スレーブで競合が発生します。
いくつかの代替案:
おそらく、このミラー データベースを削除せずに使用する理由を教えていただければ、より的を絞った解決策を提供できます。