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_levelpglogical.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インターフェイスを使用して実際のSQLINSERT、UPDATE、DELETEステートメントを形成し、入った変更を適用するようにPGLogicalに指示します。
これは、主にPostgres-XLおよびデバッグの目的に役立ちます。
PostgreSQLのデフォルトはfalse です。
pglogical.conflict_resolution がerror
に設定されている場合にのみtrue
に設定できます。この状態では、競合は検出されません。
Postgres-XLでは、デフォルトで唯一許可される設定はtrue です。
pglogical.temp_directoryスキーマの同期に必要な一時ファイルを配置するシステムパスを定義します。このパスは存在し、Postgresを実行しているユーザーが書き込み可能である必要があります。
デフォルトは空で、環境とオペレーティングシステムの設定に基づいて、デフォルトの一時ディレクトリを使用するようにPGLogicalに指示します。