web-dev-qa-db-ja.com

マスターとスレーブ間のbinlog形式の混合

私はかなり簡単ですマスター->スレーブ MySQL 5.6/Innodbでのレプリケーション設定。

マスターとスレーブの両方がMIXEDbinlog形式でセットアップされています。

ここで、スレーブがマスターとして機能して、hadoopスタックにさらにフィードするためにbinlogを取得するJava binlogコネクタをプラグインする必要があります。これを機能させるために、log-slave-updates変数

そのJavaコネクタは、行ベースのバイナリログでより適切に機能します。

だから私の質問は:

  • ROWのスレーブのbinlog形式を安全に変更できますか?
  • マスターでMIXEDフォーマットを維持しますか?

MySQLのドキュメントでこれに関する詳細を見つけることができませんでした。

1
CherryTree

それはマニュアルにあるかもしれません:

各MySQLサーバーは、独自のバイナリロギングフォーマットのみを設定できます(binlog_formatがグローバルスコープとセッションスコープのどちらで設定されている場合でもtrue)。つまり、レプリケーションマスターでログ形式を変更しても、スレーブはログ形式を変更して一致させることはありません。 (STATEMENTモードを使用する場合、binlog_formatシステム変数は複製されません。MIXEDまたはROWロギングモードを使用する場合、複製されますが、スレーブによって無視されます。)

- http://dev.mysql.com/doc/refman/5.6/en/binary-log-setting.html

それはあなたの質問に「はい」です。

ROWが5.7のデフォルトであることに注意してください。つまり、ROWは、レプリケーションを行うための「正しい」方法であることが証明されています。ガレラクラスタリングは、ROWなしでは機能しません。

2
Rick James