开发人员选项
allow_system_table_mods
参数说明:设置是否允许修改系统表的结构和系统自带模式的名称。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许修改系统表的结构和系统自带模式的名称。
- off:表示不允许修改系统表的结构和系统自带模式的名称。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:不建议用户修改该参数设置。
设置不当的风险与影响:该参数打开后,可能导致系统表损坏,甚至数据库无法启动等严重问题。
allow_create_sysobject
参数说明:设置是否允许在系统模式下创建或修改函数、存储过程、同义词等对象。此处的系统模式指数据库初始后自带的模式,但不包含public模式。系统模式的oid通常小于16384。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许初始用户和系统管理员在系统模式下创建或修改函数、存储过程、同义词等对象。sysadmin用户默认具有create or replace/alter/grant/revoke系统对象的权限。其他用户是否允许创建这些对象请参考对应模式的权限要求。
- off:表示禁止所有用户在系统模式下创建或修改函数、存储过程、同义词等对象。sysadmin用户默认不具有create or replace/alter/grant/revoke系统对象的权限。
默认值:on
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
debug_assertions
参数说明:设置是否打开各种断言检查。要使用这个参数,必须在编译GaussDB的时候定义宏USE_ASSERT_CHECKING(通过configure选项 --enable-cassert完成)。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示打开断言检查。
- off:表示不打开断言检查。
默认值:off
当启用断言选项编译GaussDB时,debug_assertions默认值为on 。
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:该功能能够协助调试,当遇到异常或者崩溃的问题时,请打开此参数,用以定位程序的错误。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
ignore_checksum_failure
参数说明:设置是否忽略数据校验错误。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示忽略数据校验错误。
- off:表示数据校验错误正常报错。
默认值:off
设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:不建议用户修改该参数设置。
设置不当的风险与影响:该参数打开后会导致系统忽略失败(但仍然会告警),继续执行可能导致崩溃,传播或保存损坏数据,无法从远程节点恢复数据及其他严重问题。
ignore_system_indexes
参数说明:设置读取系统表时是否忽略系统索引(但是修改系统表时依然同时修改索引)。
这个参数在从系统索引被破坏的表中恢复数据的时候非常有用。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示忽略系统索引。
- off:表示不忽略系统索引。
默认值:off
设置方式:该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
post_auth_delay
参数说明:在认证成功后,延迟指定的时间,再启动服务器连接。允许调试器附加到启动进程上。
参数类型:整型
参数单位:秒(s)
取值范围:0 ~ 2147
默认值:0,表示无延迟。
设置方式:该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值60,表示post_auth_delay为60s;带单位取值1min,表示post_auth_delay为1min。取值如果要带单位,必须为s、min、h、d。
设置建议:该参数只用于调试和问题定位,为避免影响正常业务运行,生产环境下请确保参数值为默认值0。
设置不当的风险与影响:参数设置为非0时可能会因认证延迟时间过长导致集群状态异常。
pre_auth_delay
参数说明:启动服务器连接后,延迟指定的时间,再进行认证。允许调试器附加到认证过程上。
参数类型:整型
参数单位:秒(s)
取值范围:0 ~ 60
默认值:0,表示无延迟。
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值60,表示pre_auth_delay为60s;带单位取值1min,表示pre_auth_delay为1min。取值如果要带单位,必须为s、min、h、d。
设置建议:该参数只用于调试和问题定位,为避免影响正常业务运行,生产环境下请确保参数值为默认值0。
设置不当的风险与影响:参数设置为非0时可能会因认证延迟时间过长导致集群状态异常。
trace_notify
参数说明:设置是否为LISTEN和NOTIFY命令生成大量调试输出。client_min_messages或log_min_messages级别必须是DEBUG1或者更低,才能把这些输出分别发送到客户端或者服务器日志。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示打开输出功能。
- off:表示关闭输出功能。
默认值:off
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
trace_recovery_messages
参数说明:启用与恢复相关的调试输出的日志记录,否则不记录日志。该参数允许覆盖正常设置的log_min_messages,但是仅限于特定的消息,建议只在调试备机时使用。
参数类型:枚举类型
参数单位:无
取值范围:有效值有debug5、debug4、debug3、debug2、debug1、log。参数的详细信息请参考表1。
默认值:log
- 默认值log表示不影响记录决策。
- 除默认值外,其他值会导致优先级更高的恢复相关调试信息被记录,因为它们有log优先权。对于常见的log_min_messages设置,这会导致无条件地将它们记录到服务器日志上。
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:建议只在调试备机时修改该参数取值,其余情况推荐使用默认值。
设置不当的风险与影响:设置除了log以外的值时,会打印较多日志,占用一定io资源。
trace_sort
参数说明:设置是否在日志中打印排序操作中的资源使用相关信息。这个选项只有在编译GaussDB的时候定义了TRACE_SORT宏才可以使用,不过目前TRACE_SORT只能缺省,无法进行调整。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示打印排序操作中的资源使用相关信息。
- off:表示不打印排序操作中的资源使用相关信息。
默认值:off
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
zero_damaged_pages
参数说明:控制检测到导致GaussDB报告错误的损坏的页头后,是否终止当前事务。
参数类型:布尔型
参数单位:无
取值范围:
- 设置为on时,会导致系统发出一个警告而非抛出一个错误,把损坏的页面清零然后继续处理。这种行为会破坏数据,也就是所有在已经损坏页面上的行记录。但是它允许绕开坏页面然后从表中尚存的未损坏页面上继续检索数据行。因此它在因为硬件或者软件错误导致的崩溃中进行恢复是很有用的。
- 设置为off时,系统不会将损坏页面填充为零。
默认值:off
设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:通常不应该设置为on,除非不需要从崩溃的页面中恢复数据。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
string_hash_compatible
参数说明:该参数用来控制char类型和varchar/text类型的hash值计算方式是否相同,以此来判断进行分布列从char类型到相同值的varchar/text类型转换,数据分布变化时,是否需要进行重分布。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示计算方式相同,不需要进行重分布。
- off:表示计算方式不同,需要进行重分布。
计算方式的不同主要体现在字符串计算hash值时传入的字节长度上。(如果为char,则会忽略字符串后面空格的长度,如果为text或varchar,则会保留字符串后面空格的长度。)hash值的计算会影响到查询的计算结果,因此此参数一旦设置后,在整个数据库使用过程中不能再对其进行修改,以避免查询错误。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
remotetype
参数说明:设置远程连接类型。
参数类型:枚举类型
参数单位:无
取值范围:有效值有application,coordinator,datanode,gtm,gtmproxy,internaltool,gtmtool。
默认值:application
设置方式:该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
max_user_defined_exception
参数说明:异常最大个数,默认值不可更改。
参数类型:整型
参数单位:无
取值范围:当前只能取固定值1000。
默认值:1000
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:该参数不允许用户进行设置,只能查看。
设置不当的风险与影响:无
enable_fast_numeric
参数说明:标识是否开启Numeric类型数据运算优化。Numeric数据运算是较为耗时的操作之一,通过将Numeric转化为int64/int128类型,提高Numeric运算的性能。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启Numeric优化。
- off:表示关闭Numeric优化。
默认值:on
设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:关闭可能会导致涉及到Numeric类型的查询语句出现性能劣化。
enable_fast_vecop
参数说明:标识是否开启向量化引擎运算优化。对向量化引擎中Timestamp,int32,int64,float8类型的运算优化,并减少行存调用开销,支持自动向量化运算。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启向量化运算优化。
- off:表示关闭向量化运算优化。
默认值:on
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置关闭影响向量化引擎中Timestamp,int32,int64,float8类型的运算性能。
enable_compress_spill
参数说明:设置是否开启下盘压缩功能。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启下盘压缩功能。
- off:表示关闭下盘压缩功能。
默认值:on
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
resource_track_log
参数说明:控制自诊断的日志级别。目前仅对多列统计信息进行控制。
参数类型:枚举类型
参数单位:无
取值范围:
- summary:显示简略的诊断信息。
- detail:显示详细的诊断信息。
目前这两个参数值只在显示多列统计信息未收集的告警的情况下有差别,summary不显示未收集多列统计信息的告警,detail会显示这类告警。
默认值:summary
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_parallel_ddl
参数说明:控制多CN对同一数据库对象是否能安全的并发执行DDL操作。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示可以安全的并发执行DDL操作,不会出现分布式死锁。
- off:表示不能安全的并发执行DDL操作,可能会出现分布式死锁。
默认值:on
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
support_batch_bind
参数说明:控制是否允许通过JDBC、ODBC、Libpq等接口批量绑定和执行PBE形式的语句。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许批量绑定和执行。
- off:表示不允许批量绑定和执行。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
numa_distribute_mode
参数说明:用于控制部分共享数据和线程在NUMA节点间分布的属性。用于大型多NUMA节点的ARM服务器性能调优,一般不用设置。
参数类型:字符串
参数单位:无
取值范围:当前有效取值为“none”,“all”。
- "none":表示不启用本特性。
- "all":表示将部分共享数据和线程分布到不同的NUMA节点下,减少远端访存次数,提高性能。目前仅适用于拥有多个NUMA节点的ARM服务器,并且要求全部NUMA节点都可用于数据库进程,不支持仅选择一部分NUMA节点。
当前版本x86平台下不支持numa_distribute_mode设置为“all”。
默认值:"none"
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
log_pagewriter
参数说明:设置增量检查点打开后,是否显示线程的刷页信息以及增量检查点的详细信息。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示显示详细信息。
- off:表示不显示详细信息。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:一般不建议设置为on。
设置不当的风险与影响:设置为on后,会导致显示信息增多,影响性能。
advance_xlog_file_num
参数说明:用于控制在后台周期性地提前初始化备机上xlog文件的数目。
参数类型:整型
参数单位:无
取值范围:0~1000000(0表示不提前初始化)。例如,取值10,表示后台线程会周期性地根据当前xlog写入位置提前初始化10个xlog文件。
默认值:0
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:该参数可用来避免事务提交时执行xlog文件初始化影响性能,但该情况仅在超重负载时才可能出现,因此一般不用配置。
设置不当的风险与影响:设置过大会过多占用磁盘空间,导致磁盘占用率异常。
comm_sender_buffer_size
参数说明:用于设置Stream计划中CN与DN之间,DN与DN之间每次交互的BUFFER大小,在一些情况下不同的取值会对Stream性能产生影响,设置后需要重启集群生效。
参数类型:整型
参数单位:kB
取值范围:1 ~ 1024
默认值:8
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过小,容易频繁收发,时延小,但是吞吐率低。设置过大,吞吐率会提升,但是时延增加。
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;,内核代码校验时会发现参数不合法,导致参数设置失败。
默认值:"ustore_verify_level=FAST;ustore_verify_module=UPAGE:UBTREE:UNDO"
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:请慎重设置ustore_attr参数,建议在工程师协助下修改。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
index_txntype
参数说明:控制UBTree的索引类型为PCR或RCR,PCR支持通过索引进行闪回查询,RCR不支持。空字符串与“RCR”在大部分场景等效,reindex场景下,取值为空字符串时不改变索引类型,取值为“RCR”时会强制重建成对应的索引类型。
参数类型:字符串
参数单位:无
取值范围:""、“PCR”、“RCR”。
默认值:""
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方式进行设置。
设置建议:如果需要使用PCR索引可以改成“PCR”,否则不建议修改。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
default_index_kind
参数说明:控制分区表创建索引的默认行为。
参数类型:整型
参数单位:无
取值范围:0 ~ 2
- 0:表示对分布式部署方式不开启全局分区索引功能。
- 1:表示默认创建局部索引。
- 2:表示默认创建全局索引。
默认值:2
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方式进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置为0时,无法创建全局分区索引。
enable_segment_remain_cleanup
参数说明:该参数用来控制启用哪种段页式残留清理方式。
参数类型:布尔型
参数单位:无
取值范围:
- 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
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请避免随意切换清理方式,否则可能会出现无法正常清理段页式残留或其他异常。
enable_stream_noblock_memcopy
参数说明:设置是否开启向量化引擎中stream算子内存复制优化,如果开启该参数,向量化引擎中local stream算子中数据发送将采用非等待的方式进行,提升local stream算子的执行效率。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启stream算子内存复制优化。
- off:表示关闭stream算子内存复制优化。
默认值:on
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置为off后,可能导致local stream算子的执行效率下降。
convert_illegal_char_mode
参数说明:用于在enable_convert_illegal_char参数开启时,设置客户端显示非法编码的占位符。
参数类型:字符串
参数单位:无
取值范围:ascii编码表中十进制编码为32至126的95个可显示字符。
默认值:"?"
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
default_segment
参数说明:该参数用来控制是否默认创建段页式表。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示未指定segment字段时,默认创建段页式表。
- off:表示未指定segment字段时,默认创建页式表。
默认值:off
设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
- 当数据库初始化时指定--undostoragetype='segpage'时,此时Ustore会强制转换为段页式存储,Astore无影响。
- 当数据库初始化时指定--undostoragetype='page' 或者 不配置--undostoragetype时,此时Ustore会强制转换为页式存储,Astore无影响。