web-dev-qa-db-ja.com

MySQL:ステートメントベースのbinlog形式がInnodb READUNCOMMITTEDまたはREADCOMMITTED分離レベルで機能しないのはなぜですか?

MySQLでは ドキュメント それは書かれています:

InnoDBテーブルを使用していて、トランザクション分離レベルがREADCOMMITTEDまたはREADUNCOMMITTEDの場合、使用できるのは行ベースのロギングのみです。

ステートメントベースのログ形式がREADCOMMITTEDまたはREADUNCOMMITTEDで機能しないのはなぜですか?

2
Benny Bauer

スレーブが複数のスレッドのステートメントを同じ順序で実行する可能性は低いため、これらの分離モードのセマンティクスはSBRでは保証できません。

より具体的には、変更ログから:

----- 2008-11-145.1.30一般提供-修正されたバグ--------

ステートメントベースのバイナリロギング形式とトランザクション分離レベル READ COMMITTED 以上の場合、ステートメントベースのロギングはマスターデータベースとスレーブデータベース間の不整合につながる可能性があるため、InnoDBはエラーを出力しました。ただし、このエラーは、バイナリロギングが有効になっていない場合でも出力されました(この場合、このような不整合は発生しません)。 バグ#4036

1
Rick James