開発者向けのオプション

PostgreSQL 8.4.1文書
前のページ | 巻戻し | 第 18章サーバの構成 | 早送り | 次のページ

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

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

`allow_system_table_mods` (`論理値`)

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

`debug_assertions`（`論理値`）

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

`ignore_system_indexes` (`論理値`)

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

`post_auth_delay` (`整数`)

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

`pre_auth_delay`（`整数`）

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

`trace_notify`（`論理値`）

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

`trace_sort`（`論理値`

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

`trace_locks` (`論理値`)

  有効な場合、ロックの使用状況に関する情報を出力します。 出力される情報には、ロック操作の種類、ロックの種類、ロックまたはロック解除されているオブジェクトの一意な識別子が含まれます。 また、このオブジェクトに既に与えられているロック種類やこのオブジェクトで待機しているロック種類を表すビットマスクも含まれます。 ロック種類それぞれについて、与えられているロック数、待機中のロック数がその総数と共に出力されます。 ログファイル出力例を以下に示します。

  LOG: LockAcquire: new: lock(0xb7acd844) id(24688,24696,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(AccessShareLock)

  LOG: GrantLock: lock(0xb7acd844) id(24688,24696,0,0,0,1) grantMask(2) req(1,0,0,0,0,0,0)=1 grant(1,0,0,0,0,0,0)=1 wait(0) type(AccessShareLock)

  LOG: UnGrantLock: updated: lock(0xb7acd844) id(24688,24696,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(AccessShareLock)

  LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1) grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 wait(0) type(INVALID)

  ダンプされる構造の詳細は、src/include/storage/lock.h にあります。

  このパラメータはPostgreSQLがコンパイル時に`LOCK_DEBUG`マクロが定義された場合のみ有効です。

`trace_lwlocks` (`論理値`)

  有効な場合、軽量ロックの使用状況に関する情報を出力します。 軽量ロックは主に、共有メモリ上のデータ構造へのアクセスに関する排他制御機能を提供することを意図したものです。

  このパラメータはPostgreSQLがコンパイル時に`LOCK_DEBUG`マクロが定義された場合のみ有効です。

`trace_userlocks` (`論理値`)

  有効な場合、ユーザロックの使用状況に関する情報を出力します。 出力は`trace_locks`と同じですが、ユーザロックに関するもののみを出力します。

  PostgreSQL バージョン 8.2 の時点でユーザロックは削除されました。このオプションは現在効果がありません。

  このパラメータはPostgreSQLがコンパイル時に`LOCK_DEBUG`マクロが定義された場合のみ有効です。

`trace_lock_oidmin` (`整数`)

  設定すると、このOID未満のテーブルに関するロックの追跡を行いません。 （システムテーブルに関する出力を抑えるために使用します。）

  このパラメータはPostgreSQLがコンパイル時に`LOCK_DEBUG`マクロが定義された場合のみ有効です。

`trace_lock_table` (`整数`)

  このテーブル（OID）に対し無条件でロックを追跡します。

  このパラメータはPostgreSQLがコンパイル時に`LOCK_DEBUG`マクロが定義された場合のみ有効です。

`debug_deadlocks` (`論理値`)

  設定すると、DeadLockTimeoutが発生した時全ての進行中のロックについての情報がダンプされます。

  このパラメータはPostgreSQLがコンパイル時に`LOCK_DEBUG`マクロが定義された場合のみ有効です。

`log_btree_build_stats` (`論理値`)

  設定すると、各種B-Tree操作に関するシステムリソース（メモリとCPU）の使用についての統計情報をログに出力します。

  このパラメータはPostgreSQLがコンパイル時に`BTREE_BUILD_STATS`マクロが定義された場合のみ有効です。

`wal_debug`（`論理値`）

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

`zero_damaged_pages`（`論理値`）

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

前のページ | ホーム | 次のページ
独自のオプション | 上に戻る | 短いオプション