PREPARATION
受験対策

Silverの例題解説
「S2.4 バックアップ方法(各種バックアップコマンドの使い方)」

今回は、Silverの「S2 運用管理 - S2.4 バックアップ方法(各種バックアップコマンドの使い方)」からの出題です。

例題

2.120

pg_dumpコマンドで取得するバックアップの説明として、間違っているものを1つ選びなさい。

  1. データベースのユーザやロールのバックアップを作ることはできない。
  2. -a オプションを指定することで、テーブル定義などを含めず、データだけのバックアップを出力することができる。
  3. -s オプションを指定することで、データを含めず、テーブル定義などだけのバックアップを出力することができる。

  4. 出力フォーマットを指定する -F オプションで、p を指定するとテキスト形式、c、d あるいは t を指定するとバイナリ形式のバックアップを出力する。

  5. バイナリ形式のうち、c は物理バックアップ、その他の形式は論理バックアップを出力する。

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

解答と解説

PostgreSQLのデータベースクラスタは、テーブルやデータを格納する独立した複数のデータベースと、ユーザ、ロールやテーブルスペースなど各データベースに共通の情報を格納するグローバルオブジェクトから構成されますが、pg_dump は個々のデータベースのバックアップを取得するコマンドで、ユーザやロールなどグローバルオブジェクトのデータのバックアップを取得することはできません。グローバルオブジェクトをバックアップするにはpg_dumpallコマンドを使います。

pg_dump には様々なオプションがあり、目的や用途に応じて適切な形式でバックアップを取得できます。

デフォルトではテーブル定義とデータの両方を出力するので、そのバックアップをリストアすることで他のデータベースに同じテーブル・データを再現できます。-s オプションを指定するとテーブル定義のみを出力するので、それをリストアすると、データの入っていない空のテーブルが作成されます。例えば、開発環境から本番環境にテーブル定義のみを移行したいときなどに有効でしょう。-a オプションでは、逆にデータのみのバックアップを出力します。リストア先にテーブルが作成済みのときに、データだけ移行する目的で利用できます。
出力ファイルの形式は -F オプションで指定します。p(デフォルト)はplainの意味で、テキスト形式です。実際に pg_dump を実行して、出力されたファイルをテキストエディタで見てみましょう。テーブル定義の CREATE TABLE や、テーブルにデータを入れる COPY など、SQL文が並んだ形式になっています。これをリストアするには psql コマンドを利用します。

p の他には、c、d、t を指定できますが、これらはいずれもバイナリ形式のファイルを出力し、リストアするには pg_restore コマンドを使用します。バイナリ形式と言っても、tar や gzip で圧縮されたものなので、解凍すればどのような形式になっているか確認できるので試してみましょう。これらも実態としてはテーブルやデータを定義するSQLの集まりなので、いずれも論理バックアップです。データベースの物理バックアップを取得するには、データベースクラスタを構成するディレクトリに対して、OSのコマンドを使ってコピーなどの処理を行います。

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

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

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

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

OSS-DBの受験対策

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

例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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