今回は、Silverの「S2 運用管理 - S2.4 バックアップ方法」からの出題です。
pg_dumpall コマンドで作成したバックアップファイルは、pg_restore コマンドでリストアできる。
pg_dump コマンドで作成したバックアップをリストアするときに使うコマンドは、バックアップ作成時のオプションによって異なる。
pg_dumpall コマンドでバックアップを作成する前に、データベースサーバを停止する必要がある。
pg_dump コマンドでバックアップを作成する際は、データベースサーバを停止する必要はない。
ポイントインタイムリカバリ(PITR)で使用するバックアップを作成するには、データベースサーバを停止する必要がある。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2011年9月28日
正解はBとDです。
PostgreSQLでデータベースのバックアップを作成するためのコマンドとして、pg_dump と pg_dumpall があります。両者の主な違いとしては、pg_dump がデータベースクラスタ内の1つのデータベースのみのバックアップを作成するのに対し、pg_dumpall はクラスタ内のすべてのデータベースのバックアップを作成すること、pg_dumpは出力フォーマットとして、テキスト(p)、TAR形式(t)、ディレクトリ形式(d)、カスタム形式(c)の4種類が選択できるのに対し、pg_dumpallはテキスト形式でしか出力できないこと、があります。
取得したバックアップをリストアするには、テキスト形式のバックアップは psql コマンド、バイナリ形式(TARまたはカスタム)のバックアップは pg_restore コマンドを使います。
従って、Aは不正解、Bは正解です。
pg_dump, pg_dumpall いずれも共有メモリ上の、ディスクにはまだ書き出されていないデータも含めてバックアップファイルに出力することができますので、バックアップの実行にあたり、データベースサーバを停止する必要はありません。
PITRでは、ディスク上のデータファイルおよびログファイルのバックアップをcp, tar, cpio といったOSのコマンドを使って取得します。
OSコマンドでファイルのコピーをするので、直感的にはデータベースサーバを止める必要がありそうですが、その代わりに、バックアップの取得前に、pg_start_backup()、取得完了後に pg_stop_backup() というコマンドをデータベースに対して発行することで、整合性を保てるようにしています。
従って、Dは正解、CとEは不正解です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.