本文へスキップ

WALログとは?

わるろぐ

WALログとは、データベースの変更内容をディスクに記録しておく先行書き込みログのことで、障害時のデータ復旧やレプリケーションに欠かせない仕組みです。

WALログ(Write-Ahead Log)とは、データベース管理システム(DBMS)において、実際のデータを変更する前に「どのような変更を行うか」をログファイルに先に書き込んでおく技術です。「先行書き込みログ」や「先書きログ」とも呼ばれます。

WALの核心は「ログを先に書く」という原則にあります。データを更新する際、まずその操作内容をログとして記録してからデータ本体を変更します。こうすることで、処理の途中でシステムが落ちても、ログを読み直してデータを正しい状態に復旧(ロールフォワード・ロールバック)できます。

WALログが担う主な役割は次のとおりです。

  • クラッシュリカバリ:電源断などの障害後に、ログを使って未完了トランザクションを取り消し、完了済みのものを再適用します。
  • レプリケーション:PostgreSQLのストリーミングレプリケーションなどでは、WALログをスタンバイサーバーに転送し、データを同期します。
  • ポイントインタイムリカバリ(PITR):特定時刻のバックアップ+WALで、任意の時点にデータを戻せます。

WALを採用するDBMSとしてはPostgreSQLやSQLiteが有名で、MySQLのInnoDBにおける「redo log」も同等の概念です。WALによってI/Oを効率化しつつ高い耐障害性を実現できるため、本番データベースには不可欠な基盤技術となっています。

使い方・例文

PostgreSQLではpg_walディレクトリにWALファイルが格納されており、障害後の自動復旧やスタンバイへのレプリケーション配信に利用されます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語