今回は、Silverの「S2 運用管理 - S2.3 設定ファイル」からの出題です。
postgresql.conf で設定するすべてのパラメータについて、SETコマンドで値を変更できる。
SETコマンドでパラメータの値を変更した時、それがすぐに有効になるものと、pg_ctl reload などの追加処理をしなければ有効にならないものとがある。
SETコマンドでパラメータの値を変更しても、psql のセッションを終了すると、値はすべて元に戻る。
SET LOCAL parameter=value; のようにLOCALオプションを指定した場合、その後でCOMMITを実行すると、パラメータの値は元に戻る。
SETコマンドによるパラメータ値の変更はシステムに重大な影響があるため、データベースのスーパーユーザだけが実行できる。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2013年2月13日
postgresql.confで設定するパラメータの多くは、SETコマンドで値を変更することができます。ただし、すべてのパラメータが変更できるわけではありません。
SETコマンドによる変更自体は即座に有効になりますが、有効範囲はセッション単位、あるいはトランザクション単位に限定されるため、それを実行したpsqlなどのセッションを終了すると、すべて無効になります。
SETコマンドのデフォルトの有効範囲はセッション単位ですが、LOCALオプションを指定するとトランザクション単位となり、COMMITあるいはROLLBACKでトランザクションを終了すると、パラメータ値は元に戻ります。
SETコマンドの実行自体には特別な権限は必要ありませんが、一部のパラメータ(例えばlc_messagesなど)の設定変更はスーパーユーザ権限が必要になっています。
従って正解はCとDです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.