Updated on 2024-05-07 GMT+08:00

Standby Server

hot_standby

Parameter description: Specifies whether the standby server is allowed to accept connections and queries after it is restored to the minrecovery point.

This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 1.

  • If this parameter is set to on, wal_level must be set to hot_standby or higher. Otherwise, the database startup fails.
  • In a distributed system, hot_standby cannot be set to off, because this setting can affect other features of the HA system.
  • If the hot_standby parameter was disabled and the wal_level parameter was set to a value smaller than the value of hot_standby, perform the following operations to ensure that the logs to be replayed on the standby node can be queried on the standby node before enabling the hot_standby parameter again:
    1. Change the value of wal_level of the primary and standby nodes to the value of hot_standby or a higher value, and restart the instances for the change to take effect.
    2. Perform the checkpoint operation on the primary node and query the pg_stat_get_wal_senders() function to ensure that the value of receiver_replay_location of each standby node is the same as that of sender_flush_location of the primary node. Ensure that the value adjustment of wal_level is synchronized to the standby nodes and takes effect, and the standby nodes do not need to replay low-level logs.
    3. Set the hot_standby parameter of the primary and standby nodes to on, and restart the instances for the setting to take effect.

Value range: Boolean

  • on: allowed.
  • off: not allowed.

Default value: on

max_standby_archive_delay

Parameter description: Specifies the wait period before queries on a standby server are canceled when the queries conflict with WAL processing and archiving in hot standby mode. In the current version, the setting does not take effect and is controlled by the max_standby_streaming_delay parameter.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

–1 indicates that the standby node waits until the conflicting queries are complete.

Value range: an integer ranging from –1 to 2147483647. The unit is ms.

Default value: 3s (3000 ms)

max_standby_streaming_delay

Parameter description: Specifies the wait period before queries on the standby node are canceled when the queries conflict with WAL data receiving through streaming replication in hot standby mode. If this parameter is set to a large value or the service load is heavy, an error may be reported for waiting for transaction replay and flushing to disks.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

–1 indicates that the standby node waits until the conflicting queries are complete.

Value range: an integer ranging from –1 to 2147483647. The unit is ms.

Default value: 3s (3000 ms)

wal_receiver_status_interval

Parameter description: Specifies the maximum interval for notifying the primary server of the WAL Receiver status.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

If this parameter is set to 0, the standby server does not send information, such as the log receiving location, to the primary server. As a result, the transaction commit on the primary server may be blocked, and the switchover may fail. In normal service scenarios, you are advised not to set this parameter to 0.

Value range: an integer ranging from 0 to 2147483. The unit is s.

Default value: 5s

hot_standby_feedback

Parameter description: Specifies whether a standby server is allowed to send the result of a query performed on it to the primary server, preventing a query conflict.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that the standby server is allowed to send the result of a query performed on it to the primary server.
  • off indicates that the standby server is not allowed to send the result of a query performed on it to the primary server.

Default value: off

wal_receiver_timeout

Parameter description: Specifies the maximum wait period for a standby server to receive data from the primary server.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 0 to 2147483647. The unit is ms.

Default value: 6s (6000 ms)

wal_receiver_connect_timeout

Parameter description: Specifies the timeout period for a standby server to connect to the primary server.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 0 to 2147483. The unit is s.

Default value: 2s

wal_receiver_connect_retries

Parameter description: Specifies the maximum attempts that a standby server connects to the primary server

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 1 to 2147483647

Default value: 1

wal_receiver_buffer_size

Parameter description: Specifies the memory buffer size for the standby and secondary nodes to store the received Xlog files.

This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 4096 to 1047552. The unit is KB.

Default value: 64 MB (65536 KB)

primary_slotname

Parameter description: Specifies the slot name of the primary server corresponding to a standby server. This parameter is used for the mechanisms to verify the primary-standby relationship and delete WALs.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: a string

Default value: empty

enable_redo_atomic_operation

Parameter description: Specifies whether to use atomic operations or spinlocks to update the LSN of the current thread when parallel playback is enabled.

This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 1.

Value range: Boolean

  • on indicates that atomic operations are used for update.
  • off indicates that spinlocks are used for update.

Default value: on

max_standby_base_page_size

Parameter description: Specifies the maximum storage space of base page files on the standby node after the ultimate RTO function is enabled.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: a long integer ranging from 1048576 to 562949953421311. The unit is KB.

Default value: 268435456‬ (256 GB)

max_standby_lsn_info_size

Parameter description: Specifies the maximum size of LSN info files on the standby node after the ultimate RTO function is enabled.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: a long integer ranging from 1048576 to 562949953421311. The unit is KB.

Default value: 268435456‬ (256 GB)

base_page_saved_interval

Parameter description: Specifies the interval for generating base pages on the standby node after the ultimate RTO function is enabled. For the same page, a base page is generated each time the value of this parameter is replayed.

This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 5 to 2000.

Default value: 400

standby_force_recycle_ratio

Parameter description: Specifies the percentage of files read by the standby node to trigger forcible recycling after the ultimate RTO function is enabled. When the total size of base page files exceeds the value of max_standby_base_page_size x standby_force_recycle_ratio or the total size of LSN info files exceeds the value of max_standby_lsn_info_size x standby_force_recycle_ratio, forcible recycling is triggered and some queries are canceled. When the value of standby_force_recycle_ratio is 0, forcible recycling is not started, and the setting of max_standby_base_page_size and max_standby_lsn_info_size does not take effect.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: a double-precision floating point number ranging from 0.0 to 1.0

Default value: 0.8

standby_recycle_interval

Parameter description: Specifies the interval for the standby node to recycle read files after the ultimate RTO function is enabled. The thread for recycling read resources on the standby node attempts to clear read files on the standby node at the interval specified by this parameter.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 0 to 86400‬. The unit is s.

Default value: 10

standby_max_query_time

Parameter description: Specifies the maximum query time supported on the standby node after the ultimate RTO function is enabled. If the query time exceeds the value of this parameter, the query will be canceled. Note: The time when the query is canceled is affected by the interval parameter standby_recycle_interval of the recycling thread and the time when the snapshot is obtained. Therefore, the actual execution time of the query on the standby node must be greater than the value of this parameter.

This parameter is a SIGHUP parameter. Set it based on instructions provided in Table 1.

Value range: an integer ranging from 0 to 86400‬. The unit is s.

Default value: 600

exrto_standby_read_opt

Parameter description: Specifies whether to support read optimization of the standby node with ultimate RTO. This parameter is enabled by default. This parameter is not synchronized between the primary and standby nodes.

This parameter is a POSTMASTER parameter. Set it based on instructions provided in Table 1.

Value range: Boolean. on indicates that the optimization is enabled, and off indicates that the optimization is disabled.

Default value: on