PREPARATION
受験対策

Silverの例題解説
「S2.4 バックアップ方法(トランザクションログ(WAL)とWALアーカイブ)」

今回は、Silverの「S2 運用管理 - S2.4 バックアップ方法(トランザクションログ(WAL)とWALアーカイブ)」からの出題です。

例題

2.103

WALの説明として間違っているものを1つ選びなさい。

  1. WALはデータベースに対して行われた変更をすべて記録するもので、データファイルの更新が行われた直後に、その変更内容がWALに書き出される。
  2. データベースサーバをimmediateオプションで停止させるなど、正常な終了処理がされなかった場合、再起動時にWALファイルを参照することでデータファイルの復旧が行われる。
  3. WALファイルはPostgreSQL バージョン9.6まではデータベースクラスタのpg_xlogディレクトリの下に作られていたが、PostgreSQL バージョン10以降ではデータベースクラスタのpg_walディレクトリの下に作られる。

  4. ポイントインタイムリカバリ(PITR)では、archive_commandパラメータを適切に設定することで、生成されたWALファイルをデータベースクラスタの外のディレクトリにコピーして保存する必要がある。

  5. PITRでは、wal_levelパラメータを適切に設定し、詳細な情報がWALファイルに書き出されるようにする必要がある。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2020年4月8日

解答と解説

PostgreSQLをはじめ多くのデータベースでは、データの変更時にデータファイルをいきなり更新するのではなく、まず追記型のログファイルに変更内容を書き出し、その後の適当な時点でデータファイルを更新する、という手順をとっています。この場合、ログファイルへの書き出しが完了した時点で、クライアントには更新完了のステータスが返されます。 このログファイルのことを、一般的にはトランザクションログ、などと呼ぶことが多いですが、PostgreSQLではデータファイルの更新に先立って(ahead)、書き出す(write)という意味で、Write Ahead Log(WAL)と呼んでいます。

データファイルが更新されるより前に何らかの原因でデータベースが異常終了した場合、データベースの再起動時に、WALに書き出された変更のうち、どこまでがデータファイルに反映されているかを調べ、未反映の部分についてデータファイルを更新する処理(リカバリ)が行われます。 WALファイルは、トランザクションのログ、という意味でPostgreSQL 9.6まではpg_xlogというディレクトリの下に出力されていましたが、PostgreSQL 10からはpg_walというディレクトリの下に出力するようになりました。

ポイントインタイムリカバリ(PITR)は、ある時点のバックアップ(ベースバックアップ)に、それ以降に発生したWALの内容をすべて適用することで、データベースの内容を最新(あるいは指定した特定の時点)の状態に復旧(リカバリ)する手段ですが、データベースクラスタ内に保存できるWALのサイズは有限なので、それを別の場所にコピーして保存する必要があります。この処理のことをWALアーカイブと呼びますが、そのためにはarchive_commandというパラメータにファイルをコピーするためのコマンドあるいはスクリプトを設定します。また、wal_levelをreplicaまたはそれ以上の値に設定し、リカバリに必要な情報が出力されるようにする必要があります。デフォルトはreplicaなので変更しなくても大丈夫ですが、minimalに設定されていると、クラッシュリカバリのみが可能で、PITRは実行できなくなります。

間違っているものを選ぶ問題なので、正解はAです。

WALの更新はデータファイルの更新よりも前に行われます。

例題解説についてのご質問やご意見は以下からご連絡ください。

※本例題および解説は、例題作成者から提供されたものです。実際の試験問題とは異なります。
※実際の試験問題に関するお問い合わせについてはご回答いたしかねます。あからじめご了承ください。

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

OSS-DBの受験対策

受験の学習をサポートする情報や対策に役立つ情報をご紹介

例題解説

例題のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関ご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

OSS-DBやPostgreSQLの知識、技術を得るために役立つ情報の紹介やコラムを公開しています。