REDOログ(REDOログ)、ロールバックログ(ログを元に戻す)、およびバイナリログ(binlogの)簡単な要約でMySQLの...

MySQLのログファイルには6つがありますされていますロールバックログ(ログを元に戻す)、バイナリログ(ビンログ)、エラーログ(エラーログ)、スロークエリログ(スロークエリログ)、一般的なお問い合わせ、(REDOログ)REDOログログ(一般的なログ)、リレーログ(リレーログ)。
密接バイナリログに関連するログとロールバックログやトランザクション操作をやり直しどちらもトランザクション操作と一定の関係を持って、MySQLではトランザクション操作を理解するための3つのログには重要な意味を持っています。

ここでは簡単にこれらの3件のログが一定の関連性を持ってまとめます。

(REDOログ)ログをやり直し

  • 役割:
    時間内に故障箇所を防止するための、あるダーティページは
    、(トランザクションがコミットした後、データがディスクに書き込まれる前に、ダウンしている)ディスクに書き込まれていない場合、再起動のMySQLサービス、業務を達成するように、REDOログ・やり直しに従ってこの機能を永続的。
  • 内容:
    物理フォーマットのログ・レコードの情報は、物理的なファイルのためにREDOログ・ファイルのログをやり直すために書き込まれたデータの物理ページを修正することです。
  • 世代機会:
    生成するトランザクションのみ提出を書かれていないとして、ディスクをオフにREDOログが、トランザクションの実行中に、REDOログ・ファイルの書き込みを始め、トランザクションの開始後にREDOログ。
  • リリース時期:
    対応するトランザクションのダーティページがディスクに書き込まれると、ミッションが終了するREDOログ、占有スペースは(カバー)再利用することができREDOログ。
バッファInnodb_log_buffer

そこREDOログ・バッファInnodb_log_buffer、Innodb_log_bufferのデフォルトのサイズは8M、InnoDBストレージエンジンが最初Innodb_log_bufferを書くREDOログであり、その後、InnoDBのログログバッファになりますと、3つの方法のいずれかでディスクにフラッシュです。

  1. マスタースレッドには、REDOログ・ファイルをするために第2のリフレッシュInnodb_log_buffer一回実行します
  2. 各トランザクションは、提出時に更新されます。
  3. REDOログ・バッファは半分以下の利用可能なスペースである場合には、キャッシュは、REDOログ・ファイルにフラッシュされREDOログ。

そのため、提出されたトランザクションのみがREDOログ・ファイルに書き込まれていない必然で、ディスクの書き込みREDOログが、トランザクションの開始と、徐々に始まりました。

ロールバックログ(ログを元に戻します)

  • 役割:
    データはロールバックするために使用することができます前に、トランザクションのバージョンを保存しますが発生します。
  • 内容:
    ログの論理フォーマット、実装でアンドゥ、むしろ操作する物理ページから実装し、これはREDOログと異なっているよりも、トランザクション前の状態を回復するための論理からのデータのみ。
  • 世代機会:
    トランザクションの開始は、現在のバージョンはログを元に戻すに生成される前に、REDOはまた、アンドゥログの信頼性を確保する必要があります元に戻します。
  • リリース時期:
    トランザクションがコミットされると、ログを元に戻すと、すぐに削除することはできませんが、リストをクリーンアップするために置かれるためには、パージスレッドは、他の情報のバージョンが、かどうかを決定UNDOセグメント内のテーブル上のトランザクションの前にトランザクションを使用しているかどうかを決定しますあなたは、アンドゥログログ・スペースをきれいにすることができます。

バイナリログ(ビンログ)

  • 役割:
    1. マスターからの複製、複製のためには、マスター・スレーブの同期を達成するために、マスターライブラリを使用してライブラリから再生BINLOG。
    2. データベースに基づいて時刻を減らします。
  • 内容:
    ログの論理フォーマットは、あなたは、単にそれがSQL文で実行トランザクションであると考えることができます。
  • 世代機会:
    トランザクションは、1回のトランザクションのSQL文をコミット(ものは、複数のSQL文に対応していてもよい)、特定のフォーマットに従ってバイナリログに記録されています。
    ここでは、トランザクションがディスクにフラッシュ提出されたとき、差分のREDOログのREDOログが徐々にトランザクションの開始後に開始した、ログがディスクに書き込まれるやり直す必要はないことは明らかです。
  • リリース時期:
    binlogのデフォルトのホールドタイムは数日expire_logs_daysは、時間の経過とともに発生するように構成された後、それは、ログファイルのアクティブで、パラメータのexpire_logs_daysで構成され、自動的に削除されます。

二相通じMySQLはトランザクション、それがやり直しbinlogの一貫性を記録して、理論的には、2件のログが正常に(ディスクにブラシを)提出され、バイナリログを書き、REDOログ書くことで、トランザクションの一貫性を完了するために、プロセスをコミット本当に完全な。

ます。https://www.jianshu.com/p/59c20fdd58baで再現

おすすめ

転載: blog.csdn.net/weixin_34279579/article/details/91268722