今回は、Silverの「運用管理 - バックアップ方法(各種バックアップコマンドの使い方)」からの出題です。
pg_dumpはデータベースクラスタ内の特定のデータベースのみのバックアップを取得するのに対し、pg_dumpallはデータベースクラスタ内の全データベースのバックアップを取得する。
pg_dumpではオプションにより出力フォーマットをテキスト形式あるいはバイナリ形式にする指定ができるが、pg_dumpallの出力はテキスト形式のみである。ファイルシステムのレイアウトを正確に理解すれば、テーブル単位でバックアップとリストアを実行できる。
データベースユーザの情報をバックアップできるのはpg_dumpallだけである。
どちらのコマンドも、データベースサーバプロセスが起動している状態でなければ実行できない。
どちらのコマンドも、実行するにはデータベースのスーパーユーザー権限が必要である。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2018年2月13日
pg_dumpはデータベースクラスタ内の特定のデータベースのバックアップを取得するコマンドです。デフォルトではテキスト(スクリプト)形式の出力ファイルが作られますが、オプションによりバイナリ形式の出力にすることもできます。
pg_dumpallはデータベースクラスタ全体のバックアップを取得するコマンドですが、そのためにデータベースクラスタ内の各データベースに対して、内部的にpg_dumpコマンドを実行します。出力ファイルはテキスト形式のみで、バイナリ形式のバックアップを作ることはできません。
PostgreSQLではユーザやロールは全データベース共通の情報であり、各データベース内ではなくグローバルオブジェクトとして管理されていますが、このデータはpg_dumpallでしか出力されません。
pg_dumpやpg_dumpallはバックアップを作成するため、内部的にSELECT文を実行します。このため、データベースのサーバプロセスが起動していなければ実行できません。この性質上、ユーザにアクセス権限のないデータはバックアップに出力できませんが、コマンドの実行にスーパーユーザー権限が必要なわけではなく、一般ユーザでも実行可能です。ただし、完全なバックアップの取得にはスーパーユーザーで実行する必要があることが多いでしょう。
間違っているものを選ぶ問題なので、正解はEです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.