Configuration options
=====================

PGLogicalの一部の機能は、 ``postgresql.conf``
または\ ``ALTER SYSTEM SET``
を介して設定できる構成オプションを使用して構成できます。

-  ``pglogical.conflict_resolution``
   ローカルデータと着信変更の間で検出された競合の解決方法を設定します。

可能な値

-  ``error``
   -競合が検出され、解決に手動アクションが必要な場合、レプリケーションはエラーで停止します
-  ``apply_remote`` -常にローカルデータと競合する変更を適用します
-  ``keep_local``
   -データのローカルバージョンを維持し、競合する変更を無視しますリモートノードから来ています
-  ``last_update_wins`` -
   最新のコミットタイムスタンプを持つデータのバージョンが保持されますローカルまたはリモートバージョンのいずれかです
-  ``first_update_wins`` -
   最も古いタイムスタンプを持つデータのバージョンが保持されますこれはローカルまたはリモートのいずれかですバージョン)

使用可能な設定とデフォルトは、PostgreSQLのバージョンおよびその他の設定によって異なります。

PostgreSQLのデフォルト値は\ ``apply_remote`` です。

``keep_local`` 、\ ``last_update_wins`` 、および\ ``first_update_wins``
設定では、 ``track_commit_timestamp``
PostgreSQL設定を有効にする必要があります。 ``track_commit_timestamp``
はPostgreSQL 9.4では利用できないため、 ``pglogical.conflict_resolution``
は\ ``apply_remote`` または\ ``error`` のみです。

Postgres-XLでは、サポートされている唯一の値とデフォルトは\ ``error``
です。

-  ``pglogical.conflict_log_level`` ``pglogical.conflict_resolution``
   が\ ``error``
   以外に設定されている場合、検出された競合をレポートするためのログレベルを設定します。

この設定の主な使用は、競合のログを抑制することです。

指定できる値は\ ``log_min_messages`` PostgreSQL設定と同じです。

デフォルトは\ ``LOG`` です。

-  ``pglogical.batch_inserts``
   可能であればバッチ挿入メカニズムを使用するようにPGLogicalに指示します。バッチメカニズムは、
   ``COPY``
   コマンドでも使用されるPostgreSQL内部バッチ挿入モードを使用します。

バッチ挿入は、1つのテーブルに多数の挿入を実行したトランザクションのレプリケーションパフォーマンスを向上させます。
PGLogicalは、トランザクションが5つを超えるINSERTを行った場合、バッチモードに切り替えます。

テーブルに\ ``INSTEAD OF INSERT`` および\ ``BEFORE INSERT``
トリガーがなく、テーブルの列の揮発性式を使用したデフォルトがない場合にのみバッチモードに切り替えることができます。また、バッチモードは、\ ``pglogical.conflict_resolution``
が\ ``error`` に設定されている場合にのみ機能します。

デフォルトは\ ``true`` です。

-  ``pglogical.use_spi``
   内部低レベルインターフェイスを使用するのではなく、SPIインターフェイスを使用して実際のSQL
   ``INSERT`` 、\ ``UPDATE`` 、\ ``DELETE``
   ステートメントを形成し、入った変更を適用するようにPGLogicalに指示します。

これは、主にPostgres-XLおよびデバッグの目的に役立ちます。

PostgreSQLのデフォルトは\ ``false`` です。

``pglogical.conflict_resolution`` が\ ``error``
に設定されている場合にのみ\ ``true``
に設定できます。この状態では、競合は検出されません。

Postgres-XLでは、デフォルトで唯一許可される設定は\ ``true`` です。

-  ``pglogical.temp_directory``
   スキーマの同期に必要な一時ファイルを配置するシステムパスを定義します。このパスは存在し、Postgresを実行しているユーザーが書き込み可能である必要があります。

デフォルトは空で、環境とオペレーティングシステムの設定に基づいて、デフォルトの一時ディレクトリを使用するようにPGLogicalに指示します。
