元に戻すログデータベース トランザクションが開始される前に、変更されるレコードが Undo ログに保存されます。トランザクションがロールバックされるか、データベースがクラッシュすると、Undo ログを使用して、コミットされていないトランザクションがデータベースに与えた影響を元に戻すことができます。 UNDOログの生成と破棄Undo ログはトランザクションの開始前に生成されます。トランザクションがコミットされても、Undo ログはすぐには削除されません。InnoDB はトランザクションに対応する Undo ログを削除リストに入れ、バックグラウンド パージ スレッドによってリサイクルされます。 UNDOログの保存UNDO ログはセグメント単位で管理され、記録されます。 InnoDB データ ファイルにはロールバック セグメントが含まれており、このロールバック セグメントには 1024 個の UNDO ログ セグメントが含まれています。 UNDO ログの保存は、次のパラメータ セットによって制御できます。 '%innodb_undo%' のような変数を表示します。 元に戻すログ機能トランザクションの原子性の実装Undo Log は、トランザクションのアトミック性を実現するために作成された製品です。トランザクション処理中にエラーが発生した場合、またはユーザーが ROLLBACK ステートメントを実行した場合、MySQL は Undo ログ内のバックアップを使用して、トランザクション開始前の状態にデータを復元できます。 マルチバージョン同時実行制御 (MVCC) の実装Undo ログは、MySQL InnoDB ストレージ エンジンでマルチバージョン同時実行制御を実装するために使用されます。トランザクションがコミットされる前に、Undo ログに以前のバージョンのデータが保存されます。Undo ログのデータは、他の同時トランザクションによるスナップショット読み取り用のデータの古いバージョンのスナップショットとして使用できます。
やり直しログトランザクションで変更されたデータを指します。最新のデータ バックアップが保存される場所 (Redo ログ) は、REDO ログと呼ばれます。 REDOログの生成と解放トランザクション操作が実行されると、REDO ログが生成されます。トランザクションがコミットされると、生成された REDO ログはログ バッファーに書き込まれますが、トランザクションがコミットされたときにすぐにディスク ファイルに書き込まれるわけではありません。 Redoログの仕組みRedo Log は、トランザクションの永続性を実現するために作成された製品です。障害発生時にテーブルのibdファイルに書き込まれていないダーティページが存在する状況を防ぐために、MySQLサービスの再起動時にRedoログに基づいてデータを再実行し、ディスクに書き込まれていないトランザクションデータを永続化する機能を実現します。 REDOログ書き込みメカニズムRedo ログ ファイルの内容は、順次ループでファイルに書き込まれます。ファイルがいっぱいになると、最初のファイルに戻って上書きされます。 write pos は現在のレコードの位置です。書き込み中は後方に移動します。最後のファイルの末尾に書き込んだ後、ファイル 0 の先頭に戻ります。 Redoログ関連の設定パラメータ各 InnoDB ストレージ エンジンには少なくとも 1 つの REDO ログ ファイル グループがあり、各ファイル グループには少なくとも 2 つの REDO ログ ファイル (デフォルトは ib_logfile0 と ib_logfile1) があります。以下のパラメータセットを通じてREDOログの保存を制御できます。 '%innodb_log%' のような変数を表示します。 RedoバッファをRedoログに永続化するための戦略は、Innodb_flush_log_at_trx_commitを通じて設定できます。
MySQL がクラッシュしてもデータは失われず、サーバー全体がクラッシュした場合にのみ 1 秒分のトランザクション送信データが失われるため、通常は値 2 を選択することをお勧めします。 以上がMySQL Undo LogとRedo Logの詳細な概要です。MySQL Undo LogとRedo Logの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: DOCTYPE 文書型宣言 (Web ページ愛好家必読)
目次序文Viteプロジェクトを作成する改修プロジェクトディレクトリの規則その他の構成序文毎日鳩、火ば...
負荷分散の概要Nginx の負荷分散実装を紹介する前に、負荷分散の分類について簡単に説明します。負荷...
Docker コンテナは互いに分離されており、相互にアクセスできないことは誰もが知っていますが、依存...
この記事では、例を使用して、MySQL でスケジュールされたタスクを設定する方法について説明します。...
Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...
問題の説明フロントエンドリモート検索やファジークエリと呼ばれる種類のクエリがあります。 Ele.me...
導入コンテンツから始めましょう。誰もが次のような面接のシナリオに遭遇したことがあると思います。インタ...
CentOS 7 では、次のようなコマンドを使用してホスト ポートをコンテナー ポートにマッピングす...
MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...
CSS ウェブページレイアウトを行う場合、XHTML1.0 仕様に準拠する必要があることは誰もが知っ...
MySQLデータベースの基本構文DDL操作データベース作成構文: create database デ...
目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...
vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...
構文: ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY...
序文JS に触れるすべての開発者は、必然的に for ループを扱うことになります。結局のところ、fo...