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

Archiving

archive_mode

Parameter description: Specifies whether to archive WALs.

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

When wal_level is set to minimal, the archive_mode parameter is unavailable.

Value range: Boolean

  • on indicates that the archiving is enabled.
  • off indicates that the archiving is disabled.

Default value: off

archive_command

Parameter description: Specifies the command set by the administrator to archive WALs. You are advised to set the archive log path to an absolute path.

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

  • If both archive_dest and archive_command are configured, WALs are preferentially saved to the directory specified by archive_dest. The command configured by archive_command does not take effect.
  • Any %p in the string is replaced by the absolute path of the file to archive, and any %f is replaced by only the file name. (The relative path is relative to the data directory.) Use %% to embed an actual % character in the command.
  • This command returns zero only if it succeeds. The command example is as follows:
    1
    archive_command = 'cp --remove-destination %p /mnt/server/archivedir/%f' 
    
  • --remove-destination indicates that files will be overwritten during the archiving.
  • If there are multiple archive commands, write them to the shell script file and set archive_command to the command for executing the script. Example:
    -- Assume that multiple commands are as follows:
    test ! -f dir/%f && cp %p dir/%f
    -- The content of the test.sh script is as follows:
    test ! -f dir/$2 && cp $1 dir/$2 
    -- The archive command is as follows:
    archive_command='sh dir/test.sh %p %f'

Value range: a string

Default value: (disabled)

archive_dest

Parameter description: Specifies the path set by the administrator to archive WALs. You are advised to set the archive log path to an absolute path.

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

  • If both archive_dest and archive_command are configured, WALs are preferentially saved to the directory specified by archive_dest. The command configured by archive_command does not take effect.
  • If the string is a relative path, it is relative to the data directory. Example:
    1
    archive_dest = '/mnt/server/archivedir/'
    

Value range: a string

Default value: empty

archive_timeout

Parameter description: Specifies the archiving period.

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

  • The server is forced to switch to a new WAL segment file when the period specified by this parameter has elapsed since the last file switch.
  • Archived files that are closed early due to a forced switch are still of the same length as full files. Therefore, a very short archive_timeout will bloat the archive storage. You are advised to set archive_timeout to 60s.

Value range: an integer ranging from 0 to 1073741823. The unit is second. The value 0 indicates that the function is disabled.

Default value: 0

archive_interval

Parameter description: Specifies the archiving interval.

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

  • Log files are forcibly archived when the period specified by this parameter has elapsed.
  • Archiving involves I/O operations. Therefore, frequent archiving is not allowed. In addition, the RPO cannot be set to a large value; otherwise, the PITR will be affected. You are advised to use the default value.

Value range: an integer ranging from 1 to 1000. The unit is second.

Default value: 1

time_to_target_rpo

Parameter description: Specifies the maximum time_to_target_rpo seconds from the time when an exception occurs on the primary cluster to the time when data is archived to the OBS recovery point in dual-cluster remote DR mode.

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

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

In dual-cluster remote DR mode, logs of the primary cluster are archived to OBS. 0 indicates that log flow control is disabled. 1 to 3600 indicates the maximum time_to_target_rpo seconds from the time when an exception occurs on the primary cluster to the time when data is archived to the recovery point of OBS. This ensures that the maximum duration of data loss is within the allowed range when the primary cluster breaks down due to a disaster. If this parameter is set to a small value, the performance of the primary server is affected. If it is set to a large value, the log flow is not effectively controlled.

Default value: 10