PREPARATION
受験対策

Silverの例題解説 - S2 運用管理(Ver.3.0)

このページではメルマガで紹介した例題のアーカイブを試験のレベルごとにまとめています。
是非、OSS-DBの学習にお役立てください。

修正等により、例題番号が連番ではない場合がございます。あらかじめご了承ください。

S2.4 バックアップ方法(各種バックアップコマンドの使い方)

2.120 NEW

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

  1. データベースのユーザやロールのバックアップを作ることはできない。
  2. -a オプションを指定することで、テーブル定義などを含めず、データだけのバックアップを出力することができる。
  3. -s オプションを指定することで、データを含めず、テーブル定義などだけのバックアップを出力することができる。
  4. 出力フォーマットを指定する -F オプションで、p を指定するとテキスト形式、c、d あるいは t を指定するとバイナリ形式のバックアップを出力する。
  5. バイナリ形式のうち、c は物理バックアップ、その他の形式は論理バックアップを出力する。

S2.3 設定ファイル(pg_hba.conf)

2.119

pg_hba.confが以下の内容の時、接続時にパスワードを要求するのはどの場合か。すべて答えなさい。なお、マシンcl1のIPアドレスは192.168.1.10、マシンcl2のIPアドレスは192.168.1.11である。

host db1 u1 192.168.1.10/32 trust
host db2 u2 192.168.1.11/32 md5
host db1 all 192.168.1.0/24 md5
host db2 all 192.168.1.0/24 trust

  1. マシンcl1からユーザu1でデータベースdb1に接続するとき
  2. マシンcl1からユーザu1でデータベースdb2に接続するとき
  3. マシンcl1からユーザu2でデータベースdb1に接続するとき
  4. マシンcl2からユーザu2でデータベースdb1に接続するとき
  5. マシンcl2からユーザu2でデータベースdb2に接続するとき
  6. マシンcl2からユーザu1でデータベースdb2に接続するとき

S2.3 設定ファイル(postgresql.conf)

2.118

IPアドレス192.168.1.11のホストで稼働するPostgreSQLサーバで、IPアドレス192.168.1.51のクライアントからの接続を受け付けたい。
postgresql.confに記述する行として適切なものを2つ選びなさい。

  1. listen_addresses = ''
  2. listen_addresses = '*'
  3. listen_addresses = 'localhost'
  4. listen_addresses = '192.168.1.11'
  5. listen_addresses = '192.168.1.51'

S2.2 標準付属ツールの使い方(psql)

2.117

設定ファイルpostgresql.confの記述方法の説明として、適切なものを3つ選びなさい。

  1. 論理値型のパラメータでは、on や off を値に使うが、on の代わりに t、y、1、offの代わりにf、n、0などを使うことができる。
  2. 時間を指定するパラメータの値の単位は秒がデフォルトだが、100msや1minなどのように明示的に単位を指定することも可能である。
  3. メモリの量を指定するパラメータの値の単位はキロバイトがデフォルトだが、100MB、1GBなどのように明示的に単位を指定することも可能である。
  4. 数値を指定するパラメータの値は10進数で指定するが、0xで始まるものは16進数、0から始まるものは8進数として解釈される。
  5. 文字列を指定するパラメータの値は、単一引用符で括るが、値の中に単一引用符が含まれる場合は、例えば 'don''t' のように引用符を2つ続ける。

S2.2 標準付属ツールの使い方(psql)

2.116

SELECT文をpsqlを使って実行し、結果をCSV形式のファイル output.csv に出力したい。適切な方法を2つ選びなさい。

  1. psql の起動時に --mode=csv のオプションを指定し、psql のプロンプトから
    SELECT ... > output.csv
    を実行する。
  2. psql の起動時に >output.csv と出力先をリダイレクトするオプションを指定し、psql のプロンプトから
    ¥format csv
    SELECT ...
    の順で実行する。
  3. psql を起動した後、
    ¥o output.csv
    ¥pset format csv
    SELECT ....
    の順で実行する。
  4. コマンドラインから
    psql -c "SELECT ..." --csv > output.csv
    を実行する。
  5. コマンドラインから
    psql -c "SELECT ..." --format=csv > output.csv
    を実行する。

S2.2 標準付属ツールの使い方(createuser/dropuser)

2.115

データベースユーザを作成するcreateuserコマンドについて、正しい説明を1つ選びなさい。

  1. 対象となるのは自ホストで稼働しているデータベースのみで、リモートホストで稼働しているデータベースに対してcreateuserコマンドを利用することはできない。
  2. 実行時に、必ず管理者ユーザのパスワード入力を求めるプロンプトが表示される。
  3. データベース接続時にpostgresユーザが使用されるので、postgresユーザに適切な権限を付与しておく必要がある。
  4. セキュリティ上の理由により、スーパーユーザをcreateuserで作成することはできないので、その場合はpsqlなどでデータベースに接続し、create user(またはcreate role)を実行する必要がある。
  5. デフォルトではデータベース接続権限のあるユーザが作成されるが、オプションを指定することで接続権限のないロール(ROLE)を作成することもできる。

S2.1 インストール方法(データベースクラスタの概念と構造)

2.113

PostgreSQLのデータベースクラスタについての説明として適切なものを3つ選びなさい。

  1. インストール直後はテンプレートデータベースが2つと通常のデータベース1つが含まれる。
  2. データベースクラスタ内に複数のデータベースを構築してミラーリングすることで、高可用性を実現できる。
  3. データベースの文字セットはデータベースごとに異なるものを設定することができるので、データベースクラスタ内のあるデータベースはUTF8、別のデータベースはEUC_JPなどとすることが可能である。
  4. データベースユーザの情報はデータベースクラスタ内に構築される各データベース内に保持されるので、特定のデータベースにアクセスするには、それぞれのデータベースに対してCREATE USERなどの操作をしてユーザを作成する必要がある。
  5. データベースのバックアップ用のpg_dumpコマンドでは、データベースクラスタ内の共通データがバックアップできないので、その部分のバックアップについてはpg_dumpallコマンドを使う必要がある。

S2.1 インストール方法(initdbコマンドの使い方)

2.112

initdbコマンドでデータベースクラスタを新規に作成する。このときにコマンドのオプションとして指定できるものを3つ選びなさい。

  1. データベースクラスタの名前
  2. データベースクラスタの格納先となるディレクトリ
  3. TCP/IP経由で接続するときのポート番号
  4. テンプレートデータベースの符号化方式
  5. データベースクラスタのロケール

S2.5 基本的な運用管理作業(テーブル単位の権限)

2.111

以下のSQL文で定義したテーブルがある。
create table test(id integer, flag varchar);
あるユーザがこのテーブルに対して次のSQL文を実行するためには、どの権限をGRANTされる必要があるか。必要なものをすべて選びなさい。

update test set flag = 'x' where id < 10;

  1. SELECT
  2. INSERT
  3. UPDATE
  4. DELETE
  5. REFERENCES

S2.5 基本的な運用管理作業(自動バキュームの概念と動作)

2.110

情報スキーマに関する説明として、間違っているものを1つ選びなさい。

  1. information_schema というスキーマに格納されているビューの集合である。
  2. データベースに関する様々な情報が格納されており、SELECT文を使うことでその情報を取得できる。
  3. テーブルの情報はtables、列の情報はcolumnsを参照することで確認できる。
  4. 標準SQLで規定されているので、PostgreSQL を含め、すべてのRDBMSは情報スキーマをサポートしている。
  5. 標準SQLの規定に従っているので、PostgreSQL独自の拡張機能に関する情報は、情報スキーマでは取得できない。

S2.5 基本的な運用管理作業(自動バキュームの概念と動作)

2.109

バキューム(VACUUM)と自動バキュームの違いの説明として適切なものを3つ選びなさい。

  1. VACUUMはオプションで指定しなければ不要領域の回収のみを実行するのに対し、自動バキュームは不要領域の回収と解析(ANALYZE)の両方を実行する。
  2. VACUUMは対象とするテーブルのリストを指定する必要があるが、自動バキュームは挿入・更新・削除されたデータが一定量以上のテーブルが自動的に対象となる。
  3. VACUUMは一時テーブル(temporary table)を対象とできるが、自動バキュームでは一時テーブルは対象外である。
  4. VACUUMはオプションを指定することでファイルサイズを縮小することができるが、自動バキュームには同等の機能がない。
  5. VACUUMはOSの機能などを使って定期的に自動実行するようにできる。自動バキュームはPostgreSQLサーバの稼働中で、トランザクションの実行量が少ないときに自動的に実行されるので、OSの機能の設定は不要である。

S2.5 基本的な運用管理作業(VACUUM、ANALYZEの目的と使い方

2.108

VACUUM と VACUUM FULLの違いの説明として適切なものを2つ選びなさい。

  1. VACUUM FULLはデータベース内の全テーブルが対象になるが、VACUUMは指定した特定のテーブルのみを対象とする。
  2. VACUUM FULLはテーブルのANALYZEも実行するが、VACUUMはANALYZEを実行しない。
  3. VACUUM FULLは処理対象のテーブルの排他的ロックを取得するため、通常のテーブルの読み書きの処理と競合が発生する。VACUUMは排他的ロックを取得しない。
  4. VACUUM FULLを実行すると通常はテーブルを構成するファイルのサイズが小さくなるが、VACUUMを実行しても通常はテーブルを構成するファイルのサイズは変わらない。
  5. OSのコマンドラインから vacuumdb コマンドを発行することで VACUUM を実行できるが、VACUUM FULL はコマンドラインからは実行できない。

S2.5 基本的な運用管理作業(データベースロール/ユーザの追加・削除・変更方法)

2.107

データベースを作成する権限を持つユーザcdbuserを作成する方法として適切なものを2つ選びなさい。なお、いずれの選択肢でも、コマンドを実行するユーザは必要な権限を保有しているものとする。

  1. psql でデータベースに接続して以下を実行する
    create role cdbuser login createdb
  2. psql でデータベースに接続して以下を実行する
    create user cdbuser db
  3. psql でデータベースに接続して以下を実行する
    create user name=cdbuser grant=dbcreate
  4. OSのコマンドラインから以下を実行する
    createuser -d cdbuser
  5. OSのコマンドラインから以下を実行する
    createuser -D cdbuser


S2.5 基本的な運用管理作業(データベースロール/ユーザの概念)

2.106

PostgreSQLにおけるCREATE USERとCREATE ROLEの違いの説明として、適切なものを2つ選びなさい。

  1. CREATE ROLEは一般ユーザでも実行できるが、CREATE USER の実行はスーパーユーザ権限が必要である。
  2. CREATE ROLEで作成したロールを GRANT コマンドによりユーザに付与することができるが、CREATE USERで作成したユーザをGRANTで他のユーザに付与することはできない。
  3. CREATE ROLEで作成したロールのLOGIN属性はNOLOGIN、CREATE USERで作成した場合はLOGINがデフォルトになっている。
  4. CREATE USERでユーザを作成したら、同じ名前のスキーマが自動的に作成されるが、CREATE ROLEの場合はスキーマが作成されない。
  5. OSのコマンドラインからCREATE USERと同等の機能を実行するために createuser というコマンドが提供されているが、createrole というコマンドは提供されていない。


S2.5 基本的な運用管理作業(PostgreSQLの起動・停止方法)

2.105

データベースの停止コマンド
pg_ctl stop -m fast
について適切なものを2つ選びなさい。

  1. 接続中のクライアントセッションがあれば、その接続が終了するのを待つ。
  2. 実行中のトランザクションについては、自動的にcommitが実行される。
  3. 実行中のトランザクションについては、自動的にrollbackが実行される。
  4. 再起動時にリカバリ処理が行われる。
  5. PostgreSQLのバージョン9.5以降はこのモードがデフォルトなので、”-m fast”がなくても同じ動作になる。


S2.4 バックアップ方法(COPY文、¥copyコマンドの使い方)

2.104

SQLとして実行するCOPYについて、誤っているものを1つ選びなさい。

  1. pg_dump コマンドでテーブルのバックアップをテキスト形式で取得すると、テーブルのデータ部分はCOPYの実行文として出力される。
  2. psql で実行するメタコマンドの ¥copy は、内部的にSQLのCOPYを呼び出す。
  3. テーブルについて COPY FROM を実行するには、そのテーブルの INSERT 権限が必要である。
  4. テーブルについてCOPY TO を実行するには、そのテーブルの SELECT 権限が必要である。
  5. 特にオプションを指定しなければ、CSV形式のファイルで入出力を行う。


S2.4 バックアップ方法(トランザクションログ(WAL)とWALアーカイブ)

2.103

WALの説明として間違っているものを1つ選びなさい。

  1. WALはデータベースに対して行われた変更をすべて記録するもので、データファイルの更新が行われた直後に、その変更内容がWALに書き出される。
  2. データベースサーバをimmediateオプションで停止させるなど、正常な終了処理がされなかった場合、再起動時にWALファイルを参照することでデータファイルの復旧が行われる。
  3. WALファイルはPostgreSQL バージョン9.6まではデータベースクラスタのpg_xlogディレクトリの下に作られていたが、PostgreSQL バージョン10以降ではデータベースクラスタのpg_walディレクトリの下に作られる。
  4. ポイントインタイムリカバリ(PITR)では、archive_commandパラメータを適切に設定することで、生成されたWALファイルをデータベースクラスタの外のディレクトリにコピーして保存する必要がある。
  5. PITRでは、wal_levelパラメータを適切に設定し、詳細な情報がWALファイルに書き出されるようにする必要がある。


S2.4 バックアップ方法(ポイントインタイムリカバリの概念と手順)

2.102

ポイントインタイムリカバリのためのバックアップ手順として、間違っているものを1つ選びなさい。

  1. データベースに管理者ユーザで接続し、pg_start_backup を実行する。
  2. データベースを停止する。
  3. データベースクラスタのディレクトリ全体を、tar などのOSコマンドを利用してコピーする。
  4. データベースに管理者ユーザで接続し、pg_stop_backup を実行する。
  5. 上記の一連の処理の代わりに、OSのコマンドラインから pg_basebackup コマンドを実行する。

S2.4 バックアップ方法(ファイルシステムレベルのバックアップ)

2.101

コールドバックアップ(データベースを停止した状態で取得するバックアップ)について適切なものを3つ選びなさい。

  1. cp などのコマンドを利用して、データベースクラスタのディレクトリのコピーを作成する。
  2. tar などのコマンドを利用して、データベースクラスタのディレクトリのアーカイブを作成する。
  3. rsyncなどのコマンドを利用して、データベースクラスタのディレクトリの複製をネットワーク上の他のホストに作成する。
  4. pg_basebackup コマンドを利用して、データベースクラスタのベースバックアップを作成する。
  5. pg_dumpall コマンドを利用して、データベースクラスタ全体のバックアップを作成する。

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

OSS-DBの受験対策

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

例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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