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 つのテーブルに多くの挿入を行ったトランザクションのレプリケーション パフォーマンスが向上します。トランザクションが 5 回以上の INSERT を実行すると、PGLogical はバッチ モードに切り替わります。

テーブルに 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 は環境とオペレーティング システムの設定に基づいてデフォルトの一時ディレクトリを使用するようになります。