设置

    该参数属于POSTMASTER类型参数,请参考中对应设置方法进行设置。

    取值范围:枚举类型

    • minimal

      优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。

      缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。

    • archive

      这个参数增加了WAL归档需要的日志信息,从而可以支持数据库的归档恢复。

    • hot_standby

      • 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。
      • 为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。
    • logical

      这个参数表示WAL日志支持逻辑复制。

    **默认值:**hot_standby

    fsync

    **参数说明:**设置openGauss服务器是否使用fsync()系统函数(请参见)确保数据的更新及时写入物理磁盘中。

    该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

    须知:

    • 使用fsync()系统函数可以保证在操作系统或者硬件崩溃的情况下将数据恢复到一个已知的状态。
    • 如果将此参数关闭,可能会在系统崩溃时无法恢复原来的数据,导致数据库不可用。

    **取值范围:**布尔型

    • on表示使用fsync()系统函数。
    • off表示不使用fsync()系统函数。

    **默认值:**on

    synchronous_commit

    **参数说明:**设置当前事务的同步方式。

    该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

    通常情况下,一个事务产生的日志的同步顺序如下:

    1. 主机将日志内容写入本地内存。
    2. 主机将本地内存中的日志写入本地文件系统。
    3. 主机将本地文件系统中的日志内容刷盘。
    4. 主机将日志内容发送给备机。
    5. 备机接受到日志内容,存入备机内存。
    6. 备机将备机内存中的日志写入备机文件系统。
    7. 备机将备机文件系统中的日志内容刷盘。
    8. 备机回放日志,完成对数据文件的增量更新。

    取值范围:枚举类型

    • on(true, yes, 1):表示主机事务提交需要等待备机将对应日志刷新到磁盘。
    • off(false, no, 0):表示主机事务提交无需等待主机自身将对应日志刷新到磁盘,通常也称为异步提交。
    • local:表示主机事务提交需要等待主机自身将对应日志刷新到磁盘,通常也称为本地提交。
    • remote_write:表示主机事务提交需要等待备机将对应日志写到文件系统(无需刷新到磁盘)。
    • remote_apply:表示主机事务提交需要等待备机完成对应日志的回放操作。
    • true:同on。
    • false:同off。
    • yes:同on。
    • no:同off。
    • 1:同on。
    • 0:同off。
    • 2:同remote_apply。

    设置 - 图3 说明:

    synchronous_commit为off或local,并不等价于同步状态为async,而是与synchronous_standby_names的值有关,当synchronous_standby_names为空时同步状态为async

    **默认值:**on

    wal_sync_method

    **参数说明:**设置向磁盘强制更新WAL数据的方法。

    该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

    取值范围:枚举类型

    • open_datasync表示用带O_DSYNC选项的open()打开“WAL”文件。

    • fdatasync表示每次提交的时候都调用fdatasync()(支持suse10和suse11)。

    • fsync_writethrough表示每次提交的时候调用fsync()强制把缓冲区任何数据写入磁盘。

      说明:

      由于历史原因,Windows平台支持将wal_sync_method设置为fsync_writethrough。在windows平台上fsync_writethrough和fsync等效。

    • fsync表示每次提交的时候调用fsync()(支持suse10和suse11)。

    • open_sync表示用带O_SYNC选项的open()写“WAL”文件(支持suse10和suse11)。

      设置 - 图6 说明:

      不是所有的平台都支持以上参数。

    **默认值:**fdatasync

    full_page_writes

    该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

    **取值范围:**布尔型

    • on表示启用此特性。
    • off表示关闭此特性。

    **默认值:**on

    wal_log_hints

    **参数说明:**设置在检查点之后对页面的第一次修改为页面上元组hint bits的修改时,是否将整个页面的全部内容写到WAL日志中。不推荐用户修改此设置。

    该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

    **取值范围:**布尔型

    • on表示整个页面全部内容写到WAL日志中。
    • off表示整个页面内容不会写到WAL日志中。

    **默认值:**on

    wal_buffers

    **参数说明:**设置用于存放WAL数据的共享内存空间的XLOG_BLCKSZ数,XLOG_BLCKSZ的大小默认为8KB。

    该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

    取值范围:-1~218,最小值为-1,最大值为262144,单位为8KB。

    • 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整,为shared_buffers的1/64,最小值为8个XLOG_BLCKSZ,最大值为2048个XLOG_BLCKSZ,自动调整后的值小于最小值时会调整为最小值,大于最大值时会调整为最大值。
    • 如果设置为其他值,当小于4时,会被默认设置为4。

    **默认值:**2048(即16MB)

    **设置建议:**每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。

    **参数说明:**WalWriter进程的写间隔时间。

    该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

    须知:

    如果时间过长可能造成WAL缓冲区的内存不足,时间过短会引起WAL不断写入,增加磁盘I/O负担。

    取值范围:整型, 1~10000(毫秒)

    **默认值:**200ms

    commit_delay

    **参数说明:**表示一个已经提交的数据在WAL缓冲区中存放的时间。

    该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

    设置 - 图9 须知:

    • 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。
    • 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。

    取值范围:整型, 0~100000(微秒),其中0表示无延迟。

    **默认值:**0

    commit_siblings

    **参数说明:**当一个事务发出提交请求时,如果数据库中正在执行的事务数量大于此参数的值,则该事务将等待一段时间(commit_delay的值),否则该事务则直接写入WAL。

    该参数属于USERSET类型参数,请参考中对应设置方法进行设置。

    取值范围:整型, 0~1000

    **默认值:**5

    wal_block_size

    **参数说明:**说明WAL日志段文件中日志页面的大小。

    该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。

    取值范围:整型,单位为Byte。

    **默认值:**8192

    wal_segment_size

    **参数说明:**说明WAL日志段文件的大小。

    该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。

    取值范围:整型,单位为8KB。

    **默认值:**16MB (2048 * 8KB)

    walwriter_cpu_bind

    **参数说明:**绑定到WAL写入线程的CPU核,与thread pool配合使用。

    该参数属于POSTMASTER类型参数,请参考中对应设置方法进行设置。

    取值范围:整型,-1~核数减1。

    walwriter_sleep_threshold

    **参数说明:**xlogflusher进入sleep之前空闲xlog刷新的次数,达到阈值会休眠。

    该参数属于SIGHUP类型参数,请参考中对应设置方法进行设置。

    取值范围:整型,1-50000。

    默认值:500

    **参数说明:**WAL编写器将创建的xlog段文件的数量。

    该参数属于POSTMASTER类型参数,请参考中对应设置方法进行设置。

    取值范围:整型,0~1000000。

    默认值:10

    xlog_file_path

    **参数说明:**双数据库实例共享存储场景下,xlog日志共享盘的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。

    该参数属于POSTMASTER类型参数,请参考中对应设置方法进行设置。

    取值范围:字符串。

    **默认值:**NULL

    xlog_file_size

    **参数说明:**双数据库实例共享存储场景下,xlog日志共享盘的大小。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。

    该参数属于POSTMASTER类型参数,请参考中对应设置方法进行设置。

    取值范围:长整型,5053733504~576460752303423487,单位是字节。

    **默认值:**549755813888

    xlog_lock_file_path

    **参数说明:**双数据库实例共享存储场景下,xlog日志共享盘抢占的锁文件的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。

    该参数属于POSTMASTER类型参数,请参考中对应设置方法进行设置。

    取值范围:字符串。

    默认值:NULL

    force_promote

    **参考说明:**备机强切功能开关。

    备机强切在集群故障状态下,以丢失部分数据为代价换取集群尽可能快的恢复服务;是集群状态为不可用时的一个逃生方法,不建议频繁触发。如果操作者不清楚备机强切后丢失数据对业务的影响,请勿使用本功能。

    **取值范围:**整型,0或1

    0表示关闭,1表示开启

    **默认值:**0

    wal_flush_timeout

    **参数说明:**遍历WalInsertStatusEntryTbl的超时时间。Xlog刷盘自适应控制的刷盘IO遍历WalInsertStatusEntryTbl等待的最大时间。

    该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

    取值范围:整型, 0 ~ 90000000(微秒)

    **默认值:**800us

    wal_flush_delay

    **参数说明:**遍历WalInsertStatusEntryTbl时,遇到WAL_NOT_COPIED状态entry时等待的时间间隔。

    该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

    取值范围:整型, 0 ~ 90000000(微秒)

    **默认值:**100us

    **参数说明:**设置事务是否自动提交,仅在B兼容模式下能够修改为false。

    该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

    取值范围:布尔型

    • off表示关闭事务自动提交。

    **默认值:**on