MySQL 8.0 リファレンスマニュアル


17.5.1.17 JSON ドキュメントのレプリケーション

MySQL 8.0 より前は、JSON カラムへの更新は常に完全なドキュメントとしてバイナリログに書き込まれていました。 MySQL 8.0 では、JSON ドキュメントへの部分的な更新をログに記録できます (JSON 値の部分更新 を参照)。これはより効率的です。 ロギングの動作は、次に説明するように、使用する形式によって異なります:

ステートメントベースのレプリケーション.  JSON 部分更新は、常に部分更新として記録されます。 ステートメントベースのロギングを使用している場合は、これを無効にできません。

行ベースのレプリケーション.  JSON 部分更新は、デフォルトではログに記録されませんが、完全なドキュメントとして記録されます。 部分更新のロギングを有効にするには、binlog_row_value_options=PARTIAL_JSON を設定します。 レプリケーションソースにこの変数が設定されている場合、そのソースから受信された部分更新は、その変数のレプリカ自体の設定に関係なく、レプリカによって処理および適用されます。

MySQL 8.0.2 以前を実行しているサーバーは、JSON 部分更新に使用されるログイベントを認識しません。 このため、MySQL 8.0.3 以降を実行しているサーバーからこのようなサーバーにレプリケートする場合は、この変数を'' (空の文字列) に設定して、ソースで binlog_row_value_options を無効にする必要があります。 詳細は、この変数の説明を参照してください。


関連キーワード:  ソース, ベース, 変数, バイナリ, 設定, ステートメント, GTID, 更新, ログ, トランザクション