开发人员选项
allow_system_table_mods
参数说明:设置是否允许修改系统表的结构或系统自带模式名称。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许修改系统表的结构或系统自带模式名称。
- off表示不允许修改系统表的结构或系统自带模式名称。
默认值:off
不建议修改该参数默认值,若设置为on,可能导致系统表损坏,甚至数据库无法启动。
allow_create_sysobject
参数说明:设置是否允许在系统模式下创建或修改函数、存储过程、同义词等对象。此处的系统模式指数据库初始后自带的模式,但不包含public模式。系统模式的oid通常小于16384。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许初始用户和系统管理员在系统模式下创建或修改函数、存储过程、同义词等对象。sysadmin用户具有默认create or replace/alter/grant/revoke系统对象的权限。其他用户是否允许创建这些对象请参考对应模式的权限要求。
- off表示禁止所有用户在系统模式下创建或修改函数、存储过程、同义词等对象。sysadmin用户不具有默认create or replace/alter/grant/revoke系统对象的权限。
默认值:on
debug_assertions
参数说明:控制打开各种断言检查。能够协助调试,当遇到异常的问题或者崩溃,请把此参数打开,因为它能暴露编程的错误。要使用这个参数,必须在编译GaussDB的时候定义宏USE_ASSERT_CHECKING(通过configure选项 --enable-cassert完成)。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示打开断言检查。
- off表示不打开断言检查。
当启用断言选项编译GaussDB时,debug_assertions缺省值为on 。
默认值:off
ignore_checksum_failure
参数说明:设置此参数为打开会导致系统忽略失败(但仍然会告警),继续执行可能导致崩溃,传播或保存损坏数据,无法从远程节点恢复数据及其他严重问题。不建议用户修改设置。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示忽略数据校验错误。
- off表示数据校验错误正常报错。
默认值:off
ignore_system_indexes
参数说明:读取系统表时忽略系统索引(但是修改系统表时依然同时修改索引)。
该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
这个参数在从系统索引被破坏的表中恢复数据的时候非常有用。
取值范围:布尔型
- on表示忽略系统索引。
- off表示不忽略系统索引。
默认值:off
post_auth_delay
参数说明:在认证成功后,延迟指定时间,启动服务器连接。允许调试器附加到启动进程上。
该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为2147,单位为秒。
默认值:0
此参数只用于调试和问题定位,为避免影响正常业务运行,生产环境下请确保参数值为默认值0。参数设置为非0时可能会因认证延迟时间过长导致集群状态异常。
pre_auth_delay
参数说明:启动服务器连接后,延迟指定时间,进行认证。允许调试器附加到认证过程上。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,取值范围为0~60,单位为秒。
默认值:0
此参数只用于调试和问题定位,为避免影响正常业务运行,生产环境下请确保参数值为默认值0。参数设置为非0时可能会因认证延迟时间过长导致集群状态异常。
trace_notify
参数说明:为LISTEN和NOTIFY命令生成大量调试输出。client_min_messages或log_min_messages级别必须是DEBUG1或者更低时,才能把这些输出分别发送到客户端或者服务器日志。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示打开输出功能。
- off表示关闭输出功能。
默认值:off
trace_recovery_messages
参数说明:启用恢复相关调试输出的日志录,否则将不会被记录。该参数允许覆盖正常设置的log_min_messages,但是仅限于特定的消息,这是为了在调试备机中使用。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、log,取值的详细信息请参见log_min_messages。
默认值:log
- 默认值log表示不影响记录决策。
- 除默认值外,其他值会导致优先级更高的恢复相关调试信息被记录,因为它们有log优先权。对于常见的log_min_messages设置,这会导致无条件地将它们记录到服务器日志上。
trace_sort
参数说明:控制是否在日志中打印排序操作中的资源使用相关信息。这个选项只有在编译GaussDB的时候定义了TRACE_SORT宏的时候才可用,不过目前TRACE_SORT是由缺省定义的。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示打开控制功能。
- off表示关闭控制功能。
默认值:off
zero_damaged_pages
参数说明:控制检测导致GaussDB报告错误的损坏的页头,终止当前事务。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- 设置为on时,会导致系统报告一个警告,把损坏的页面填充为零然后继续处理。这种行为会破坏数据,也就是所有在已经损坏页面上的行记录。但是它允许绕开坏页面然后从表中尚存的未损坏页面上继续检索数据行。因此它在因为硬件或者软件错误导致的崩溃中进行恢复是很有用的。通常不应该把它设置为on,除非不需要从崩溃的页面中恢复数据。
- 设置为off时,系统不会将损坏页面填充零。
默认值:off
string_hash_compatible
参数说明:该参数用来说明char类型和varchar/text类型的hash值计算方式是否相同,以此来判断进行分布列从char类型到相同值的varchar/text类型转换,数据分布变化时,是否需要进行重分布。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示计算方式相同,不需要进行重分布。
- off表示计算方式不同,需要进行重分布。
计算方式的不同主要体现在字符串计算hash值时传入的字节长度上。(如果为char,则会忽略字符串后面空格的长度,如果为text或varchar,则会保留字符串后面空格的长度。)hash值的计算会影响到查询的计算结果,因此此参数一旦设置后,在整个数据库使用过程中不能再对其进行修改,以避免查询错误。
默认值:off
remotetype
参数说明:设置远程连接类型。
该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
取值范围:枚举类型,有效值有application,coordinator,datanode,gtm,gtmproxy,internaltool,gtmtool。
默认值:application
max_user_defined_exception
参数说明:异常最大个数。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,当前只能取固定值1000
默认值:1000
enable_compress_spill
参数说明:标识是否开启下盘压缩功能。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on/true表示开启下盘优化。
- off/false表示关闭下盘优化。
默认值:on
enable_parallel_ddl
参数说明:控制多CN对同一数据库对象是否能安全的并发执行DDL操作。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示可以安全的并发执行DDL操作,不会出现分布式死锁。
- off表示不能安全的并发执行DDL操作,可能会出现分布式死锁。
默认值:on
support_batch_bind
参数说明:控制是否允许通过JDBC、ODBC、Libpq等接口批量绑定和执行PBE形式的语句。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示使用批量绑定和执行。
- off:表示不使用批量绑定和执行。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
numa_distribute_mode
参数说明:用于控制部分共享数据和线程在NUMA节点间分布的属性。用于大型多NUMA节点的ARM服务器性能调优,一般不用设置。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串,当前有效取值为'none', 'all'。
- none:表示不启用本特性。
- all:表示将部分共享数据和线程分布到不同的NUMA节点下,减少远端访存次数,提高性能。目前仅适用于拥有多个NUMA节点的ARM服务器,并且要求全部NUMA节点都可用于数据库进程,不支持仅选择一部分NUMA节点。
当前版本x86平台下不支持numa_distribute_mode设置为all。
默认值:'none'
log_pagewriter
参数说明:设置用于增量检查点打开后,显示线程的刷页信息以及增量检查点的详细信息,信息比较多,不建议设置为true。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
默认值:off
advance_xlog_file_num
参数说明:用于控制在后台周期性地提前初始化xlog文件的数目。该参数是为了避免事务提交时执行xlog文件初始化影响性能,但仅在超重负载时才可能出现,因此一般不用配置。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~1000000(0表示不提前初始化)。例如,取值10,表示后台线程会周期性地根据当前xlog写入位置提前初始化10个xlog文件。
默认值:0
comm_sender_buffer_size
参数说明:用于设置Stream计划中CN与DN之间,DN与DN之间每次交互的BUFFER大小,在一些情况下不同的取值会对Stream性能产生影响,重置后需要重启集群生效。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,1~1024,单位为KB。
默认值:8
ustore_attr
参数说明:该参数主要用来控制USTORE存储引擎表的信息统计、回滚类型、UBTree索引类型、重点模块(包括数据、索引、回滚段、回放等)运行时数据的校验,主要用于协助研发问题定位。
参数类型:字符串
参数单位:无
取值范围:该参数值的设置方式采用key-value模式,key和value取值对应关系和说明如下。如果是多个key-value组合设置,中间使用";"作为分隔符,例如:ustore_attr='ustore_verify_level=FAST;ustore_verify_module=UPAGE:UBTREE:UNDO:REDO'。
- ustore_verify_level:控制校验的级别
表1 ustore_verify_level取值含义说明 参数取值
含义
NONE
NONE表示关闭校验,性能测试场景下推荐开启。
FAST
FAST表示快速校验,校验内容少,性能影响最小。
COMPLETE
COMPLETE表示全量校验,校验内容最多,性能影响比较大。
默认值:FAST
- ustore_verify_module:控制校验的模块
取值范围:设置值UPAGE,UBTREE,UNDO, REDO,ROACH中的一个或者多个,或者单独设置ALL或者NULL(不区分大小写)。当设置
UPAGE,UBTREE,UNDO,REDO,ROACH中的多个值时,使用":"作为连接符。例如ustore_verify_module=UPAGE:UBTREE:UNDO:REDO。
当用户打开ROACH模块,在ROACH备份过程中将无视ustore_verify_level参数,默认最高级别校验,对性能影响极大,建议谨慎使用。
表2 ustore_verify_module取值含义说明 参数取值
含义
UPAGE
表示开启数据页面校验。
UBTREE
表示开启UBTREE索引校验。
UNDO
表示开启回滚段数据校验。
REDO
表示开启REDO流程的数据页面校验。
ROACH
此参数废弃,底层逻辑已去掉校验,ustore_verify_module=roach依然能设置成功但并未生效。
ALL
表示同时开启UPAGE,UBTREE,UNDO,REDO, ROACH模块数据的校验。
NULL
表示同时关闭UPAGE,UBTREE,UNDO,REDO, ROACH模块数据的校验。
默认值:UPAGE:UBTREE:UNDO
- index_trace_level:控制开启索引追踪并控制打印级别,开启后在索引扫描的过程中,会根据不同的打印级别对符合条件的索引元组的信息进行打印
默认值:NO
表3 index_trace_level取值含义说明 参数取值
含义
NO
不打印任何额外信息。
NORMAL
打印可见索引元组相关信息,包括:
- 当前索引元组所在索引页面号以及偏移。
- 当前元组状态。
- 当前元组对应的TID以及partOid。
- 当前元组对应的xmin和xmax信息。
- 当前元组内容(如果开启 enable_log_tuple)。
VISIBILITY
在 NORMAL 的基础上,额外打印没有通过可见性检查的索引元组的信息,并标明是否可见。
SHOWHIKEY
在 VISIBILITY 的基础上,尝试打印页面上 HIKEY 元组的信息。
ALL
打印扫描的索引页面上所有元组的相关信息。
- enable_log_tuple:打印日志级提示信息时,是否允许同时将相关元组的内容打印出来,以便进行问题排查和定位。
默认值:off
- enable_ustore_sync_rollback:控制USTORE表是否开启同步回滚。
默认值:true
- enable_ustore_async_rollback:控制USTORE表是否开启异步回滚。
默认值:true
- enable_ustore_page_rollback:控制USTORE表是否开启页面回滚。
默认值:true
- enable_ustore_partial_seqscan:是否允许USTORE表开启部分扫描。
默认值:false
- enable_candidate_buf_usage_count:是否开启缓存区使用计数统计。
默认值:false
- ustats_tracker_naptime:控制USTORE表统计信息周期。
默认值:20, 单位为秒。
- umax_search_length_for_prune:控制USTORE表prune操作搜索的最大深度。
默认值:10,单位为次。
ustore_attr设置参数值时,key和value之间的"="前后不要有空格或者其他字符,例如ustore_attr='ustore_verify_level = FAST',内核代码校验会发现参数不合法,设置回显成功,但实际不生效。
默认值:空字符串
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
ustore_attr 参数设置请慎重,建议在工程师协助下修改。
index_txntype
参数说明:控制UBTree的索引类型为PCR或RCR,PCR支持通过索引进行闪回查询,RCR不支持。
参数类型:字符串
参数单位:无
取值范围:'PCR'、'RCR'
默认值:空字符串
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方式进行设置。
设置建议:建议设置为'RCR'。
default_index_kind
参数说明:控制创建索引的默认行为。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,当前只能取固定值0、1、2。
- 0:表示对分布式部署方式不开启全局分区索引功能。
- 1:表示默认创建局部索引。
- 2:表示默认创建全局索引。
默认值:2
不建议修改该参数默认值,若随意修改该参数,可能会影响索引有效性。
enable_segment_remain_cleanup
参数说明:该参数用来控制启用哪种段页式残留清理方式。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔值。
- on:表示启用旧式段页式残留清理机制。
- 查询接口:gs_stat_remain_segment_info,gs_local_stat_remain_segment_info。
- 清理接口:gs_free_remain_segment,gs_local_free_remain_segment。
- off:表示启用新式段页式残留清理机制。
- 查询接口:GS_SEG_SPC_REMAIN_SEGMENTS,GS_SEG_SPC_REMAIN_EXTENTS。
- 清理接口:gs_seg_free_spc_remain_segment,gs_seg_free_spc_remain_extent。
请避免随意切换清理方式,否则可能会出现无法正常清理段页式残留或其他异常。
默认值:off
convert_illegal_char_mode
参数说明:用于在enable_convert_illegal_char参数开启时,设置客户端显示非法编码的占位符。
参数类型:字符串
参数单位:无
取值范围:ascii编码表中十进制编码为32至126的95个可显示字符。
默认值:'?'
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:无
default_segment
参数说明:该参数用来控制是否默认创建段页式表。
参数类型:布尔型。
参数单位:无
取值范围:
- on:表示未指定segment字段时,默认创建段页式表。
- off:表示未指定segment字段时,默认创建页式表。
默认值:off。
设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:无
- 当数据库初始化时指定--undostoragetype='page' 或者 不配置--undostoragetype时,此时Ustore会强制转换为页式存储,Astore无影响。