
私は現在 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 セッション変数を設定することで、必要に応じて形式を制御することもできます。