Updated on 2025-05-29 GMT+08:00

Settings

wal_level

Parameter description: Specifies the level of information to be written to the WAL. The value cannot be empty or commented out.

Parameter type: enumerated type

Unit: none

Value range:

  • minimal

    Advantages: Certain bulk operations (including creating tables and indexes, executing cluster operations, and copying tables) are safely skipped in logging, which can make those operations much faster.

    Disadvantages: WALs contain only basic information required for recovery from a database server crash or an emergency shutdown. Data cannot be restored from archived WALs.

  • archive

    Adds logging required for WAL archiving, supporting the database restoration from archives.

  • hot_standby
    • Further adds information required to run SQL queries on a standby node and takes effect after the database restarts.
    • To enable read-only queries on a standby node, the wal_level parameter must be set to hot_standby or a higher level on the primary node and hot_standby must be enabled on the standby node. The performance difference between the hot_standby and archive levels is small.
  • logical

    This parameter indicates that WALs support logical replication.

Default value: hot_standby

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

Setting suggestion: Set this parameter to logical when the logical replication function is enabled. In other scenarios, set this parameter to hot_standby. The parameter levels meet the following priority: logical > hot_standby > archive > minimal.

  • To enable WAL archiving and data streaming replication between the primary and standby nodes, set this parameter to archive, hot_standby, or logical.
  • If this parameter is set to minimal, hot_standby must be set to off and max_wal_senders must be set to 0. In addition, the database must be deployed in a standalone system. Otherwise, the database cannot be started.
  • If this parameter is set to archive, hot_standby must be set to off. Otherwise, the database startup fails. However, hot_standby cannot be set to off in an HA cluster. For details, see the description of the hot_standby parameter.

Risks and impacts of improper settings: When the read function of the standby node is enabled and the level is lower than hot_standby, the node cannot be started.

fsync

Parameter description: Specifies whether the GaussDB server uses the fsync function to ensure that updated data is written to physical disks in a timely manner. For details about the implementation of the fsync function, see wal_sync_method.

  • Using the fsync() function ensures that the data can be recovered to a known state when the OS or hardware crashes.
  • Setting this parameter to off may result in unrecoverable data corruption in a system crash.

Parameter type: Boolean.

Unit: none

Value range:

  • on: The fsync() function is used.
  • off: The fsync() function is not used.

Default value: on

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

wal_sync_method

Parameter description: Specifies the method for forcibly updating WAL data to disks when fsync is enabled.

If fsync is set to off, the setting of this parameter does not take effect because data updates will not be forcibly written to disks.

Parameter type: enumerated type

Unit: none

Value range:

  • open_datasync: WAL files are opened with the O_DSYNC option.
  • fdatasync: fdatasync() is called at each commit (SUSE 10 and SUSE 11 are supported).
  • fsync_writethrough: fsync() is called at each commit to force data in the buffer to be written to disks.
  • fsync: fsync() is called at each commit. (SUSE 10 and SUSE 11 are supported.)
  • open_sync: open() with the O_SYNC option is used to write WAL files (SUSE 10 and SUSE 11 are supported).

    Not all platforms support the preceding parameters.

    wal_sync_method can be set to fsync_writethrough on a Windows platform, but this setting has the same effect as setting the parameter to fsync on the Windows platform.

    In a centralized environment, if the enable_standby_walsync_optimization parameter is configured and WAL synchronization performance optimization is enabled, WALs on the standby node are written to disks in ADIO mode. The write mode is fixed to PG_O_DIRECT | OPEN_DATASYNC_FLAG, which is not affected by the wal_sync_method parameter. The enable_standby_walsync_optimization parameter affects only the disk writing mode of the standby node in the centralized system. It does not affect the primary node. The enable_standby_walsync_optimization parameter is not supported in distributed deployment.

Default value: fdatasync

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

synchronous_commit

Parameter description: Specifies the synchronization mode of the current transaction. This parameter can be set at the PDB level.

Generally, logs generated by a transaction are synchronized in the following sequence:
  1. The primary node writes the logs to the local memory.
  2. The primary node writes the logs in the local memory to the local file system.
  3. The primary node flushes the logs in the local file system to disks.
  4. The primary node sends the logs to the standby node.
  5. The standby node receives the logs and saves them to the local memory.
  6. The standby node writes the logs in the local memory to the local file system.
  7. The standby node flushes the logs in the local file system to disks.
  8. The standby node replays the logs to complete the incremental update of data files.

Parameter type: enumerated type

Unit: none

Value range:

  • on: The primary node waits for the standby node to flush logs to disks before committing a transaction.
  • off: The primary node commits transactions without waiting for the primary node to flush logs to disks. This mode is also called asynchronous commit.
  • local: The primary node waits for the primary node to flush logs to disks before committing a transaction. This mode is also called local commit.
  • remote_write: The primary node waits for the standby node to write logs to the file system before committing a transaction. (The logs do not need to be flushed to disks.)
  • remote_receive: The primary node waits for the standby node to receive logs before committing a transaction. (The logs do not need to be written to the file system.)
  • remote_apply: The primary node waits for the standby node to complete log replay before committing a transaction.

Default value: on. In the PDB scenario, if this parameter is not set, the global setting is inherited.

Setting method: This is a USERSET parameter. Set it based on instructions provided in Table 1. The synchronous_commit parameter has been taken over by the CM. In normal cases, the automatic copy upgrade function is enabled by default (that is, the CM parameter enable_az_auto_switchover is set to on). In this case, the modification of the synchronous_commit parameter does not take effect. Only multi-AZ scenarios are supported. To modify this parameter, you need to disable the automatic copy upgrade function (that is, set the CM parameter enable_az_auto_switchover to off). In this case, the modification of synchronous_commit takes effect.

Setting suggestion: Retain the default value. If you manually change the value of this parameter to a non-default value, data may be lost and this parameter cannot be put into commercial use.

Risks and impacts of improper settings: This parameter is maintained by the CM. If it is manually modified, data may be lost. For details, see "Unified Database Management Tool > Features > Automatic Copy Addition and Reduction by Shard > Remarks" in Tool Reference.

full_page_writes

Parameter description: Specifies whether the GaussDB server writes the entire content of each disk page to WALs during the first modification of that page after a checkpoint. When both enable_incremental_checkpoint and enable_double_write are enabled, full_page_writes is disabled.

Parameter type: Boolean.

Unit: none

Value range:

  • on: This feature is enabled.
  • off: This feature is disabled.

Default value: on

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

Setting suggestion: Retain the default value. After this feature is enabled, a complete page is written to a disk. During a crash and restart, the page can be correctly restored to ensure data integrity at the cost of increasing the amount of data written to WALs.

Risks and impacts of improper settings: After this feature is disabled, only part of data may be written to the disk page when the OS breaks down. As a result, the original data cannot be restored. This parameter can be disabled only when you have hardware (such as a battery-backed disk controller) or file-system software (such as ReiserFS 4) that reduces the risk of partial page writes to an acceptable low level.

wal_log_hints

Parameter description: Specifies whether to write an entire page to WALs during the first modification of that page after a checkpoint, even for non-critical modifications of so-called hint bits.

Parameter type: Boolean.

Unit: none

Value range:

  • on: The entire page is written to WALs.
  • off: The entire page is not written to WALs.

Default value: on

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Changing the value of this parameter may cause unexpected results in the database. Retain the default value.

wal_buffers

Parameter description: Specifies the size of shared memory for storing WALs, in multiples of XLOG_BLCKSZ or the actual size. XLOG_BLCKSZ indicates the size of an Xlog block, typically 8 KB.

Parameter type: integer.

Unit: 8 KB (XLOG_BLCKSZ size)

Value range: –1 and 4 to 218. The minimum value is –1 and the maximum value is 262144 (multiples of XLOG_BLCKSZ).

  • If this parameter is set to –1, the value of wal_buffers is automatically adjusted based on the value of shared_buffers. The default value of wal_buffers is 1/32 of shared_buffers. The minimum value is XLOG_BLCKSZ multiplied by 8 and the maximum value is XLOG_BLCKSZ multiplied by 2048. If the automatically adjusted value is less than the minimum value, the value is forcibly set to the minimum value. If the value is greater than the maximum value, the value is forcibly set to the maximum value.
  • If this parameter is set to a value smaller than 4 (that is, 0, 1, 2, or 3), the value 4 is forcibly used.

Default value:

1GB (196-core CPU/1536 GB memory, 128-core CPU/1024 GB memory, 104-core CPU/1024 GB memory, 96-core CPU/1024 GB memory, 96-core CPU/768 GB memory, 80-core CPU/640 GB memory, 64-core CPU/512 GB memory, 60-core CPU/480 GB memory, 32-core CPU/256 GB memory); 512MB (16-core CPU/128 GB memory); 256MB (8-core CPU/64 GB memory); 128MB (4-core CPU/32 GB memory); 16MB (4-core CPU/16 GB memory)

Setting method: This is a POSTMASTER parameter. Set it based on instructions provided in Table 1. For example, the value 2048 indicates that wal_buffers is 2048 x 8 KB, and the value 20480kB indicates that wal_buffers is 20480KB. If the value contains a unit, the value must be KB, MB, or GB and must be an integer multiple of 8 KB.

Setting suggestion: The content of the WAL buffer is written to disks at every transaction commit. Therefore, setting an extremely large value is unlikely to bring a significant increase in system performance. However, setting this parameter to a few megabytes can improve the disk write performance on a server where a large number of transactions are committed at the same time. The default value meets user requirements in most cases. You are advised to retain it. Do not set wal_buffers to an excessively large or small value, and the following condition must be true: data_replicate_buffer_size + segment_buffers + shared_buffers + wal_buffers + temp_buffers + maintenance_work_mem + work_mem + query_mem + (Standby node) wal_receiver_buffer_size < max_process_memory < Memory size of the physical machine. If the value of the memory parameter is too large and exceeds the upper limit of the physical memory, the database fails to be started because no sufficient memory can be allocated.

Risks and impacts of improper settings: The default value is the recommended value. You are advised not to change it. Before changing the values, check the specifications of the parameters and ensure that the hardware resources are sufficient. Otherwise, the database may be abnormal.

wal_writer_delay

Parameter description: Specifies the delay between activity rounds for the WAL writer.

Parameter type: integer.

Unit: ms

Value range: 1 to 10000

Default value: 200ms

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: If time is too long, the memory of the WAL buffer may be insufficient. If time is too short, WALs are continuously written, increasing the disk I/O load.

commit_delay

Parameter description: Specifies the duration for committed data to be stored in the WAL buffer. This parameter can be set at the PDB level.

  • When this parameter is set to a non-zero value, the committed transaction is stored in the WAL buffer instead of being written to the WAL immediately. Then the WAL writer flushes the buffer to disks periodically.
  • If system load is high, other transactions are probably ready to be committed within the delay. However, if no transaction is ready to be committed, this delay may cause unnecessary waiting.

Parameter type: integer.

Unit: μs

Value range: 0 to 100000. 0 indicates no delay.

Default value: 0. In the PDB scenario, if this parameter is not set, the global setting is inherited.

Setting method: This is a USERSET parameter. Set it based on instructions provided in Table 1. The value cannot contain a unit.

Setting suggestion: For details, see the notice.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

commit_siblings

Parameter description: Specifies a threshold on the number of concurrent transactions when a transaction initiates a commit request. If the number of concurrent transactions is greater than the value of this parameter, the transaction will wait for a period of time specified by commit_delay. Otherwise, this transaction is written into WALs immediately. This parameter can be set at the PDB level.

Parameter type: integer.

Unit: none

Value range: 0 to 1000

Default Value: 5. In the PDB scenario, if this parameter is not set, the global setting is inherited.

Setting method: This is a USERSET parameter. Set it based on instructions provided in Table 1.

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

wal_block_size

Parameter description: Specifies the size of a WAL disk block.

Parameter type: integer.

Unit: byte

Value range: 8192

Default value: 8192

Setting method: This is a fixed INTERNAL parameter. It can be viewed but cannot be modified.

Setting suggestion: This parameter can only be viewed.

Risks and impacts of improper settings: none

wal_segment_size

Parameter description: Specifies the size of a WAL segment file. It can be specified by the multiples of XLOG_BLCKSZ or the actual size. XLOG_BLCKSZ indicates the size of an Xlog block, typically 8 KB.

Parameter type: integer.

Unit: 8 KB

Value range: 2048 (16 MB)

Default value: 16MB (2048 x 8 KB)

Setting method: This is a fixed INTERNAL parameter. It can be viewed but cannot be modified.

Setting suggestion: This parameter can only be viewed.

Risks and impacts of improper settings: none

walwriter_cpu_bind

Parameter description: Binds the WAL writer thread to a specified CPU core.

Parameter type: integer.

Unit: none

Value range: –1 to the number of cores minus 1. CPU cores are numbered starting from 0.

  • –1: CPU core binding is not performed.
  • N: The WAL writer thread is bound to CPU core N.

Default value: –1

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

wal_sender_bind_cpu_attr

Parameter description: Specifies the core binding operation of the log sender thread. Only the SYSADMIN user can access this parameter.

Parameter type: string.

Unit: none

Value range: a value of more than 0 characters. The value is case-insensitive.

  • 'nobind': The thread is not bound to a core.
  • 'cpuorderbind: 8-12': One thread is bound to one core starting from core 8. If the number of cores in the range is insufficient, the remaining threads are not bound. You are advised to set the interval to a value greater than or equal to the value of max_wal_senders.

Default value: 'nobind'

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

walwriteraux_bind_cpu

Parameter description: Specifies the CPU core bound to the auxiliary log writer thread.

Parameter type: integer.

Unit: none

Value range: –1 to 2147483647. CPU cores are numbered starting from 0.

  • –1: CPU core binding is not performed.
  • N: The auxiliary log writing thread is bound to CPU core N.

Default value: –1

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

Setting suggestion: Retain the default value. Although the maximum value is INT_MAX, the actual value is related to the number of used device cores. The maximum value cannot exceed the number of cores minus 1.

Risks and impacts of improper settings: If this parameter is set to a value greater than the number of cores minus 1, the database cannot be started.

walwriter_sleep_threshold

Parameter description: Specifies the number of times that idle Xlogs are refreshed before the Xlog flusher enters the sleep state. If the number of times reaches the threshold, the Xlog flusher enters the sleep state.

Parameter type: integer.

Unit: none

Value range: 1 to 50000

Default value: 50

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

wal_file_init_num

Parameter description: Specifies the number of Xlog segment files created at a time when the WAL writer auxiliary thread is started.

Parameter type: integer.

Unit: none

Value range: 1 to 1000000

Default value: 10 (196-core CPU/1536 GB memory, 128-core CPU/1024 GB memory, 104-core CPU/1024 GB memory, 96-core CPU/1024 GB memory, 96-core CPU/768 GB memory, 80-core CPU/640 GB memory, 64-core CPU/512 GB memory, 60-core CPU/480 GB memory); 0 (32-core CPU/256 GB memory, 16-core CPU/128 GB memory, 8-core CPU/64 GB memory, 4-core CPU/32 GB memory, 4-core CPU/16 GB memory)

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: If the value is too large, too much disk space (wal_file_init_num x wal_segment_size) will be occupied.

wal_file_preinit_bounds

Parameter description: Specifies the maximum number of empty WAL segment files that can be pre-generated by the WAL writer auxiliary thread per second during service running. The WAL segment file size is 16 MB. If this parameter is set to 0, there is no restriction.

Parameter type: integer

Unit: none

Value range: 0 to 1024

Default value: 0

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

Setting suggestion: Retain the default value. Set this parameter to a valid value based on the disk I/O capability. For details, see the value of max_io_capacity.

  • If max_io_capacity is set to 500MB, set this parameter to 25.
  • If max_io_capacity is set to 1GB, set this parameter to 50.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

xlog_file_path

Parameter description: Specifies the path of the Xlog shared disk in dual-database instance shared storage scenarios. This parameter is configured by the OM during database system initialization. You are advised not to modify the configuration.

Parameter type: string.

Unit: none

Value range: a string.

Default value: NULL

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

Setting suggestion: This parameter is set during installation. You are advised not to change the value.

Risks and impacts of improper settings: The database cannot be started.

xlog_file_size

Parameter description: Specifies the size of the Xlog shared disk in dual-database instance shared storage scenarios. This parameter is configured by the OM during database system initialization. You are advised not to modify the configuration.

Parameter type: integer.

Unit: byte

Value range: 134217728 to 576460752303423487

Default value: 549755813888

Setting method: This is a POSTMASTER parameter. Set it based on instructions provided in Table 1. The value cannot contain a unit.

Setting suggestion: This parameter is set during installation. You are advised not to change the value.

Risks and impacts of improper settings: Changing the value of this parameter may cause unexpected results in the database. Retain the default value.

xlog_lock_file_path

Parameter description: Specifies the path of the lock file preempted by the Xlog shared disk in dual-database instance shared storage scenarios. This parameter is configured by the OM during database system initialization. You are advised not to modify the configuration.

Parameter type: string.

Unit: none

Value range: a string.

Default value: NULL

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

Setting suggestion: This parameter is set during installation. You are advised not to change the value.

Risks and impacts of improper settings: The database cannot be started.

max_size_for_shared_storage_xlog_write

Parameter description: Specifies the maximum amount of data that can be written to a shared disk at a time.

Parameter type: integer.

Unit: KB

Value range: 8 to 131072

Default value: 1024

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

Setting suggestion: This parameter is set during installation. You are advised not to change the value.

Risks and impacts of improper settings: Changing the value of this parameter may cause unexpected results in the database. Retain the default value.

shared_storage_write_mode

Parameter description: Specifies the maximum Xlog writeable position of the primary cluster in shared storage mode.

Parameter type: enumerated type

Unit: none

Value range:

  • none: No limit.
  • standby: maximum local Xlog LSN of the connected standby node in the cluster plus the value of xlog_file_size (size of the Xlog shared disk in dual-database instance shared storage scenarios).
  • disaster_standby: maximum local LSN of the standby node connected to the standby node in the standby cluster plus the value of xlog_file_size.
  • disaster_standby_strict: maximum local LSN of the standby node in the standby cluster plus the value of xlog_file_size. (Different from disaster_standby, data is not overwritten even if the data plane network between the primary and standby clusters is isolated.)
  • standby_and_disaster_standby: smaller value between the maximum local LSNs of the connected standby nodes in the cluster the connected standby nodes in the standby cluster for DR plus the value of xlog_file_size.

Default value: disaster_standby

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: Modifying this parameter may cause the standby cluster to be rebuilt. You are advised not to manually modify this parameter.

enable_shared_storage_optimization

Parameter description: Specifies whether to enable performance optimization in shared storage mode.

Parameter type: Boolean.

Unit: none

Value range:

  • on: enables performance optimization in shared storage mode.
  • off: disables performance optimization in shared storage mode.

Default value: on. If an earlier version is upgraded to the current version, the default value is off.

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

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: If this parameter is disabled, the performance of shared storage in low-concurrency scenarios will be affected.

After the enable_shared_storage_optimization and enable_standby_walsync_optimization parameters are enabled on the Kunpeng 2-socket/4-socket servers, the sysbench benchmark test verifies that the INSERT or UPDATE operation can improve the throughput by 30% when 256 concurrent threads are used.

force_promote

Parameter description: Specifies whether to enable the forcible switchover function on the standby node.

When a database instance is faulty, the forcible switchover enables the database instance to recover services as soon as possible at the cost of losing some data. This is an escape method used when the database instance is unavailable. You are advised not to trigger this method frequently. You are advised not to use this function if you are not clear about the impact of data loss on services.

Parameter type: integer.

Unit: none

Value range:

  • 0: disabled.
  • 1: enabled.

Default value: 0

Setting method: This is a POSTMASTER parameter. Set it based on instructions provided in Table 1. To use the forcible standby node switchover function, enable this parameter for both DNs and CM Servers. The setting takes effect after the database is restarted.

Setting suggestion: Do not enable this parameter.

Risks and impacts of improper settings: After this function is enabled, some data will be lost if a forcible switchover is triggered.

wal_debug

Parameter description: Specifies whether to output WAL-related debugging information. This parameter is available only when WAL_DEBUG is enabled during compilation.

Parameter type: Boolean.

Unit: none

Value range:

  • on: WAL-related debugging information can be output.
  • off: WAL-related debugging information cannot be output.

Default value: off

Setting method: This is a SUSET parameter. Set it based on instructions provided in Table 1.

Setting suggestion: This parameter is used for debugging. You are advised not to enable this parameter in the production environment.

Risks and impacts of improper settings: Change the parameter value after fully understanding the parameter meaning and verifying it through testing.

wal_flush_timeout

Parameter description: Specifies the timeout interval for traversing walInsertStatusTable. It is the maximum wait time for the adaptive Xlog disk flushing I/O to traverse walInsertStatusTable.

Parameter type: integer.

Unit: μs

Value range: 0 to 90000000

Default value:

2 (196-core CPU/1536 GB memory, 128-core CPU/1024 GB memory, 104-core CPU/1024 GB memory, 96-core CPU/1024 GB memory, 96-core CPU/768 GB memory, 80-core CPU/640 GB memory, 64-core CPU/512 GB memory, 60-core CPU/480 GB memory, 32-core CPU/256 GB memory, 16-core CPU/128 GB memory, 8-core CPU/64 GB memory, 4-core CPU/32 GB memory); 800 (4-core CPU/16 GB memory)

Setting method: This is a SIGHUP parameter. Set it based on instructions provided in Table 1. The value cannot contain a unit.

Setting suggestion: Retain the default value.

Risks and impacts of improper settings: If the value is too large, the Xlog flushing frequency may decrease and the Xlog processing performance may deteriorate.

wal_receiver_bind_cpu

Parameter description: Specifies the CPU core ID bound to the WAL receiver thread. Multiple threads can be bound to one core, but the performance may deteriorate. Therefore, you are advised not to bind multiple threads to one core.

Parameter type: integer.

Unit: none

Value range: –1 to 2147483647. CPU cores are numbered starting from 0.

  • –1: CPU core binding is not performed.
  • N: The WAL receiver thread is bound to CPU core N.

Default value: –1

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

Setting suggestion: Retain the default value. Although the maximum value is INT_MAX, the actual value is related to the number of used device cores. The maximum value cannot exceed the number of cores minus 1.

Risks and impacts of improper settings: If this parameter is set to a value greater than the number of cores minus 1, the database cannot be started.

wal_rec_writer_bind_cpu

Parameter description: Specifies the CPU core ID bound to the WAL receiver writer thread. Multiple threads can be bound to one core, but the performance may deteriorate. Therefore, you are advised not to bind multiple threads to one core.

Parameter type: integer.

Unit: none

Value range: –1 to 2147483647. CPU cores are numbered starting from 0.

  • –1: CPU core binding is not performed.
  • N: The WAL receiver writer thread is bound to CPU core N.

Default value: –1

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

Setting suggestion: Retain the default value. Although the maximum value is INT_MAX, the actual value is related to the number of used device cores. The maximum value cannot exceed the number of cores minus 1.

Risks and impacts of improper settings: If this parameter is set to a value greater than the number of cores minus 1, the database cannot be started.