運用センタ、および待機センタの各サーバで有効化、または無効化するpostgresql.confファイルのパラメータを以下に示します。
パラメータ | 運用センタ | 待機センタ | ||
---|---|---|---|---|
プライマリサーバ | スタンバイサーバ | プライマリ候補サーバ | スタンバイサーバ | |
wal_level | ○ | ○ | ○ | ○ |
max_wal_senders | ○ | ○ | ○ | ○ |
synchronous_standby_names | ○ | ○ | ○ | ○ |
hot_standby | ○ | ○ | ○ | ○ |
wal_keep_segments | ○ | ○ | ○ | ○ |
wal_log_hints (注1) | ○ | ○ | ○ | ○ |
wal_sender_timeout | ○ | ○ | ○ | ○ |
archive_mode | ○ | ○ | ○ | ○ |
archive_command | ○ | ○ | ○ | ○ |
backup_destination | ○ | ○ | ○ | ○ |
listen_addresses | ○ | ○ | ○ | ○ |
max_connections | ○ | ○ | ○ | ○ |
superuser_reserved_connections | ○ | ○ | ○ | ○ |
wal_receiver_timeout | ○ | ○ | ○ | ○ |
synchronous_commit | ○ | ○ | ○ | ○ |
following_async_walsenders | ○ | ○ | - (注2) | - (注2) |
restart_after_crash | ○ | ○ | ○ (注4) | ○ (注4) |
primary_conninfo (注3) | - | ○ | ○ | ○ |
recovery_target_timeline | ○ | ○ | ○ | ○ |
restore_command | - | - | ○ | ○ |
archive_cleanup_command | - | - | ○ | ○ |
○:有効化が必要なパラメータ
-:無効化が必要なパラメータ
注1) 障害が発生したプライマリサーバをリカバリする手段としてpg_rewindコマンドを使用する場合、インスタンス作成時にチェックサムを有効化していなければ、本パラメータを有効化します。
注2) 非同期スタンバイサーバ名を省略する場合はすべてのサーバで有効化することもできます。
注3) postgresql.auto.confに設定するパラメータです。
注4) 待機センタでデータベース多重化を利用しない場合は、無効化することも可能です。
ストリーミングレプリケーションによるトランザクションログの送信順序について、任意の非同期スタンバイサーバへの送信をすべての同期スタンバイサーバへの受信が確認できた時点で行います。
パラメータの指定形式は以下のとおりです。
following_async_walsenders = '{ off | on | write | apply } [ (asynchronous_standby_name [, ...]) ]'
off:同期スタンバイサーバと非同期スタンバイサーバ間の送信順序について規定しません。
on:同期スタンバイサーバがディスクにフラッシュしたトランザクションログの位置までを送信します。
write:同期スタンバイサーバがディスクに書き出したトランザクションログの位置までを送信します。
apply:同期スタンバイサーバがデータベースに適用したトランザクションログの位置までを送信します。
非同期スタンバイサーバ名には、1つ以上のスタンバイサーバ名を指定するか、または省略が可能です。
非同期スタンバイサーバ名を指定する場合には、synchronous_standby_namesパラメータに指定されたスタンバイサーバ名以外を指定してください。
非同期スタンバイサーバ名を省略した場合は、synchronous_standby_namesパラメータに指定されたスタンバイサーバ以外のすべてのスタンバイサーバが対象となります。ただし、すべての非同期スタンバイサーバを示すために"*"を指定することはできません。
synchronous_standby_namesパラメータの指定がない場合、本パラメータは無効です
synchronous_standby_namesパラメータに“*”を指定している場合、本パラメータは指定できません。
本パラメータを指定しない場合は、“off”を指定したものとみなされます。
注意
本パラメータを有効にした場合、同期スタンバイサーバからのレプリケーション接続が行われていないと、対象となる非同期スタンバイサーバへのログ転送が停止します。これは、物理レプリケーションだけでなく、論理レプリケーションやpg_basebackupコマンドなどのPostgreSQLクライアントアプリケーションなど、レプリケーションプロトコルを使用する機能について同様です。そのため、パラメータの指定や接続を行うアプリケーション名の指定に関して注意が必要です。