MySQLで混合ベースのレプリケーションを使用する理由

MySQLで混合ベースのレプリケーションを使用する理由

私は現在 MySQL レプリケーションを設定中で、行ベースのレプリケーションを使用するつもりですが、混合ベースのレプリケーションについても調べていました。

ここではステートメントベースがデフォルトであり、特定の状況では(バイナリログ) MySQL は行ベースに切り替わります。

行ベースに切り替わる時期については、リストが非常に膨大です。

私の質問は次のとおりです:

混合して使用している人はいますか? 使用している場合、どちらか一方ではなく、これを選択した理由は何ですか?

前もって感謝します

答え1

混合して使用する人はいますか?

多くの人が混合モードレプリケーションを使用したことがあると思います。これは長い間、MySQL リファレンスマニュアル:

MySQL 5.1.12 から MySQL 5.1.28 までは、混合形式がデフォルトです。MySQL 5.1.29 以降では、ステートメントベースの形式がデフォルトです。

MySQL パフォーマンス ブログさまざまなレプリケーション方法に伴うさまざまな問題について説明します。

つまり、MySQL は 5.1.x シリーズ内で混合モード、ステートメントベース、行ベースのレプリケーションを切り替えようとしているようで、不安を感じます。

現在読んでいる本高性能 MySQL、第 2 版オライリーから出版されたこの本には、レプリケーションに関する素晴らしい章があり、読む価値があります。1時間ほど読むだけで、私の疑問の多くが解決しました。第 8 章 レプリケーション > レプリケーションの内部 - 357 ページ:

どちらの形式もあらゆる状況に最適というわけではないため、MySQL 5.1 ではステートメント ベースのレプリケーションと行ベースのレプリケーションを動的に切り替えます。デフォルトではステートメント ベースのレプリケーションが使用されますが、ステートメントで正しくレプリケートできないイベントが検出されると、行ベースのレプリケーションに切り替わります。binlog_format セッション変数を設定することで、必要に応じて形式を制御することもできます。

関連情報