|
コンフィギュレーション列に示す値は、参照アーキテクチャでの展開例を反映していますが、使用する環境に合わせて修正できます。次の表の多くの設定には、使用する環境に合わせて適切なコンフィギュレーションの値を決定するために役立つリンクが提示されています。
|
設定
|
コンフィギュレーション
|
説明
|
---|---|---|
listen_addresses
|
‘*’
|
すべてのネットワークインタフェースで受信します。状況によっては、複数のネットワークインタフェースがある場合、これを特定のネットワークインタフェースに制限することをお勧めします。
|
Port
|
5432
|
これがデフォルトのポート番号です。
|
max_connections
|
200
|
PostgreSQL でのデフォルトは 100 です。ThingWorx でのデフォルト設定は 100 (maxpoolsize) です。データベースで予想される同時接続の総数に基づいてこの数値を増やします。これは常に、クラスタ内のサーバー数と ThingWorx の platform-settings.json ファイルで設定されている最大プールサイズを掛け合わせた数より大きくなければなりません。
|
shared_buffers
|
1024 MB
|
オプションのパフォーマンスチューニング。データベースサーバーが共有のメモリバッファに使用するメモリの量を設定します。マシン上で使用可能なメモリの 4 分の 1 に設定することをお勧めします。「Resource Consumption」 > 「Memory」を参照してください。
|
work_mem
|
32 MB
|
オプションのパフォーマンスチューニング。一時的なディスクファイルに書き込む前に内部の並べ替え操作とハッシュテーブルによって使用されるメモリの量を指定します。「Resource Consumption」 > 「Memory」を参照してください。work_mem まで下にスクロールします。
|
maintenance_work_mem
|
512 MB
|
オプションのパフォーマンスチューニング。メンテナンス操作によって使用されるメモリの上限を指定します。「Resource Consumption」 > 「Memory」を参照してください。このオプションは work_mem のすぐ後ろに表示されます。
|
wal_level
|
enum
|
オプションのパフォーマンスチューニング。メンテナンス操作によって使用されるメモリの上限を指定します。「Write Ahead Log」 > 「Settings」を参照してください。
|
synchronous_commit
|
on
|
「Write Ahead Log」 > 「Settings」に移動し、synchronous_commit (enum) まで下にスクロールします。
|
archive_mode
|
on
|
|
archive_command
|
'cd .'
|
「Write Ahead Log」 > 「Archiving」に移動し、archive_command (string) まで下にスクロールします。
|
max_wal_size
|
10
|
「Write Ahead Log」に移動し、ARCHIVING リンクをクリックします。max_wal_size (integer) まで上にスクロールします。WAL コンフィギュレーションの詳細については、PostgreSQL 10 のドキュメントの「WAL Configuration」を参照してください。
|
synchronous_standby_names
|
node1, node2 または node2, node0 または node0, node1
|
コンマ区切りリストとして、ほかのノードの "application_name" をその recovery.conf ファイルで指定されているとおりに追加します。「Write Ahead Log」の「Settings」セクションにある synchronous_commit を参照してください。
|
hot_standby
|
true/false
|
このモードについては、「Hot Standby」を参照してください。
|
fsync
|
on
|
「Write Ahead Log」 > 「Settings」に移動し、fsync まで下にスクロールします。
|
チェックポイントの設定
|
チェックポイントの設定については、「Checkpoints」を参照してください。
|
|
Pgpool-II から接続する場合、認証アクセスがここに記載されている Pgpool-II のドキュメンテーション (md5 または trust) に準拠していることを確認します。
|
設定
|
値
|
説明
|
||
---|---|---|---|---|
listen_addresses
|
‘*’
|
同じサーバーか別のサーバーかにかかわらず、ThingWorx アプリケーションのモデルプロバイダが Pgpool-II に接続可能な値を選択します。
|
||
port
|
5432
|
クライアント接続を受信する TCP ポート
|
||
pcp_listen_address
|
*
|
Port Control Protocol (PCP) 接続の IP/ホストフィルタ (* はすべて許可)
|
||
pcp_port
|
9898
|
PCP 接続を受信する TCP ポート
|
||
backend_hostname
backend_port
backend_weight
backend_data_directory
backend_flag
|
<ip of backend#>
<バックエンドのポート番号>
1
/var/lib/postgresql/10.x/main
ALLOW_TO_FAILOVER
|
3 つのノード (マスターおよび 2 つのスタンバイ) それぞれに、これらのバックエンドコンフィギュレーション値を設定します。たとえば、backend_hostname0 はマスター、backend_hostname1 はスタンバイなどです。詳細については、PostgreSQL のオンラインドキュメンテーションを参照してください。
|
||
enable_pool_hba
|
on
|
pool_hba.conf を有効にします
|
||
master_slave_mode
|
on
|
マスター/スタンバイレプリケーションを使用していることを PostgreSQL に通知します。
|
||
load_balance_mode
|
off
|
|
||
master_slave_sub_mode
|
stream
|
既成の PostgreSQL ストリーミングレプリケーションを使用するように Pgpool-II に通知します。
|
||
replication_mode
|
off
|
Pgpool-II のレプリケーションを使用しないで、代わりに既成の PostgreSQL ストリーミングレプリケーションを使用します。
|
||
sr_check_period
|
10
|
ストリーミングレプリケーションの遅延 (秒)
|
||
sr_check_user
|
replicator
|
ストリーミングレプリケーションのユーザー
|
||
sr_check_password
|
replicator
|
ストリーミングレプリケーションのパスワード
|
||
sr_check_database
|
postgres
|
ストリーミングレプリケーションのデータベース
|
||
health_check_user
|
postgres
|
フェールオーバー正常性チェックのユーザー
|
||
health_check_password
|
postgres
|
フェールオーバー正常性チェックのパスワード
|
||
health_check_database
|
postgres
|
フェールオーバー正常性チェックのデータベース
|
||
failover_command
|
/etc/pgpool2/failover.sh %d %h %D %m %H %R %M %P
|
この設定の詳細については、「failover_command」のセクションを参照してください。
さらに、付録 C で以下のサンプルスクリプトを参照してください。
• failover.sh
• retargetMaster_001.sh
• retargetMaster_002.sh
• retargetMaster_003.sh
|
||
num_init_children
max_pool
max_child_connections
superuser_reserved_connections
|
パフォーマンスチューニングのパラメータ。これらの設定は Pgpool-II の接続プーリング機能に関連します。ボリュームトラフィックの最大スループットのニーズを満たす十分な接続を起動時に用意するとともに、PostgreSQL DB ノードの最大接続の設定を超えないようにしてください。推奨値および値の計算式については、マニュアル (上記のリンクを参照) の「プール」セクションを参照してください。
|
設定
|
値
|
説明
|
---|---|---|
use_watchdog
|
on
|
Pgpool-II 内でのウォッチドッグをオンにします
|
wd_hostname
|
'{IP address of this Pgpool-II node}'
|
このウォッチドッグのホスト名または IP アドレス
|
wd_port
|
9000
|
このウォッチドッグのポート番号
|
delegate_IP
|
'{Virtual IP address to access PostgreSQL}'
|
(Pgpool-II を経由して) クライアントが PostgreSQL にアクセスする際に使用する仮想 IP アドレス
|
ifconfig_path
|
/etc/pgpool2
|
if_up_cmd および if_down_cmd コマンドまたはスクリプトが含まれているディレクトリの絶対パス。
|
if_up_cmd
|
'ifup.sh $_IP_$ <eni id of Pgpool node>'
|
Pgpool-II が delegate_IP アドレスとの仮想 IP インタフェースを起動するときに発行されるコマンド。Pgpool-II ノードの eni ID は、EC2 管理コンソールにログインして自分の Pgpool-II インスタンスに移動することによって取得できます。コンソール内の説明で Network interfaces エントリを見つけ、「eth0」をクリックしてインタフェース ID を特定します。これを $<eni id of Pgpool node> に使用します。
|
if_down_cmd
|
'ifdown.sh $_IP_$ <eni id of Pgpool node>'
|
Pgpool-II が delegate_IP アドレスとの仮想 IP インタフェースを停止するときに発行されるコマンド。Pgpool-II ノードの eni ID を取得するには、if_up_cmd を参照してください。
|
arping_path
|
/usr/bin
|
インストール iputils-arping パッケージのパス
|
arping_cmd
|
arping -U $_IP_$ -w 1
|
IP の検証に使用される arping コマンド。
|
heartbeat_destination0
|
'{IP address of the other Pgpool-II node}'
|
ハートビートチェックが行われる IP アドレス。other_pgpool_hostname0 設定の値
|
heartbeat_destination_port0
|
9694
|
デフォルト値を使用します。
|
heartbeat_device
|
'eth0'
|
ハートビート通信用 IP アドレスの NIC デバイス
|
other_pgpool_hostname0
|
'{IP address of the other Pgpool-II node}'
|
その他の Pgpool-II サーバーインスタンスの IP アドレス
|
other_pgpool_port0
|
5432
|
その他の Pgpool-II ノードが受信するポート
|
other_wd_port0
|
9000
|
その他の Pgpool-II ウォッチドッグ機能が受信するポート
|