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に指示します。