17.15. 開発者向けのオプション

以下のパラメータは、PostgreSQLのソースに対する作業用のものです。 中には深刻な損傷を負ったデータベースの復旧に役立つものもあります。 実運用のデータベースでこれらを設定する理由はないはずです。 したがって、これらはサンプルのpostgresql.confからは除外されています。 これらのパラメータの多くは、それを動作させるために特殊なソースコンパイルを必要としていることに注意してください。

allow_system_table_mods (boolean)

システムテーブルの構造変更を許可します。 これはinitdbで使用されます。 このパラメータはサーバ起動時にのみ設定可能です。

debug_assertionsboolean

各種のアサーション検査を有効にします。 これはデバック用の道具です。 もしおかしな問題とかクラッシュを経験すれば、プログラミングの間違いを露出するので、これを有効にする必要があるかもしれません。 このパラメータを使用するには、マクロUSE_ASSERT_CHECKINGが、 PostgreSQLの構築時に(configureオプションの --enable-cassertで)定義されなければなりません。もし、PostgreSQLがアサーション付で構築されていれば、 debug_assertionsのデフォルトはonであることに注意してください。

ignore_system_indexes (boolean)

システムテーブルの読み込み時にシステムインデックスを無視します(しかしテーブルが更新された時はインデックスを更新します)。 障害があるシステムインデックスを復旧する時、これは有用です。 セッションが始まった後に、このパラメータを変更することはできません。

post_auth_delay (integer)

非ゼロの場合、サーバプロセスが始まり認証手続きが終わった後に、指定した秒数の遅延が発生します。 これは、デバッガを使用してサーバプロセスに接続する機会を提供することを目的としています。 セッションが始まった後に、このパラメータを変更することはできません。

pre_auth_delayinteger

非ゼロの場合、ここで指定した秒数分の遅延が新しくサーバプロセスがforkした後、認証手続きに入る前に発生します。 これは、認証における誤動作を追跡するために、デバッガを使用してサーバプロセスに接続する機会を提供することを目的としたものです。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみ設定可能です。

trace_notifyboolean

LISTENNOTIFYコマンドのための大量なデバッグ出力を生成します。 この出力をクライアントもしくはサーバログに送信するためには、それぞれ、client_min_messagesもしくはlog_min_messagesDEBUG1以下でなければなりません。

trace_sortboolean

もしも有効であれば、並び替え操作の間のリソース使用についての情報を放出します。 このパラメータは PostgreSQLがコンパイルされた時、TRACE_SORTマクロが定義されている場合にのみ有効です。 (とは言っても、現在TRACE_SORTはデフォルトで定義されています。)

trace_locksboolean
trace_lwlocksboolean
trace_userlocksboolean
trace_lock_oidminboolean
trace_lock_tableboolean
debug_deadlocksboolean
log_btree_build_statsboolean

その他の各種のコードを追跡しデバッグするオプションです。

wal_debugboolean

もしも有効であれば、WALに関連したデバッグ出力が有効になります。 このパラメータはWAL_DEBUGマクロが PostgreSQLのコンパイルの時に定義された場合にのみ有効です。

zero_damaged_pagesboolean

ページヘッダの障害がわかると、通常PostgreSQLはエラーの報告を行い、現在のコマンドを中断させます。 zero_damaged_pagesを真に設定することにより、システムは代わりに警告を報告し、障害のあるページをゼロで埋め、処理を継続します。 この動作により、障害のあったページ上にある全ての行のデータが破壊されます。 しかし、これによりエラーを無視し、正常なページに存在するテーブル内の行を取り出すことができます。 したがって、ハードウェアまたはソフトウェアのエラーによって破損が発生した場合のデータの復旧時に有用です。 障害のあるページからのテーブルのデータの復旧をあきらめた場合を除き、通常はこれを真にしてはいけません。 デフォルトは無効であり、スーパーユーザのみ変更可能です。