バックアップ方法(トランザクションログ(WAL)とWALアーカイブ)」からの出題です。例題1.123WALアーカイブの説明として最も適切なものを3つ選びなさい。ポイントインタイムリカバリ(PITR)を使用するには、WALアーカイブを有効にする必要がある。複数のWALファイルを1つのファイルにまとめる機能である。指定したコマンドが実行される。コマンドの実行に失敗しても再実行されないことに注意する必要がある。PostgreSQLはコマンドを実行したかどうかは管理するが、コマンドが実際に何をしているのか、WALアーカイブとして適切な処理をしているかどうかは関知しない。※この例題は実際のOSS-DB技術者認定試験とは異なります。解答と解説WALはWrite-Ahead-Logの略で、データベースファイルの更新に先立ち、トランザクションの情報をログファイルに書き出すものです。COMMIT処理は、WALへの書き込みをもってクライアントには完了が通知され、時間がかかるデータベースファイル本体の更新は非同期に実行するようになっています。データベース更新の情報はすべてWALに書き込まれるので、データベースファイルに障害が発生したような場合でも、ある時点のデータベースのバックアップと、それ以降に生成されたすべてのWALファイルがあれば、データベースを最新の状態に復元することができます。この仕組みを利用するのがポイントインタイムリカバリ(PITR)です。WALを放置しておくとサイズがどんどん大きくなって、すぐにディスク容量がなくなってしまいます。これを避けるため、デフォルトでは古いWALファイルをリサイクルして、WALがディスクを圧迫しないようになっていますが、そのためポイントインタイムリカバリなどもデフォルトでは利用できません。すべてのWALファイルを保管するための機能がWALアーカイブです。WALアーカイブを利用するには、設定パラメータwal_levelをreplica以上、wal_archiveをonにした上で、WALをアーカイブするためのコマンドをarchive_commandに設定します。通常は、データベースが置かれるのとは別のディスクにWALをコピーするコマンド(シェルスクリプトなど)を設定しますが、このコマンドは成功したら0を、失敗したら非ゼロを返すようにする必要があります。PostgreSQLはarchive_commandが成功したかどうかを管理し、失敗した場合には再実行します。アーカイブに成功したら、そのWALはリサイクルされます。PostgreSQLはarchive_commandが実際に何をしているのかについて関知しません。ファイルをコピーするコマンドが成功を返したかどうかは管理しますが、本当にコピーされたかどうか、そもそもarchive_commandがコピー処理をしているかどうか、などは管理者の設定に任されますので、十分にテストをした上で設定する必要があります。「アーカイブ」は名詞としては「書庫」、動詞としては「書庫などに保管する」という意味なので、WALアーカイブはその動詞の意味で理解すれば良いのですが、Linuxのarコマンドやtarコマンドなど、複数のファイルを1つのファイル(書庫)にまとめるコマンドでもアーカイブという用語が使われるので、誤解しないように注意してください。従って正解はA、C、Eです。今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。ご質問・ご意見はこちら※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。アーカイブを試験ごとにまとめています。ご紹介OSS-DB認定教材や教育機関について詳しくご説明いたします。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。