设置
wal_level
参数说明:设置写入WAL信息量的级别,不能为空或被注释掉。
参数类型:枚举类型
参数单位:无
取值范围:
- minimal
优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。
缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。
- archive
- hot_standby
- 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。
- 为了在备机上开启只读查询,wal_level的级别必须在主机上设置成大于或者等于hot_standby级别,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能差异很小。
- logical
默认值:hot_standby
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:开启逻辑复制功能时设置为logical,其他场景设置为hot_standby。参数级别满足优先级logical > hot_standby > archive > minimal。
- 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive、hot_standby或者logical。
- 如果该参数设置为archive或minimal,则hot_standby参数必须设置为off。在分布式环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。因此不建议该参数设置为archive或minimal,否则数据库将无法启动。
设置不当的风险与影响:当备机读开启时,设置级别小于hot_standby,会导致节点无法启动。
fsync
参数说明:设置GaussDB服务器是否使用fsync()系统函数确保数据的更新及时写入物理磁盘中(fsync()系统函数实现的种类,请参见参数wal_sync_method)。
- 使用fsync()系统函数可以保证在操作系统或者硬件崩溃的情况下将数据恢复到一个已知的状态。
- 如果将此参数关闭,可能会在系统崩溃时无法恢复原来的数据,导致数据库不可用。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示使用fsync()系统函数。
- off:表示不使用fsync()系统函数。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
wal_sync_method
参数说明:参数fsync开启的前提情况下,设置向磁盘强制更新WAL数据的方法。
如果参数fsync关闭,这个参数的设置就没有意义,因为所有数据更新都不会强制写入磁盘。
参数类型:枚举类型
参数单位:无
取值范围:
- open_datasync:表示用带O_DSYNC选项的open()打开“WAL”文件。
- fdatasync:表示每次提交的时候都调用fdatasync()(支持suse10和suse11)。
- fsync_writethrough:表示每次提交的时候调用fsync()强制把缓冲区任何数据写入磁盘。
- fsync:表示每次提交的时候调用fsync()(支持suse10和suse11)。
- open_sync:表示用带O_SYNC选项的open()写“WAL”文件(支持suse10和suse11)。
不是所有的平台都支持以上参数。
由于历史原因,Windows平台支持将wal_sync_method设置为fsync_writethrough。在windows平台上fsync_writethrough和fsync等效。
默认值:fdatasync
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
synchronous_commit
参数说明:设置当前事务的同步方式。
- 主机将日志内容写入本地内存。
- 主机将本地内存中的日志写入本地文件系统。
- 主机将本地文件系统中的日志内容刷盘。
- 主机将日志内容发送给备机。
- 备机接收到日志内容,存入备机内存。
- 备机将备机内存中的日志写入备机文件系统。
- 备机将备机文件系统中的日志内容刷盘。
- 备机回放日志,完成对数据文件的增量更新。
参数类型:枚举类型
参数单位:无
取值范围:
- on:表示主机事务提交需要等待备机将对应日志刷新到磁盘。
- off:表示主机事务提交无需等待主机自身将对应日志刷新到磁盘,通常也称为异步提交。
- local:表示主机事务提交需要等待主机自身将对应日志刷新到磁盘,通常也称为本地提交。
- remote_write:表示主机事务提交需要等待备机将对应日志写到文件系统(无需刷新到磁盘)。
- remote_receive:表示主机事务提交需要等待备机接收到对应日志数据(无需写入文件系统)。
- remote_apply:表示主机事务提交需要等待备机完成对应日志的回放操作。
默认值:on
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。synchronous_commit参数已被CM接管,正常情况是默认开启自动升降副本功能(即CM参数enable_az_auto_switchover为on),此时修改synchronous_commit参数不能生效,只支持多AZ场景。如要修改此参数,则需关闭自动升降副本功能(即CM参数enable_az_auto_switchover为off),此时修改synchronous_commit参数才能生效。
设置建议:不建议进行修改。如果手动修改该参数为非默认值,则存在丢失数据的风险,不具备商用能力。
设置不当的风险与影响:该参数由CM维护,如果手动修改,则存在丢失数据的风险。请参见《工具参考》的“统一集群管理工具 > 特性介绍 > 按分片自动升降副本 > 备注说明 ”。
full_page_writes
参数说明:设置GaussDB服务器在检查点之后对页面的第一次修改时,是否将每个磁盘页面的全部内容写到WAL日志中。当enable_incremental_checkpoint和enable_double_write同时打开时,则不开启full_page_writes。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示启用此特性。
- off:表示关闭此特性。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。启用此特性后,完整的页面写到磁盘,会在崩溃重启过程中,保证页面被正确还原进而确保数据完整,代价是增加了写入WAL日志的数据量。
设置不当的风险与影响:关闭此特性后,由于操作系统崩溃过程中可能出现磁盘页面只写入了一部分内容的现象,从而导致无法恢复原来的数据。如果服务器硬件的特质(比如电池供电的磁盘控制器)可以减小部分页面的写入风险,或者文件系统特性支持(比如ReiserFS 4),并且用户清楚知道写入风险在可接受的范畴,才可以关闭这个参数。
wal_log_hints
参数说明:在检查点之后,如果对页面的第一次修改是对页面上元组hint bits的修改时,是否将整个页面的全部内容写到WAL日志中。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示整个页面全部内容写到WAL日志中。
- off:表示整个页面内容不会写到WAL日志中。
默认值:on
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:不推荐用户修改此设置。
设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。
wal_buffers
参数说明:设置用于存放WAL数据的共享内存空间的大小,可以以XLOG_BLCKSZ数量表示,同时也可以以实际的大小表示。XLOG_BLCKSZ是XLOG块的大小,一般默认为8kB。
参数类型:整型
参数单位:8kB(XLOG_BLCKSZ)
取值范围:-1、4~218。最小值为-1,最大值为262144(XLOG_BLCKSZ数量)。
- 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整。wal_buffers默认为shared_buffers的1/32,最小值为8个XLOG_BLCKSZ,最大值为2048个XLOG_BLCKSZ,自动调整后的值小于最小值时会被强制设置为最小值,大于最大值时会被强制设置为最大值。
- 如果设置为其他值,当小于4时(0、1、2、3),会被强制设置为4。
- 独立部署:1GB(60核CPU/480G内存,32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存);64MB(4核CPU/16G内存)
- 金融版(标准型):
CN:512MB(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存);256MB(72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存);128MB(32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存)
DN:2GB(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存);1GB(80核CPU/640G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存),512MB(16核CPU/128G内存);256MB(8核CPU/64G内存)
- 企业版:
CN:512MB(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存);256MB(72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存);128MB(32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存)
DN:1GB(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,80核CPU/512G内存,72核CPU/576G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存)
- 金融版(数据计算型):
CN:256MB(196核CPU/1536G内存,128核CPU/1024G内存,96核CPU/768G内存);125MB(72核CPU/576G内存,64核CPU/512G内存);64MB(32核CPU/256G内存)
DN:1GB(196核CPU/1536G内存,128核CPU/1024G内存,96核CPU/768G内存,72核CPU/576G内存,64核CPU/512G内存);512MB(32核CPU/256G内存)
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。例如,取值2048表示wal_buffers为2048* 8kB;取值20480kB表示wal_buffers为20480kB。取值如果要带单位,必须为kB、MB、GB,且必须设置为8kB整数倍。
设置建议:每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验,默认值可以满足大多数的情况,对应不同规格,请按照对应建议的默认值设置,不建议修改。避免设置明显不合理(过大或过小)的wal_buffers值,应满足条件:data_replicate_buffer_size + segment_buffers + shared_buffers + wal_buffers+ temp_buffers + maintenance_work_mem + work_mem + query_mem + (备机)wal_receiver_buffer_size < max_process_memory < 物理机内存大小。如果设置的内存参数数值过大,超过物理内存上限,将会导致数据库由于无法申请到足够的内存而启动失败的情况。
设置不当的风险与影响:默认值即推荐值,不建议修改。修改必须详细确认参数的规格限制,并考虑硬件资源是否足够,否则可能导致集群异常。
wal_writer_delay
参数说明:WalWriter线程的写间隔时间。
参数类型:整型
参数单位:ms(毫秒)
取值范围:1~10000
默认值:200ms
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:时间过长可能造成WAL缓冲区的内存不足;时间过短会引起WAL不断写入,增加磁盘I/O负担。
commit_delay
参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。
- 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter线程周期性写入磁盘。
- 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟可能会造成不必要的等待。
参数类型:整型
参数单位:us(微秒)
取值范围:0~100000,其中0表示无延迟。
默认值:0
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。
设置建议:参考须知。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
commit_siblings
参数说明:当一个事务发出提交请求时,如果数据库中正在执行的事务数量大于此参数的值,则该事务将等待一段时间(commit_delay的值),否则该事务则直接写入WAL。
参数类型:整型
参数单位:无
取值范围:0~1000
默认值:5
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
wal_block_size
参数说明:表示WAL日志段文件中日志页面的大小。
参数类型:整型
参数单位:Byte
取值范围:8192
默认值:8192
设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。
设置建议:该参数不允许用户进行设置,只能查看。
设置不当的风险与影响:无
wal_segment_size
参数说明:表示WAL日志段文件的大小。可以XLOG_BLCKSZ数量表示,同时也可以实际的大小表示。XLOG_BLCKSZ是XLOG块的大小,一般默认为8kB。
参数类型:整型
参数单位:8kB
取值范围:2048(即16MB)
默认值:16MB(2048 * 8kB)
设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。
设置建议:该参数不允许用户进行设置,只能查看。
设置不当的风险与影响:无
force_promote
参数说明:备机强切功能开关。
备机强切在集群故障状态下,以丢失部分数据为代价换取集群尽可能快地恢复服务;是集群状态为不可用时的一个逃生方法,不建议频繁触发。如果操作者不清楚备机强切后丢失数据对业务的影响,请勿使用本功能。
参数类型:整型
参数单位:无
取值范围:
- 0:表示关闭。
- 1:表示开启。
默认值:0
设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。使用备机强切功能时,DN和cmserver都需要将此参数设置为开启,重启数据库后生效。
设置建议:不推荐开启此参数。
设置不当的风险与影响:开启后,触发强切会导致丢失部分数据。
wal_file_init_num
参数说明:WAL writer辅助线程启动时在主机上一次创建xlog段文件的数量。
参数类型:整型
参数单位:无
取值范围:1~1000000
默认值:10
设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过大,会占用过多的磁盘空间,占用量为 wal_file_init_num * wal_segment_size。
wal_file_preinit_bounds
参数说明:业务运行时,WAL writer辅助线程每秒可预扩的WAL日志段文件的数量限制(WAL日志段文件的大小为16MB)。当该参数值为0时,表示不进行限制。
参数类型:整型
参数单位:无
取值范围:0~1024
默认值:0
设置方式:该参数属于SIGHUP类型参数,请参考表表1中对应设置方法进行设置。
设置建议:推荐设置为默认值,不做调整。当把该参数设置为有效值时,需基于磁盘I/O能力进行设置,可参考参数max_io_capacity的数值进行设置。
- 若max_io_capacity为500MB,可设置为25;
- 若max_io_capacity为1GB,可设置为50。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
wal_debug
参数说明:允许输出wal相关的调试信息。仅在编译时开启WAL_DEBUG编译宏时可用。
参数类型:布尔型
参数单位:无
取值范围:
- true:表示允许输出wal相关的调试信息。
- false:表示不允许输出wal相关的调试信息。
默认值:false
设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:调试时使用的参数,不建议生产环境开启。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
walwriter_sleep_threshold
参数说明:xlogflusher进入休眠之前空闲xlog刷新的次数,达到阈值会休眠。
参数类型:整型
参数单位:无
取值范围:1~50000
默认值:500
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
wal_flush_timeout
参数说明:遍历walInsertStatusTable的超时时间。xlog刷盘自适应控制的刷盘I/O遍历walInsertStatusTable等待的最大时间。
参数类型:整型
参数单位:us(微秒)
取值范围: 0 ~ 90000000
默认值:2
设置方式:该参数属于SIGHUP类型参数,请参考表表1中对应设置方法进行设置。取值不能带单位。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置值过大可能造成xlog刷盘频率降低,降低xlog处理性能。
xlog_file_path
参数说明:双集群共享存储场景下,xlog日志共享盘的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:NULL
设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。
设置建议:安装时会进行设定,不建议用户修改此配置。
设置不当的风险与影响:设置不当会使数据库无法启动。
xlog_file_size
参数说明:双集群共享存储场景下,xlog日志共享盘的大小。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。
参数类型:整型
参数单位:Byte
取值范围:134217728~576460752303423487
默认值:549755813888
设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。取值不能带单位。
设置建议:安装时会进行设定,不建议用户修改此配置。
设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。
xlog_lock_file_path
参数说明:双集群共享存储场景下,xlog日志共享盘抢占的锁文件的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:NULL
设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。
设置建议:安装时会进行设定,不建议用户修改此配置。
设置不当的风险与影响:设置不当会使数据库无法启动。
max_size_for_shared_storage_xlog_write
参数说明:控制共享盘单次写入的最大数据量。
参数类型:整型
参数单位:kB
取值范围:8~131072
默认值:1024
设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。
设置建议:安装时会进行设定,不建议用户修改此配置。
设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。