今回は、Silverの「運用管理 - バックアップ方法」からの出題です。
pg_dumpall コマンドは、その内部から pg_dump コマンドを実行する。
pg_basebackup コマンドは、その内部から pg_dump コマンドを実行する。
pg_dump コマンドで作成したバックアップはポイントインタイムリカバリ(PITR)のためのベースバックアップとして利用できる。
ストリーミングレプリケーションを設定するときは、まず pg_dumpall コマンドでデータベースクラスタ全体のバックアップを取得する。
pg_dump コマンドで作成したバックアップは、オプションによっては出力ファイルが複数になる。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2013年7月8日
PostgreSQLでデータベースのバックアップを取得する方法は、目的によって複数あります。
pg_dumpおよびpg_dumpallはデータベースの論理的な、つまりSQL形式のバックアップを取得するコマンドです。pg_dumpはデータベースクラスタ内の特定の1つのデータベースだけバックアップしますが、pg_dumpallはデータベースクラスタ全体のバックアップを取得します。pg_dumpallは内部的には、個々のデータベースについてpg_dumpコマンドを実行しています。
pg_dumpにはいろいろな出力フォーマットがあり、-Fオプションで指定できます。デフォルトのpオプションではテキスト形式、tオプションではTAR形式、cオプションでは圧縮されたアーカイブ形式になります。これら3つのオプションでは1つのデータベースについて1つの出力ファイルが作られますが、PostgreSQL 9.1で追加されたdオプションでは、テーブルごとに1つずつの圧縮されたファイルを作ります。
ポイントインタイムリカバリもストリーミングレプリケーションも、開始にあたりデータベースクラスタ全体のバックアップを作る必要がありますが、このときは、pg_dumpによる論理的バックアップではなく、データベースのファイルの物理的なコピーを取得します。
pg_basebackupはPostgreSQL 9.1で追加されたコマンドです。これは、データベースクラスタの配下のディレクトリにあるファイルの物理的なコピーを作成するもので、PITRやストリーミングレプリケーションのためのベースバックアップとして使うことができます。物理的なコピーを作りますから、内部からpg_dumpを実行することはありません。
従って、正解はAとEです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.