バックアップ方法(トランザクションログ(WAL)とWALアーカイブ)」からの出題です。例題1.103WALの説明として間違っているものを1つ選びなさい。WALはデータベースに対して行われた変更をすべて記録するもので、データファイルの更新が行われた直後に、その変更内容がWALに書き出される。データベースサーバをimmediateオプションで停止させるなど、正常な終了処理がされなかった場合、再起動時にWALファイルを参照することでデータファイルの復旧が行われる。バージョン10以降ではデータベースクラスタのpg_walディレクトリの下に作られる。ポイントインタイムリカバリ(PITR)では、archive_commandパラメータを適切に設定することで、生成されたWALファイルをデータベースクラスタの外のディレクトリにコピーして保存する必要がある。PITRでは、wal_levelパラメータを適切に設定し、詳細な情報がWALファイルに書き出されるようにする必要がある。※この例題は実際のOSS-DB技術者認定試験とは異なります。解答と解説PostgreSQLをはじめ多くのデータベースでは、データの変更時にデータファイルをいきなり更新するのではなく、まず追記型のログファイルに変更内容を書き出し、その後の適当な時点でデータファイルを更新する、という手順をとっています。この場合、ログファイルへの書き出しが完了した時点で、クライアントには更新完了のステータスが返されます。Log(WAL)と呼んでいます。データファイルが更新されるより前に何らかの原因でデータベースが異常終了した場合、データベースの再起動時に、WALに書き出された変更のうち、どこまでがデータファイルに反映されているかを調べ、未反映の部分についてデータファイルを更新する処理(リカバリ)が行われます。10からはpg_walというディレクトリの下に出力するようになりました。ポイントインタイムリカバリ(PITR)は、ある時点のバックアップ(ベースバックアップ)に、それ以降に発生したWALの内容をすべて適用することで、データベースの内容を最新(あるいは指定した特定の時点)の状態に復旧(リカバリ)する手段ですが、データベースクラスタ内に保存できるWALのサイズは有限なので、それを別の場所にコピーして保存する必要があります。この処理のことをWALアーカイブと呼びますが、そのためにはarchive_commandというパラメータにファイルをコピーするためのコマンドあるいはスクリプトを設定します。wal_levelをreplicaまたはそれ以上の値に設定し、リカバリに必要な情報が出力されるようにする必要があります。デフォルトはreplicaなので変更しなくても大丈夫ですが、minimalに設定されていると、クラッシュリカバリのみが可能で、PITRは実行できなくなります。間違っているものを選ぶ問題なので、正解はAです。WALの更新はデータファイルの更新よりも前に行われます。今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。ご質問・ご意見はこちら※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。アーカイブを試験ごとにまとめています。ご紹介OSS-DB認定教材や教育機関について詳しくご説明いたします。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。