Centos 6でMySQL 5.7を実行しています。バイナリログを有効にしましたが、構成ファイルにバイナリログの最大サイズのカスタム値を指定していません。デフォルトでは、パラメータmax_binlog_size = 1073741824は1GBに相当します。つまり、バイナリログのサイズが1GBに達すると、新しいファイルを作成する必要があります。
サーバーで、すべてのバイナリログファイルのサイズが異なり、200GB、165GB、4GBなどのコントラストが多いことがわかりました。
バイナリログファイルの最大サイズが1GBの場合、なぜこれが発生するのですか?構成ファイルでデフォルトの最大サイズでさえ明示的に言及する必要がありますか?
バイナリログが非常に巨大である理由は簡単です。1回のトランザクションでコミットするデータが多すぎます!!!これはなぜですか? max_binlog_size のMySQLドキュメントによると:
トランザクションは1つのチャンクでバイナリログに書き込まれるため、複数のバイナリログに分割されることはありません。 そのため、大きなトランザクションがある場合、バイナリログファイルが max_binlog_sizeより大きい場合があります。
より小さなチャンクでデータをコミットしてみてください。