HOME > 受験対策 > サンプル問題/例題解説 > Silverの例題解説「運用管理」

Silverの例題解説「運用管理」

Yahoo!ブックマークに登録

このページでは例題「運用管理」のアーカイブを試験ごとにまとめています。是非、OSS-DB技術者認定試験の学習にお役立てください。

[運用管理 - インストール方法(テンプレートデータベース)] から
Q. テンプレートデータベースに関する説明として誤っているものを1つ選びなさい。
  1. A. CREATE DATABASEを実行すると、内部的にはテンプレートデータベースの1つがコピーされる。
  2. B. 使用するテンプレートデータベースを指定しなければ、デフォルトではtemplate1が使用される。
  3. C. デフォルトでは、データベースクラスタ内に2つのテンプレートデータベースが存在している。
  4. D. データベースクラスタ内に作成できるテンプレートデータベースの数は最大で5個までである。
  5. E. データベースがテンプレートデータベースかどうかを設定するフラグがあり、そのフラグが設定されているデータベースは削除(DROP DATABASE)できない。

[運用管理 - インストール方法(データベースクラスタの概念と構造)] から
Q. PostgreSQLのデータベースクラスタについて、適切な説明を2つ選びなさい。
  1. A. デフォルトでは、template0とpostgresの2つのデータベースが存在している。
  2. B. デフォルトでは、template0とtemplate1の2つのデータベースが存在している。
  3. C. デフォルトでは、template0とtemplate1とpostgresの3つのデータベースが存在している。
  4. D. データベースtemplate0は削除できない。
  5. E. データベースpostgresは削除できない。

[運用管理 - インストール方法(initdbコマンドの使い方)] から
Q. initdbコマンドに関する説明として適切なものを3つ選びなさい。
  1. A. Linux/Unixではrootユーザで実行する。
  2. B. 指定のディレクトリにデータベースクラスタが存在していたら、初期化されてしまうので、注意して実行する必要がある。
  3. C. データベースのデフォルトの文字セットが指定できる。
  4. D. データベースのデフォルトのロケールが指定できる。
  5. E. データベースのスーパーユーザのパスワードが設定できる。

[運用管理 - 基本的な運用管理作業(テーブル単位の権限、GRANT/REVOKE)] から
Q. GRANTにより付与できる権限として、間違っているものを1つ選びなさい。
  1. A. テーブルの行を検索(SELECT)する権限
  2. B. テーブルの特定の列を更新(UPDATE)する権限
  3. C. テーブルのすべての行を削除(DELETE)する権限
  4. D. テーブルを削除(DROP)する権限
  5. E. テーブルに関する権限を他のユーザに付与(GRANT)する権限

[運用管理 - 基本的な運用管理作業(情報スキーマとシステムカタログ)] から
Q. データベース内のテーブルと列に関する情報を格納するシステムカタログについて、正しい説明を1つ選びなさい。
  1. A. テーブルの情報はpg_tables、列の情報はpg_columnsに格納されている。
  2. B. テーブルの情報はpg_relations、列の情報はpg_relcolumnsに格納されている。
  3. C. テーブルの情報はpg_class、列の情報はpg_attributeに格納されている。
  4. D. テーブルの情報はpg_table_info、列の情報はpg_table_columnsに格納されている。
  5. E. テーブルの情報はpg_rel_info、列の情報はpg_col_infoに格納されている。

[運用管理 - 基本的な運用管理作業(システム情報関数)] から
Q. 現在のセッションを実行中のユーザ名を取得しようとして、psqlのコマンドプロンプトから
SELECT current_user();
を実行したところ、エラーになった。エラーの原因は何か。
  1. A. current_user() ではなく、session_user() を使わなければならない。
  2. B. current_user() ではなく、user() を使わなければならない。
  3. C. 関数に引数を付けて、SELECT current_user(*); としなければならない。
  4. D. カッコを付けずに、SELECT current_user; としなければならない。
  5. E. コマンド自体には問題がないので、サーバに異常が発生していると考えられる。

[運用管理 - 基本的な運用管理作業(自動バキュームの概念と動作)] から
Q. 自動バキュームの説明として適切なものを2つ選びなさい。
  1. A. 一定時間ごとに自動的にバキュームが実行される。
  2. B. システムの負荷が低い時に自動的にバキュームが実行される。
  3. C. 大量のデータの挿入・更新・削除があったテーブルに対して、自動的にバキュームが実行される。
  4. D. トランザクションIDの周回問題を回避するために、自動的にバキュームが実行される。
  5. E. バキュームが実行されるタイミングが予測できないため、デフォルトでは実行されないようになっている。

[運用管理 - 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)] から
Q. ANALYZEについて述べたものとして、適切なものを2つ選びなさい。
  1. A. テーブルがアクセスされる頻度、更新される頻度といった統計情報を取得する。
  2. B. デフォルトではテーブル全体を解析するため、巨大なテーブルのANALYZEには時間がかかる。
  3. C. 実行時のパラメータにより、データベース全体、データベース内の特定のテーブルのみ、特定のテーブルの特定の列のみ、などANALYZEの対象を制御できる。
  4. D. 実行時のパラメータにより、統計情報の取得の目標値を変更できるので、これにより、統計情報の正確さやANALYZEに要する時間を制御できる。
  5. E. 自動バキュームの実行時に自動的に実行される。

[運用管理 - 基本的な運用管理作業(データベースユーザの追加・削除・変更方法)] から
Q. データベースを作成する権限のあるユーザfooを追加する方法として適切なものを2つ選びなさい。なお、以下の選択肢で、$はOSのコマンドプロンプト、=>はpsqlのコマンドプロンプトであり、コマンドを実行しているユーザには必要な権限が与えられているものとする。
  1. A. $ createuser -c foo
  2. B. $ createuser -d foo
  3. C. $ createuser -D foo
  4. D. => create user foo with db;
  5. E. => create user foo createdb;

[運用管理 - バックアップ方法(COPY文(SQL)、\copyコマンド(psql)の使い方)] から
Q. テーブルfooの内容をカンマ区切りで標準出力に出力するSQLコマンドとして適切なものを2つ選びなさい。なお、特殊文字などの処理については考えなくてよいものとする。
  1. A. copy from foo to stdout (format csv);
  2. B. copy foo to stdout (delimiter ',');
  3. C. copy stdout from foo format='csv';
  4. D. copy foo to stdout (format csv);
  5. E. copy from foo to stdout (delimiter='csv');

[運用管理 - バックアップ方法(ポイントインタイムリカバリ(PITR)の概念と手順)] から
Q. ポイントインタイムリカバリの手順として、間違っているものを1つ選びなさい。
  1. A. WALファイルがアーカイブされるようにpostgresql.confを設定する。
  2. B. pg_dumpコマンドを使用して、ベースバックアップを取得する。
  3. C. サーバの復旧のため、ベースバックアップをリストアする。
  4. D. アーカイブしたWALファイルを適用できるようにrecovery.confを設定して、サーバを再起動する。
  5. E. サーバが復旧したらrecovery.confのファイル名をrecovery.doneなどに変更する。

[運用管理 - バックアップ方法(ファイルシステムレベルのバックアップとリストア)] から
Q. データベースを構成するファイルシステムを物理的にコピーすることでバックアップを作成したい。
最も適切な記述を1つ選びなさい。
  1. A. データベースファイルは上位互換性があるので、PostgreSQL 9.1の環境でコピーしたファイルをPostgreSQL 9.2の環境にリストアして使用できる。
  2. B. 例えば、testというテーブルを構成する物理ファイルの名前が10001だったとすると、このファイルを別のデータベース環境にコピーすれば、同じテーブルを使用できる。
  3. C. pg_dumpで取得する論理バックアップに比べると、ファイルシステムのコピーによるバックアップは一般的に高速である。
  4. D. pg_dumpで取得する論理バックアップに比べると、ファイルシステムのコピーによるバックアップは一般的にサイズが小さくなる。
  5. E. バックアップの取得時、データベースは稼働中のままで良い。

[運用管理 - バックアップ方法(各種バックアップコマンドの使い方)] から
Q. 次のコマンドについて正しい説明を2つ選びなさい。

pg_dump -s -U abc -f def ghi

  1. A. スーパーユーザーabcでデータベースに接続する。
  2. B. データベース内のデータはダンプされない。
  3. C. ダンプは標準出力に出力される。
  4. D. テーブルdefがダンプされる。
  5. E. データベースghiに接続する。

[運用管理 - 設定ファイル(pg_hba.conf)] から
Q. ホストdbserver(192.168.1.11)で稼働しているデータベースに、クライアントdbclient(192.168.1.12)上のユーザtest1がpsqlを使って接続する。pg_hba.confの内容が次の通りであるとして、以下の記述から適切なものを2つ選びなさい。

local all all peer
host test all 192.168.1.12/32 trust
host all all 192.168.1.0/24 md5

  1. A. test1というデータベースにtest1というユーザで接続するときは、パスワードなしで認証される。
  2. B. testというデータベースにtest1というユーザで接続するときは、パスワードなしで認証される。
  3. C. test1というデータベースにtestというユーザで接続するときは、パスワードで認証する。
  4. D. testというデータベースにtestというユーザで接続するときは、パスワードで認証する。
  5. E. test2というデータベースにtest1というユーザで接続するときは、接続を拒絶される。

[運用管理 - 設定ファイル(postgresql.conf)] から
Q. postgresql.confについて、適切な記述を1つ選びなさい。
  1. A. ファイルを修正した後、多くのパラメータはpg_ctl reloadの実行により、その修正が反映されるが、一部のパラメータは、ファイルの修正により、即座に有効となる。
  2. B. セミコロン(;)で区切ることにより、1行に複数のパラメータを設定できる。
  3. C. 行末をバックスラッシュ(\)にすると継続行となり、複数行にまたがってパラメータを設定できる。
  4. D. 行頭に#を置いてその行をコメント行とすることも、行の途中に#を置いて、それより右側の記述をコメントとすることも可能である。
  5. E. ALTER SYSTEMの実行により、内容が書き換えられる。

[運用管理 - 標準付属ツールの使い方] から
Q. createuserコマンドの説明として、誤っているものを2つ選びなさい。
  1. A. データベースの新規作成権限をオプションで指定しなかった場合の動作について、PostgreSQL9.2で動作が変更され、デフォルトで新規作成の権限が付与されないようになった。
  2. B. データベースの管理者ユーザで実行しなければならない。
  3. C. createuserコマンドを実行するマシン以外のサーバにあるデータベースにユーザを作成できる。
  4. D. データベースのユーザだけでなく、OSのユーザも新規に作成できる。
  5. E. psqlでデータベースに接続し、CREATE ROLEコマンドを使っても、同じことが実現可能である。

[運用管理 - インストール方法(データベースクラスタの概念と構造) ] から
Q. PostgreSQLのデータベースクラスタについて、適切な記述を1つ選びなさい。
  1. A. 高可用性のために、複数のサーバにまたがってデータベースを複製する仕組みである。
  2. B. インストール直後は、template0、template1、postgresの3つのデータベースが含まれる。
  3. C. 1台のサーバにはデータベースクラスタを1つだけ作成することができる。
  4. D. データベースクラスタ内の各データベースごとに、異なるバージョンのPostgreSQLサーバを利用できる。

[運用管理 - インストール方法(テンプレートデータベース)] から
Q. テンプレートデータベースの説明として適切なものを2つ選びなさい。
  1. A. テンプレートデータベースtemplate0内には通常のデータベースと同様にテーブルを追加できる。
  2. B. テンプレートデータベースtemplate1内には通常のデータベースと同様にテーブルを追加できる。
  3. C. CREATE DATABASEでデータベースを新規に作成するとき、オプションで指定しなければ、template0がテンプレートデータベースとして使用される。
  4. D. 新規にテンプレートデータベースtemplate2を作成するためには、CREATE DATABASEコマンドの実行時にTEMPLATEオプションを付加する。
  5. E. デフォルトでは、テンプレートデータベースtemplate0には誰も接続できない。

[運用管理 - インストール方法(initdbコマンドの使い方)] から
Q. Linux上でinitdbコマンドでデータベースクラスタを作成する際の注意事項として、適切なものを2つ選びなさい。
  1. A. initdbは管理者ユーザで実行する必要があるので、rootユーザで実行する。
  2. B. データベースクラスタのディレクトリは、新規のディレクトリか、既存の空のディレクトリか、のいずれかを指定する。
  3. C. データベースクラスタのディレクトリに既存のファイルがあると、削除されてしまう。
  4. D. データベースクラスタのディレクトリは、initdbのコマンドライン引数、あるいは環境変数PGDATAを使って指定する。
  5. E. initdbで指定する文字セットは、クラスタ内のすべてのデータベースで共通となる。

[運用管理 - 基本的な運用管理作業(テーブル単位の権限、GRANT/REVOKE)] から
Q. テーブルtestを作成した後、次の操作を行った。

GRANT SELECT ON test TO PUBLIC;
GRANT UPDATE ON test TO foo;
REVOKE SELECT ON test FROM foo;

ユーザfooがテーブルtestに関して操作する権限について適切なものを1つ選びなさい。

  1. A. テーブルtestを更新できるが、参照することはできない。
  2. B. テーブルtestを参照することも更新することもできない。
  3. C. テーブルtestを参照することはできるが、更新することはできない。
  4. D. テーブルtestを参照することも更新することもできる。

[運用管理 - 基本的な運用管理作業(情報スキーマとシステムカタログ)] から
Q. 情報スキーマについて最も適切な記述を2つ選びなさい。
  1. A. PostgreSQL以外も含め、すべてのリレーショナル・データベースで利用できる。
  2. B. 標準SQLで仕様が定められている。
  3. C. データベース内のオブジェクトに関する様々な情報を保持している。
  4. D. informationという名前のスキーマ内のビューとして定義される。
  5. E. 内容はシステムカタログと同等である。

[運用管理 - 基本的な運用管理作業(システム情報関数)] から
Q. current_user関数についての説明で、適切なものを2つ選びなさい。
  1. A. SELECT current_user; を実行すると、現在、データベースに接続中のユーザ名の一覧が表示される。
  2. B. SELECT current_user; を実行すると、このSELECT文を実行したユーザのユーザ名が表示される。
  3. C. SELECT current_user('bob'); を実行すると、セッションを実行中のユーザを変更できる。
  4. D. セッションを実行中のユーザを変更するために、UPDATE current_user = 'bob'; のように使うことができる。
  5. E. 引数を付けずに実行する場合、SELECT current_user();のように、カッコを付けるとエラーになる。

[運用管理 - 基本的な運用管理作業(自動バキュームの概念と動作)] から
Q. 自動バキュームについて適切な記述を2つ選びなさい。
  1. A. 自動バキュームは定期的に起動され、データベース内のすべてのテーブルについてバキューム処理を実行する。
  2. B. 自動バキュームを実行しなくても データベースを運用することは可能だが、実行することが強く推奨されている。
  3. C. 自動バキュームを実行する設定の場合、手作業のバキューム処理は実行しない方が良い。
  4. D. 自動バキュームはデータベースの負荷が比較的小さい時にのみ起動する。
  5. E. 自動バキュームはバキューム(VACUUM)だけでなく、ANALYZE処理も自動的に実行する。

[運用管理 - 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方)] から
Q. ANALYZEに関する記述として適切なものを2つ選びなさい。
  1. A. テーブルの全データを解析するので、テーブルが大きいと時間が掛かる。
  2. B. テーブルの排他ロックを取得するため、実行中はデータへのアクセスができなくなる。
  3. C. ANALYZEコマンドあるいはVACUUMコマンドにより実行する。
  4. D. 一般的に、各テーブルについて1度だけ実行すれば十分である。
  5. E. オプション指定により、対象を、データベース内の全テーブル、あるいは、データベース内の特定のテーブルのみ、特定のテーブルの特定の列のみ、などに制限できる。

[運用管理 - 基本的な運用管理作業(ユーザの追加・削除・変更)] から
Q. ALTER USER文で変更できないものは次のうちのどれか。1つ選びなさい。
  1. A. ユーザがスーパーユーザ権限を保有するかどうか
  2. B. ユーザが新規にユーザを作成する権限を保有するかどうか
  3. C. ユーザが新規にテーブルを作成する権限を保有するかどうか
  4. D. ユーザの名前
  5. E. ユーザのパスワード

[運用管理 - バックアップ方法] から
Q. SQLのCOPY文について、最も適切な記述を2つ選びなさい。
  1. A. 標準SQLで定義されており、PostgreSQLをはじめとして、多くのRDBMSで利用できる。
  2. B. psqlの\copyメタコマンドは、内部的にSQLのCOPY文を実行する。
  3. C. COPY文を実行するには、データベースの管理者権限が必ず必要となる。
  4. D. デフォルトではCSV(カンマ区切り)形式のファイルを入出力する。
  5. E. pg_dumpコマンドで作成したテキスト形式のバックアップからリストアするとき、デフォルトではCOPY文が利用される。

[運用管理 - バックアップ方法] から
Q. ポイントインタイムリカバリ(PITR)で使用するベースバックアップの取得方法について、適切なものを2つ選びなさい。
  1. A. pg_dumpallコマンドを実行する。
  2. B. pg_basebackupコマンドを実行する。
  3. C. pg_ctl stop でデータベースを停止してから、tarコマンドでデータベースクラスタの物理コピーを作成する。
  4. D. psql で管理者ユーザとしてデータベースに接続し、select pg_start_backup('label');
    を実行した後で、tarコマンドでデータベースクラスタの物理コピーを作る。
  5. E. psql で管理者ユーザとしてデータベースに接続し、select pg_create_backup('backup_file'); を実行する。

[運用管理 - バックアップ方法] から
Q. データベースを構成するファイルを物理的にコピーすることでバックアップを作成したい。

以下の説明から、最も適切なものを2つ選びなさい。

  1. A. ファイルのコピーにはtarなどのOSコマンドを用いる。
  2. B. ファイルのコピーにはPostgreSQLのpg_backupコマンドを用いる。
  3. C. ファイルのコピーをするとき、データベースは停止しなければならない。
  4. D. データベースクラスタのあるディレクトリの下のファイルだけコピーすれば良い。
  5. E. 一般的に、pg_dumpによる論理バックアップに比べ、ファイルコピーによるバックアップはサイズが小さくなる。

[運用管理 - バックアップ方法] から
Q. pg_dumpを使ったバックアップについて、適切な説明を2つ選びなさい。
  1. A. pg_dumpの実行にはデータベースのスーパーユーザー権限が必要である。
  2. B. テーブルのデータだけでなく、CREATE USERやCREATE ROLEで作成したユーザやロールのデータもバックアップできる。
  3. C. テーブルのデータだけでなく、GRANTやREVOKEで付与・剥奪したテーブルへのアクセス権限もバックアップできる。
  4. D. データはダンプせず、CREATE TABLEなどのテーブル定義だけをバックアップすることができる。
  5. E. バイナリ形式でバックアップを作成した場合、データのリストア先は同じアーキテクチャのサーバに制限される。

[運用管理 - 設定ファイル] から
Q. pg_hba.confファイルを利用した認証設定について適切な記述を2つ選びなさい。
  1. A. セキュリティ上の理由により、指定した認証方法の種類に関わらず、パスワードの入力は必須である。
  2. B. パスワードをデータベース本体に格納する代わりに、LDAPなど外部のサーバを利用することができる。
  3. C. データベースに接続するには、pg_hba.confにユーザ名が登録されている必要がある。
  4. D. 接続元のネットワークやホストに応じて異なる認証方法を指定することができる。
  5. E. 認証方法が指定されていない時は、デフォルトでパスワード認証となる。

[運用管理 - 設定ファイル] から
Q. postgresql.confで設定する以下のパラメータのうち、変更を反映させるためにサーバの再起動が必要となるものを2つ選びなさい。
  1. A. port
  2. B. max_connections
  3. C. log_connections
  4. D. log_line_prefix
  5. E. search_path

[運用管理 - 標準付属ツールの使い方] から
Q. PostgreSQLのユーザやロールの作成をOSのコマンドラインから実行する場合について、適切な記述を2つ選びなさい。
  1. A. ユーザの作成にはcreateuser、ロールの作成にはcreateroleコマンドを使う。
  2. B. createuserコマンドを実行するには、CREATEUSER権限が必要である。
  3. C. -d オプション付きで実行すると、新しいユーザにデータベース作成の権限が付与される。
  4. D. -u オプション付きで実行すると、新しいユーザにユーザ作成の権限が付与される。
  5. E. -s オプション付きで実行すると、新しいユーザにスーパユーザ権限が付与される。

[運用管理 - インストール方法] から
Q. データベースクラスタの新規作成について、正しい記述をすべて選びなさい。
  1. A. psqlコマンドから、CREATE CLUSTER文を実行することで作成できる。
  2. B. OSのコマンドプロンプトからinitdbコマンドを実行することで作成できる。
  3. C. OSのコマンドプロンプトからpg_ctl initdbコマンドを実行することで作成できる。
  4. D. セキュリティ上の理由から、作成されるファイルはコマンドを実行したユーザ以外には読み取り許可がない。
  5. E. セキュリティ上の理由から、OSの管理者ユーザ(Linuxならroot)が作成すべきである。

[運用管理 - 基本的な運用管理作業(テーブル単位の権限)] から
Q. テーブルのアクセス権について最も適切な説明を1つ選びなさい。
  1. A. CREATE TABLEで作成された直後のテーブルにアクセス権があるのは、テーブルの所有者、つまりCREATE TABLEを実行したユーザだけである。
  2. B. テーブルのアクセス権をユーザに付与するにはALTER TABLE文を使う。
  3. C. テーブルのアクセス権をユーザに付与できるのはテーブルの所有者だけである。
  4. D. テーブルの所有者は、そのテーブルに基づくビューを作成する権限を各ユーザに付与、あるいは剥奪することができる。
  5. E. テーブルの所有者であるにも関わらず、そのテーブルへのアクセス権がなく、SELECTできない、ということもあり得る。

[運用管理 - 基本的な運用管理作業] から
Q. VACUUMコマンドについて、最も適切な記述を1つ選びなさい。
  1. A. 対象のテーブルのテーブルロックを取得し、テーブル内の不要領域を回収する。
  2. B. VACUUM AUTO ON を実行することで、自動バキュームが実行できるようになる。
  3. C. VACUUM DETAILS を実行することで、VACUUMの実行状況の詳細が出力される。
  4. D. VACUUM ANALYZE を実行すると、テーブルの統計情報が取得される。
  5. E. VACUUM FULL を実行すると、データベース内の全テーブルがVACUUMの対象となる。

[運用管理 - 基本的な運用管理作業] から
Q. PostgreSQLにおけるデータベースユーザの作成・削除・変更について、正しい説明を2つ選びなさい。
  1. A. CREATE USERでユーザを作成すると、そのユーザ名に対応したスキーマが自動的に作成される。
  2. B. CREATE USERを実行するには、CREATEROLE権限、あるいはそれと同等以上の適切な権限が必要である。
  3. C. DROP USERでユーザを削除すると、そのユーザが所有していたオブジェクトも同時に削除される。
  4. D. DROP USERを実行するには、DROPROLE権限、あるいはそれと同等以上の適切な権限が必要である。
  5. E. ALTER USERでユーザの名前を変更することができる。

[運用管理 - バックアップ方法] から
Q. pg_basebackupコマンドによるバックアップについて述べたものから、適切なものを2つ選びなさい。
  1. A. リストアするにはpg_restoreコマンドを利用する。
  2. B. バックアップ作成前にデータベースを停止する。
  3. C. ポイントインタイムリカバリ(PITR)用のベースバックアップとして利用できる。
  4. D. レプリケーション用のベースバックアップとして利用できる。
  5. E. データベース単位でのバックアップを取得できる。

[運用管理 - 設定ファイル] から
Q. pg_hba.conf ファイルに関する説明の中から、誤っているものを2つ選びなさい。
  1. A. データベースクラスタ内のデータベースごとに、アクセスを許可あるいは拒否するユーザを指定できる。
  2. B. データベース内のテーブルごとに、アクセスを許可あるいは拒否するユーザを指定できる。
  3. C. データベースにアクセスできるホストをホスト名またはIPアドレスで指定できる。
  4. D. 接続を許可する設定と拒否する設定の両方がある場合は、接続が許可される。
  5. E. 接続を許可する設定と拒否する設定のどちらもない場合は、接続が拒否される。

[運用管理 - 標準付属ツールの使い方] から
Q. pg_ctlの使い方について述べたものから、誤っているものを2つ選びなさい。
  1. A. pg_ctl initdb とすることで、データベースクラスタを新しく作成できる
  2. B. pg_ctl start とすることで、データベースサーバを起動できる
  3. C. pg_ctl shutdown とすることで、データベースサーバを停止できる
  4. D. pg_ctl reset とすることで、データベースサーバを再起動できる
  5. E. pg_ctl status とすることで、データベースサーバの稼働状態が確認できる

[運用管理 - インストール方法] から
Q. PostgreSQLのインストールについて述べたものから、最も適切なものを2つ選びなさい。
  1. A. PostgreSQLをインストールするためには、その前にCコンパイラをインストールする必要がある。
  2. B. PostgreSQLのインストールパッケージは、プラットフォームにより様々な種類があるが、いずれもPostgreSQLの開発コミュニティが作成している。
  3. C. PostgreSQLのパッケージは同じプラットフォーム(例えばLinux)でも複数の種類があり、パッケージによってインストール方法が大きく異なる。
  4. D. PostgreSQLをインストールするにはOSの管理者権限が必要なので、PostgreSQLの管理者ユーザはOSの管理者ユーザでなければならない。
  5. E. 1台のマシンに複数のバージョンのPostgreSQL(例えばバージョン9.1.4とバージョン9.2.3)をインストールして、両方を同時に稼働させることが可能である。

[運用管理 - 基本的な運用管理作業] から
Q. データベースに関する権限の付与をするGRANT文の使い方として、誤っているものを1つ選びなさい。

なお、以下の選択肢で、user1、user2は既存のユーザ名、table1は既存のテーブル名、column1はtable1内の列名、schema1は既存のスキーマ名である。

  1. A. GRANT SELECT ON table1 TO user1;
  2. B. GRANT UPDATE (column1) ON table1 TO user1;
  3. C. GRANT CREATE ON SCHEMA schema1 TO user1;
  4. D. GRANT user2 TO user1;
  5. E. GRANT CREATEROLE TO user1;

[運用管理 - 基本的な運用管理作業] から
Q. ANALYZEについて適切な記述を2つ選びなさい。
  1. A. データベース全体を ANALYZE するには、OSのコマンドラインから pg_analyze コマンドを実行する。
  2. B. テーブル foo について ANALYZE するには、データベースに接続して以下のコマンドを実行する。
    ALTER TABLE foo ANALYZE;
  3. C. OSのコマンドラインから vacuumdb コマンドを実行することでデータベース全体をANALYZEすることができる。
  4. D. ANALYZEはテーブル内にどのようなデータが入っているかを調べる。
  5. E. ANALYZEはテーブルが何回SELECTされ、何回UPDATEされたか、といったアクセス頻度の情報を調べる。

[運用管理 - バックアップ方法] から
Q. PostgreSQLのバックアップ方法に関する以下の記述から、適切なものを2つ選びなさい。
  1. A. pg_dumpall コマンドは、その内部から pg_dump コマンドを実行する。
  2. B. pg_basebackup コマンドは、その内部から pg_dump コマンドを実行する。
  3. C. pg_dump コマンドで作成したバックアップはポイントインタイムリカバリ(PITR)のためのベースバックアップとして利用できる。
  4. D. ストリーミングレプリケーションを設定するときは、まず pg_dumpall コマンドでデータベースクラスタ全体のバックアップを取得する。
  5. E. pg_dump コマンドで作成したバックアップは、オプションによっては出力ファイルが複数になる。

[運用管理 - バックアップ方法] から
Q. pg_dumpコマンドによるデータベースのバックアップについて、誤っているものを1つ選びなさい。
  1. A. データベースクラスタ内の1つのデータベースのバックアップを取得できるが、データベースクラスタ全体のバックアップは取得できない。
  2. B. テーブルの定義だけ、テーブル内のデータだけ、テーブル定義とデータの両方、などバックアップの内容をオプションで指定できる。
  3. C. バックアップファイルのフォーマットはテキスト形式とバイナリ形式があり、バイナリ形式にもTAR形式や圧縮アーカイブ形式など複数種類がある。
  4. D. テキスト形式のバックアップファイルには、CREATE TABLE、GRANT、COPYといったSQL文が記述されている。
  5. E. pg_dumpで作成したバックアップファイルからリストアするには、ファイル形式に関わらずpg_restoreコマンドを使う。

[運用管理 - 基本的な運用管理作業] から
Q. バキューム(VACUUM)機能について正しい説明を1つ選びなさい。
  1. A. VACUUMではデータファイルのサイズが小さくならないので、ディスク容量を節約するためにもデータファイルが小さくなるVACUUM FULLを定期的に実行することが推奨されている。
  2. B. 自動バキュームとは、cronなどOSのジョブスケジューリング機能を使って定期的にVACUUMを自動実行することを指す。
  3. C. 自動バキュームとは、システムの負荷が小さい時に自動的にVACUUMを実行する機能のことである。
  4. D. 自動バキュームは便利な機能ではあるが、システム運用上、可能であればそれを使わずに、手動でVACUUMを実行することが推奨されている。
  5. E. バキュームを手動で実行するためには、OSのコマンドラインからvacuumdbコマンドを実行するか、あるいはデータベースに接続してVACUUMコマンドを実行する。

[運用管理 - 基本的な運用管理作業] から
Q. ユーザ foo が以下の操作を行った。

CREATE TABLE aaa (id INTEGER, val TEXT);
GRANT SELECT ON aaa TO public;
GRANT UPDATE,INSERT ON aaa TO user1;
REVOKE SELECT ON aaa FROM user2;

このとき、以下の記述から誤っているものを2つ選びなさい。
なお、user1, user2は既存の一般ユーザであり、ユーザ foo の作成するテーブルについてのデフォルトアクセス権限は、デフォルトのまま変更されていないものとする。

  1. A. ユーザ foo はテーブル aaa に対して DELETE 文を実行できる。
  2. B. ユーザ user1 はテーブル aaa に対して UPDATE 文を実行できる。
  3. C. ユーザ user1 はテーブル aaa に対して DELETE 文を実行できる。
  4. D. ユーザ user2 はテーブル aaa に対して SELECT 文を実行できる。
  5. E. ユーザ user2 はテーブル aaa に対して UPDATE 文を実行できる。

[運用管理 - 設定ファイル] から
Q. SETコマンドで実行する設定の変更について、正しい記述を2つ選びなさい。
  1. A. postgresql.conf で設定するすべてのパラメータについて、SETコマンドで値を変更できる。
  2. B. SETコマンドでパラメータの値を変更した時、それがすぐに有効になるものと、pg_ctl reload などの追加処理をしなければ有効にならないものとがある。
  3. C. SETコマンドでパラメータの値を変更しても、psql のセッションを終了すると、値はすべて元に戻る。
  4. D. SET LOCAL parameter=value; のようにLOCALオプションを指定した場合、その後でCOMMITを実行すると、パラメータの値は元に戻る。
  5. E. SETコマンドによるパラメータ値の変更はシステムに重大な影響があるため、データベースのスーパーユーザだけが実行できる。

[運用管理 - バックアップ方法] から
Q. ポイントインタイムリカバリ(PITR)のベースバックアップの取得方法について正しいものを1つ選びなさい。
  1. A. pg_dump コマンドを実行する
  2. B. pg_dumpall コマンドを実行する
  3. C. psql でデータベースに接続し、COPY コマンドを実行する
  4. D. データベースを停止して、データベースクラスタ全体を tar コマンドなど OS 付属のコマンドを使ってコピーする
  5. E. データベースを停止せずに、データベースクラスタ全体を tar コマンドなど OS 付属のコマンドを使ってコピーする

[運用管理 - インストール方法] から
Q. テンプレートデータベースについて、誤った記述を2つ選びなさい。
  1. A. template0 に CREATE TABLE などでオブジェクトを追加作成することはできない
  2. B. template1 に CREATE TABLE などでオブジェクトを追加作成することはできない
  3. C. template0 を DROP DATABASE で削除することはできない
  4. D. template1 を DROP DATABASE で削除することはできない
  5. E. データベース postgres をテンプレートデータベースとして利用して新しいデータベースを作成することができる

[運用管理 - 標準付属ツールの使い方] から
Q. データベースの終了方法について適切なものを2つ選びなさい。
  1. A. コマンドラインから pg_ctl shutdown を実行することによりデータベースを終了できる
  2. B. コマンドラインから pg_ctl stop を実行することによりデータベースを終了できる
  3. C. psql でデータベースに接続し、\shutdown メタコマンドを実行することにより、データベースを終了できる
  4. D. 終了時に特にオプションで指定しなければ、データベースに接続中のクライアントは自動的に切断され、実行中のトランザクションはロールバックされる
  5. E. データベースの終了は、データベースの管理者ユーザ(多くの環境ではpostgres)のみが実行可能で、OSの管理者ユーザ(Linuxのroot)の権限では実行できない

[運用管理 - 設定ファイル] から
Q. PostgreSQLの設定の変更について、適切な記述を1つ選びなさい。
  1. A. クライアント側の文字セットをUTF8に変更するとき、SQL文として
        SET client_encoding=utf8;
    を実行しても、あるいは psql のメタコマンドを使って
        \set client_encoding=utf8
    を実行しても、効果はほとんど同じである。
  2. B. SET LOCAL ではそれを実行したクライアントの設定だけが変更されるが、 LOCAL キーワードを使わないSETでは、サーバに接続中のすべてのクライアントの設定が変更される。
  3. C. SET で変更した内容をリセットするには UNSET を使う。
  4. D. SET で変更した内容を確認するには SHOW を使う。
  5. E. SET で変更した内容を反映させるには、
        pg_ctl reload
    あるいは
        pg_ctl restart
    を実行する必要がある。

[運用管理 - バックアップ方法] から
Q. PostgreSQL のバックアップについての記述から、適切なものを2つ選びなさい。
  1. A. PostgreSQL 9.0 の環境で pg_dump コマンドでバックアップを取得し、これを PostgreSQL 9.1 の環境でリストアした。
  2. B. PostgreSQL 8.4 の環境で pg_dumpall コマンドでバックアップを取得し、これを PostgreSQL 9.0 の環境でリストアした。
  3. C. pg_dumpall コマンドでデータベースクラスタ全体のバックアップを取得するために、データベースのサーバプロセスを停止させた。
  4. D. ディレクトリコピー(データベースクラスタのディレクトリを tar コマンドなどでコピー)によって、PostgreSQL 9.0 の環境のバックアップを取得し、これを PostgreSQL 9.1 の環境でリストアした。
  5. E. ポイントインタイムリカバリ(PITR)の機能を使って取得した PostgreSQL 8.4 のベースバックアップとアーカイブログを PostgreSQL 9.0 の環境でリカバリした。

[運用管理 - 設定ファイル] から
Q. postgresql.conf ファイルの設定方法について、最も適切なものを2つ選びなさい。
  1. A. 論理値型のパラメータは true あるいは false と小文字で設定しなければならない
  2. B. メモリを設定するパラメータでは kB, MB, GB の単位が指定できる
  3. C. 時間を設定するパラメータは、すべて秒単位で指定する
  4. D. 行頭が # の行はコメント行である
  5. E. パラメータの設定は
      param1 = val1;
    のようにセミコロンで終了し、セミコロンがなければ次行に継続する

[運用管理 - インストール方法] から
Q. テンプレートデータベースに関する記述から、誤っているものを1つ選びなさい。
  1. A. initdb コマンドを実行した直後のデータベースクラスタには、 template0, template1 という2つのテンプレートデータベースがある。
  2. B. createdb コマンドを実行すると、デフォルトでは template1 のコピーが作られる。
  3. C. テンプレートデータベースを新たにデータベースクラスタに追加すると、その名前は自動的に template2, template3 というように template と数字の組み合わせになる。
  4. D. initdb コマンドを実行した直後の postgres データベースの内容は、テンプレートデータベース template1 と同じである。
  5. E. テンプレートデータベース template0 は更新してはならない。

[運用管理 - 設定ファイル - エラー報告とログ取得] から
Q. postgresql.conf で設定するパラメータについて、正しい説明を2つ選びなさい。
  1. A. log_destination には、ログ出力先となるファイル名を指定する。
  2. B. logging_collector を on にすることで、標準エラー出力に送られたログメッセージをログファイルにリダイレクトできる。
  3. C. log_connections を on にすることで、クライアントからサーバへの接続試行がログに出力される。
  4. D. log_statement を on にすることで、SQL 文をログに記録できる。
  5. E. log_line_prefix を on にすることで、ログ情報の出力時刻、ユーザ名、プロセスIDなど様々な付加情報がログファイルに出力される。

[運用管理 - 基本的な運用管理作業] から
Q. 管理者ユーザで以下の一連の SQL 文を実行した。
その結果の説明として適切なものをすべて選択せよ。

CREATE USER foo;
CREATE USER bar;
GRANT SELECT ON table1 TO foo;
ALTER TABLE table2 OWNER TO foo;
GRANT foo TO bar;

  1. A. ユーザ foo はテーブル table1 から SELECT することができる
  2. B. ユーザ foo はテーブル table1 を UPDATE することができる
  3. C. 最後の GRANT 文は構文エラーとなる
  4. D. ユーザ bar はテーブル table1 から SELECT することができる
  5. E. ユーザ bar はテーブル table2 から SELECT することができる

[運用管理 - 基本的な運用管理作業 - システムカタログ] から
Q. 以下の SELECT 文についての説明として、誤っているものを1つ選択せよ。
SELECT * FROM pg_tables WHERE tablename = 'emp';
  1. A. emp というテーブルの所有者など、オブジェクトに関する情報を表示する
  2. B. pg_tables には管理者ユーザしかアクセスできないので、一般ユーザは利用できない
  3. C. pg_tables は PostgreSQL の独自拡張機能なので、他の RDBMS では利用できない
  4. D. emp というビューがあっても、それに関する情報は表示しない
  5. E. pg_tables の実体は、データベース内に作られたビューである

[運用管理 - 基本的な運用管理作業 - 情報スキーマ] から
Q. 情報スキーマに関する以下の SELECT 文についての説明として、最も適切なものを2つ選択せよ。
SELECT * FROM information_schema.tables WHERE table_name = 'emp';
  1. A. emp というテーブルが所属するスキーマ名など、オブジェクトに関する情報を表示する
  2. B. information_schema.tables には管理者ユーザしかアクセスできないので、一般ユーザは利用できない
  3. C. information_schema.tables は PostgreSQL の独自拡張機能なので、他の RDBMS では利用できない
  4. D. emp というビューがあっても、それに関する情報は表示しない
  5. E. information_schema.tables の実体は、データベース内に作られたビューである

[運用管理 - 標準付属ツールの使い方] から
Q. データベースクラスタ内のデータベースの一覧を調べたい。
適切な方法をすべて選びなさい。
なお、$ は OS のコマンドプロンプト、=> は psql のプロンプトである。
  1. A. $ psql --list
  2. B. $ pg_lsdb
  3. C. => SELECT datname FROM pg_database;
  4. D. => SELECT database_name FROM information_schema.databases;
  5. E. => \list

[運用管理 - 設定ファイル] から
Q. PostgreSQLサーバはIPアドレス 192.168.1.10 のサーバで動作しており、 pg_hba.conf の内容が以下である。

local all all ident
host all all 127.0.0.1/32 ident
host foo bar 192.168.1.0/24 md5
host all bar 192.168.1.0/24 reject
host foo all 192.168.1.0/24 trust

IPアドレスが 192.168.1.11 のクライアントからこのデータベースに接続するときの記述について、選択肢の中から正しいものをすべて選びなさい。

  1. A. ユーザ foo がデータベース bar にアクセスするときはパスワードを入力する必要がある
  2. B. ユーザ bar がデータベース foo にアクセスするときはパスワードを入力する必要がある
  3. C. ユーザ foo はデータベース foo にはアクセスできない
  4. D. ユーザ bar はデータベース bar にはアクセスできない
  5. E. ユーザ hoge はデータベース foo にパスワードなしでアクセスできる

[運用管理 - 基本的な運用管理作業] から
Q. ユーザ foo にデータベース新規作成の権限を与えるために実行する SQL として正しいものを選びなさい。
  1. A. GRANT foo CREATEDB;
  2. B. ALTER foo GRANT CREATEDB;
  3. C. ALTER foo CREATEDB;
  4. D. ALTER USER foo GRANT CREATEDB;
  5. E. ALTER USER foo CREATEDB;

[運用管理 - 基本的な運用管理作業] から
Q. バキューム(VACUUM)機能に関する説明について、正しいものを2つ選びなさい。
  1. A. バキュームを実行するには、コマンドラインから vacuumdb コマンドを実行する
  2. B. 自動バキュームを実行するには、コマンドラインから autovacuumdb コマンドを実行する
  3. C. バキュームにより削除領域が回収されると、通常はデータベースファイルのサイズが小さくなる
  4. D. psql でデータベースに接続して VACUUM 文を実行する際、テーブル単位あるいはデータベース単位でバキュームを実行することができる
  5. E. 自動バキュームでは、指定した時間おきに、すべてのテーブルに対してバキュームを実行する

[運用管理 - 標準付属ツールの使い方 - pg_ctl] から
Q. データベースに接続中のユーザがいるが、強制的にデータベースを停止したい。
これを実現できる方法を2つ選びなさい。
なお、$ は OS のコマンドプロンプトである。
  1. A. $ pg_ctl stop
  2. B. $ pg_ctl stop -m abort
  3. C. $ pg_ctl stop -m immediate
  4. D. $ pg_ctl stop -m fast
  5. E. $ pg_ctl stop -m smart

[運用管理 - 設定ファイル] から
Q. データベースの管理者ユーザ postgres のパスワードを忘れてしまったため、postgres ユーザでデータベースに接続できなくなった。
postgres ユーザのパスワードを再設定したいがどうしたら良いか。
  1. A. そのような手段はないので、データベースを新規に作成するしかない。
  2. B. データベースの実行ファイルを再インストールすれば、パスワードはデフォルト値に戻る。
  3. C. OS の管理者ユーザ(root)であれば、パスワードなしに postgres として接続できるので、接続後にパスワードを再設定すれば良い。
  4. D. postgresql.conf の先頭に
    no_password = 1
    という設定を追加すれば、パスワードなしに postgres として接続できるので、接続後にパスワードを再設定すれば良い。
  5. E. pg_hba.conf の先頭に
    local all postgres ident
    という設定を追加すれば、パスワードなしに postgres として接続できるので、接続後にパスワードを再設定すれば良い。

[運用管理 - 標準付属ツールの使い方] から
Q. createdb コマンドについて適切なものを1つ選びなさい。
  1. A. PostgreSQL に接続できるユーザであれば、誰でも実行できる。
  2. B. デフォルトでは template0 のコピーが新しいデータベースとして作成される。
  3. C. データベースサーバープロセスが起動していなくても実行できる。
  4. D. psql などでデータベースに接続し、CREATE DATABASE 文を実行することで同じ結果を得ることができる。
  5. E. 作成されるデータベースの所有者は、デフォルトではデータベースクラスタの管理者である。

[運用管理 - バックアップ方法] から
Q. PostgreSQL で CSV 形式のファイルを入出力するための方法について、適切な記述を2つ選びなさい。
  1. SELECT 文の INTO 句で出力先ファイルを指定することにより、テーブルの内容を CSV 形式で出力することができる。
  2. psql でデータベースに接続し、\copy メタコマンドを使うことにより、テーブルの内容を CSV 形式で出力することができる。
  3. LOAD DATA 文により、CSV ファイルを読み込んで、PostgreSQL のテーブルに データをアップロードすることができる。
  4. COPY 文により、CSV ファイルを読み込んで、PostgreSQL のテーブルにデータをアップロードすることができる。
  5. pg_loader という、CSV ファイルを読み込むための専用のコマンドがある。

[運用管理 - インストール方法] から
Q. initdb コマンドに関する説明として適切なものを2つ選びなさい。
  1. initdb の実行前に環境変数 PGDATA を設定しておく必要がある。
  2. initdb を実行したユーザが、データベース管理者となる。
  3. initdb は OS の管理者権限を持つユーザで実行する必要がある。
  4. initdb を実行すると、2つのテンプレートデータベースと、postgres という名前のデータベースが作成される。
  5. initdb を実行するとデータベースサーバプロセスが自動的に起動される。

[運用管理 - バックアップ方法] から
Q. PostgreSQL のバックアップ方法について適切なものを2つ選びなさい。
  1. pg_dumpall コマンドで作成したバックアップファイルは、pg_restore コマンドでリストアできる。
  2. pg_dump コマンドで作成したバックアップをリストアするときに使うコマンドは、バックアップ作成時のオプションによって異なる。
  3. pg_dumpall コマンドでバックアップを作成する前に、データベースサーバを停止する必要がある。
  4. pg_dump コマンドでバックアップを作成する際は、データベースサーバを停止する必要はない。
  5. ポイントインタイムリカバリ(PITR)で使用するバックアップを作成するには、データベースサーバを停止する必要がある。

[運用管理 - 標準付属ツールの使い方] から
Q. psql でデータベースに接続している。テーブル foo の列名および列属性の一覧を表示するための適切な方法はどれか。
  1. desc foo;
  2. \d foo
  3. \! foo
  4. show columns from foo;
  5. select * from pg_tables where tablename = 'foo';

[運用管理 - バックアップ方法] から
Q. データベースのバックアップに関する説明で、適切でないものを2つ選びなさい。
  1. データベース稼働中に取得するバックアップをホットバックアップ、データベース停止中に取得するバックアップをコールドバックアップという。
  2. 取得したコールドバックアップを、同じ構成の別のマシンにコピーして、データベースを稼動させることができる。
  3. ポイントインタイムリカバリ(PITR)の機能を使うときは、ホットバックアップを取得する。
  4. pg_dump コマンドでバックアップを取得するときは、データベースを停止させる必要がある。
  5. コールドバックアップを取得するには、pg_backup という専用のコマンドを使用する必要がある。

[運用管理 - 標準付属ツールの使い方] から
Q. 新しいデータベースクラスタを作成するコマンドを1つ選びなさい。
  1. createcluster
  2. initdb
  3. pg_ctl newcluster
  4. clusterdb
  5. createdb

[運用管理 - バックアップ方法] から
Q. データベースlpijapanのバックアップをテキスト形式でbackup.sqlに取得したい。適切なコマンドを2つ選びなさい。ただし、postgresはデータベースの管理者ユーザである。
  1. pg_dump -U postgres lpijapan > backup.sql
  2. pg_dump -U postgres -f backup.sql lpijapan
  3. pg_dump -U postgres -Ft lpijapan > backup.sql
  4. psql -U postgres lpijapan > backup.sql
  5. psql -U postgres --dump lpijapan > backup.sql

[運用管理 - 基本的な運用管理作業] から
Q. SQL文の実行を高速化するための統計情報を取得するSQLコマンドとして最も適切なものを1つ選びなさい。
  1. CREATE INDEX
  2. VACUUM
  3. ANALYZE
  4. GET STATISTICS
  5. OPTIMIZE

ページトップへ