华为云用户手册

  • pooler_cancel_timeout 参数说明:CN连接池在错误处理时Cancel某连接的超时时间。如果在子事务或存储过程异常捕获的过程中发生该类超时,那么包含子事务或存储过程的整个事务将发生回滚。在此基础上,在子事务或存储过程异常捕获的过程中,如果错误源自COPY FROM操作中源数据与目标表表结构的不一致,则只要该参数值不为0,就总会触发超时报错。 该参数属于SIGHUP类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为7200,最小单位为秒。其中0时(一般不建议)表示关闭此开关,不做超时限制。 默认值:15s
  • max_pool_size 参数说明:CN的连接池与其它某个CN/DN的最大连接数。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,1~65535 默认值: 独立部署: 32768(60核CPU/480G内存);16384(32核CPU/256G内存);8192(16核CPU/128G内存);4096(8核CPU/64G内存);2048(4核CPU/32G内存)
  • pooler_connect_max_loops 参数说明:pooler建链重试功能使用,主备切换场景增强建链稳定性,若节点间pooler建链失败会跟备机重试建连,此时若恰好备机升主机成功,则可以在重试阶段建链成功。该参数可以设置重试总轮数,增强建链稳定性。当参数设置为0时,可以关闭重试功能,业务只跟主机建链而不跟备机重试。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为20。 默认值:1
  • persistent_datanode_connections 参数说明:会话是否会释放获得的连接。 该参数属于BACKEND类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 off表示会释放获得连接。 on表示不会释放获得连接。 打开此开关后,会存在会话持有连接但并未运行查询的情况,导致其他查询申请不到连接报错。出现此问题时,需约束会话数量小于等于max_active_statements。 默认值:off
  • pooler_connect_interval_time 参数说明:pooler建链重试功能使用,当参数pooler_connect_max_loops设置大于1时,该参数可以控制不同重试轮数之间执行时间间隔。参数设置方面,建议略大于当前集群主备切换恢复时间即。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为7200,最小单位为秒。 默认值:15s
  • random_page_cost 参数说明:设置优化器计算一次非顺序抓取磁盘页面的开销。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 虽然服务器允许将random_page_cost设置的比seq_page_cost小,但是物理上实际不受影响。如果所有数据库都位于随机访问内存中时,两者设置为相等很合理。因为在此种情况下,非顺序抓取页并没有副作用。同样,在缓冲率很高的数据库上,应该相对于CPU参数同时降低这两个值,因为获取内存中的页要比通常情况下开销小很多。 取值范围:浮点型,0~DBL_MAX。 默认值:4 对于特别表空间中的表和索引,可以通过设置同名的表空间的参数来覆盖这个值。 相对于seq_page_cost,减少这个值将导致系统更倾向于使用索引扫描,而增加这个值使得索引扫描开销比较高。可以通过同时增加或减少这两个值来调整磁盘I/O相对于CPU的开销。
  • effective_cache_size 参数说明:设置优化器在一次单一的查询中可用的磁盘缓冲区的有效大小。 设置这个参数,要考虑GaussDB的共享缓冲区以及内核的磁盘缓冲区,还要考虑预计的在不同表之间的并发查询数目,因为它们将共享可用的空间。 这个参数对GaussDB实际运行时分配的共享内存大小没有影响,它只用于计划生成阶段的估算。该数值是用磁盘页来计算的,通常每个页面是8192字节。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,1~2147483647‬,单位为8KB。 默认值: 独立部署: CN:2GB(60核CPU/480G内存);1GB(32核CPU/256G内存,16核CPU/128G内存);512MB(8核CPU/64G内存);256MB(4核CPU/32G内存) DN:80GB(60核CPU/480G内存);40GB(32核CPU/256G内存);20GB(16核CPU/128G内存);10GB(8核CPU/64G内存);5GB(4核CPU/32G内存) 设置建议: 较大的数值使优化器倾向于选择索引扫描,较小的数值使优化器倾向于选择全表扫描。一般情况下,可以设为shared_buffers大小的1/2,较为激进地,可以设为shared_buffers大小的3/4。
  • expected_computing_nodegroup 参数说明:标识选定的计算Node Group模式或目标计算Node Group。Node Group目前为内部用机制,用户无需设置。 共4种计算Node Group模式,用于关联操作和聚集操作时选定计算Node Group。在每一种模式中,优化器有针对性地选定几个候选计算Node Group,然后根据代价,从中为当前算子挑选最佳计算Node Group。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:字符串 optimal:候选计算Node Group列表包含算子操作对象所在的Node Group和由当前用户具有COMPUTE权限的所有Node Group包含的所有DN构成的Node Group query:候选计算Node Group列表包含算子操作对象所在的Node Group和由当前查询涉及的所有基表所在Node Group包含的所有DN构成的Node Group Node Group名(enable_nodegroup_debug被设置为off):候选计算Node Group列表包含算子操作对象所在的Node Group和该指定的Node Group Node Group名(enable_nodegroup_debug被设置为on):候选计算Node Group为指定的Node Group 默认值:query
  • qrw_inlist2join_optmode 参数说明:控制是否使用inlist-to-join查询重写。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:字符串 disable:关闭inlist2join查询重写。 cost_base:基于代价的inlist2join查询重写。 rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:cost_base
  • check_implicit_conversions 参数说明:控制是否对查询中有隐式类型转换的索引列是否会生成候选索引路径进行检查。关于该参数的使用场景请参见检查隐式转换的性能问题。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示对查询中有隐式类型转换的索引列是否会生成候选索引路径进行检查。 off表示不进行相关检查。 默认值:off 将该参数设置为on时,需要同时将参数enable_fast_query_shipping设置为off,检查索引列的隐式数据类型转换的识别机制才会生效。
  • enable_nodegroup_debug 参数说明:控制优化器在多Node Group环境下,是否使用强制弹性计算。Node Group目前为内部用机制,用户无需设置。 该参数只在expected_computing_nodegroup被设置为具体Node Group时生效。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示强制将计算弹性到expected_computing_nodegroup所指定的Node Group进行计算。 off表示不强制使用某个Node Group进行计算。 默认值:off
  • enable_stream_operator 参数说明:控制优化器对stream的使用。当enable_stream_operator参数关闭时,会有大量关于计划不能下推的日志记录到日志文件中。如果用户不需要这些日志内容,建议用户在enable_stream_operator参数关闭时,也同时关闭enable_unshipping_log参数。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示使用。 off表示不使用。 默认值: 独立部署:off
  • best_agg_plan 参数说明:对于stream下的Agg操作,优化器会生成三种计划: hashagg+gather(redistribute)+hashagg。 redistribute+hashagg(+gather)。 hashagg+redistribute+hashagg(+gather)。 本参数用于控制优化器生成哪种hashagg的计划。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:0,1,2,3 取值为1时,强制生成第一种计划。 取值为2时,如果group by列可以重分布,强制生成第二种计划,否则生成第一种计划。 取值为3时,如果group by列可以重分布,强制生成第三种计划,否则生成第一种计划。 取值为0时,优化器会根据以上三种计划的估算cost选择最优的一种计划生成。 默认值:0
  • agg_redistribute_enhancement 参数说明:当进行Agg操作时,如果包含多个group by列且均不为分布列,进行重分布时会选择某一group by列进行重分布。本参数控制选择重分布列的策略。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示会选择估算distinct值最多的一个可重分布列作为重分布列。 off表示会选择第一个可重分布列为重分布列。 默认值:off
  • enable_stream_concurrent_update 参数说明:控制优化器在并发更新场景下对stream的使用,该参数受限于enable_stream_operator参数。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示允许优化器对update语句生成stream计划。 off表示优化器对update语句仅能生成非stream计划。 默认值:on
  • max_stack_depth 参数说明:设置GaussDB执行堆栈的最大安全深度。需要这个安全界限是因为在服务器里,并非所有程序都检查了堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。 该参数属于SUSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,100~2147483647‬,单位为KB。 默认值: (ulimit -s的设置)- 640 KB的值大于等于2MB时,此参数的默认值为2MB。 (ulimit -s的设置)- 640 KB的值小于2MB时,此参数的默认值为(ulimit -s的设置)- 640 KB。 设置原则: 数据库需要预留640KB堆栈深度,因此此参数可设置的最大值等于操作系统内核允许的最大值(就是ulimit -s的设置)- 640KB。 数据库未运行前设置的该参数值大于(ulimit -s的设置)- 640 KB时会导致数据库启动失败;数据库运行阶段设置该参数值大于(ulimit -s的设置)- 640 KB时该值不生效。 若(ulimit -s的设置)-640KB小于此参数取值范围的最小值时会导致数据库启动失败。 如果设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃。 因为并非所有的操作都能够检测,所以建议用户在此设置一个明确的值。 默认值最大为2MB,这个值相对比较小,不容易导致系统崩溃。
  • psort_work_mem 参数说明:设置列存表在进行局部排序中在开始写入临时磁盘文件之前使用的内存大小。带partial cluster key的表、带索引的表插入,创建表索引,删除表和更新表都会用到。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 同样,好几个正在运行的会话可能会同时进行表的局部排序操作。因此使用的总内存可能是psort_work_mem的好几倍。 取值范围:整型64~2147483647,单位为KB。 默认值:512MB
  • cstore_buffers 参数说明:设置列存所使用的共享缓冲区的大小。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,16384~1073741823,单位为KB。 默认值:32MB 设置建议: 列存表使用cstore_buffers设置的共享缓冲区,几乎不用shared_buffers。因此在列存表为主的场景中,应减少shared_buffers,增加cstore_buffers。
  • enable_memory_limit 参数说明:启用逻辑内存管理模块。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示启用逻辑内存管理模块。 off表示不启用逻辑内存管理模块。 默认值:on 若max_process_memory-shared_buffers-cstore_buffers-元数据少于2G,GaussDB强制把enable_memory_limit设置为off。其中元数据是GaussDB内部使用的内存,和部分并发参数,如max_connections,thread_pool_attr,max_prepared_transactions等参数相关。 当该值为off时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存过多,可能导致操作系统OOM问题。
  • max_prepared_transactions 参数说明:设置可以同时处于"预备"状态的事务的最大数目。增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存。 当GaussDB部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,0~536870911。 默认值: 独立部署: 1200(60核CPU/480G内存,32核CPU/256G内存);800(16核CPU/128G内存);400(8核CPU/64G内存);300(4核CPU/32G内存) 为避免在准备步骤失败,线程池模式下此参数的值应大于thread_pool_attr中工作线程个数,非线程池模式下此参数的值不能小于max_connections。
  • work_mem 参数说明:设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。 对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,64~2147483647,单位为KB。 默认值: 独立部署: 128MB(60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存);32MB(4核CPU/35G内存) 设置建议: 依据查询特点和并发来确定,一旦work_mem限定的物理内存不够,算子运算数据将写入临时表空间,带来5-10倍的性能下降,查询响应时间从秒级下降到分钟级。 对于串行无并发的复杂查询场景,平均每个查询有5-10关联操作,建议work_mem=50%内存/10。 对于串行无并发的简单查询场景,平均每个查询有2-5个关联操作,建议work_mem=50%内存/5。 对于并发场景,建议work_mem=串行下的work_mem/物理并发数。
  • local_syscache_threshold 参数说明:系统表cache在单个session缓存的大小。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 如果enable_global_plancache已打开,为保证GPC生效,local_syscache_threshold设置值小于16MB时不会生效,最小为16MB。 取值范围:整型,1*1024~512*1024,单位为KB。 默认值: 独立部署:16MB
  • shared_buffers 参数说明:设置GaussDB使用的共享内存大小。增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,16 ~ 1073741823,单位为8KB。 改变BLCKSZ的值会改变最小值。 默认值: 独立部署: CN:4GB(60核CPU/480G内存);2GB(32核CPU/256G内存,16核CPU/128G内存);1GB(8核CPU/64G内存);512MB(4核CPU/32G内存) DN:160GB(60核CPU/480G内存);80GB(32核CPU/256G内存);40GB(16核CPU/128G内存);20GB(8核CPU/64G内存);10GB(4核CPU/32G内存) 设置建议: 由于GaussDB大部分查询下推,建议DN中此参数设置比CN大。 建议设置shared_buffers值为内存的40%以内。行存列存分开对待。行存设大,列存设小。列存:(单服务器内存/单服务器DN个数)*0.4*0.25。 如果设置较大的shared_buffers需要同时增加checkpoint_segments的值,因为写入大量新增、修改数据需要消耗更多的时间周期。
  • temp_buffers 参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。 取值范围:整型,100~1073741823,单位为8KB。 默认值:1MB
  • max_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,2097152~2147483647,单位为KB。 默认值: 独立部署:320GB(60核CPU/480G内存);160GB(32核CPU/256G内存);80GB(16核CPU/128G内存);40GB(8核CPU/64G内存);20GB(4核CPU/32G内存) 设置建议: DN上该数值需要根据系统物理内存及单节点部署主DN个数决定的。计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.7 / (n+主DN个数)。该参数目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点OOM。这个公式中提到vm.min_free_kbytes,其含义是预留操作系统内存供内核使用,通常用作操作系统内核中通信收发内存分配,至少为5%内存。即,max_process_memory=物理内存*0.665/(n+主DN个数),其中,当集群规模小于256时,n=1;当集群规模大于256且小于512时,n=2;当集群规模超过512时,n=3。 CN上该数值内存可设置与DN数值一样。 RAM:集群规划时分配给集群的最大使用内存,实际为服务器的物理内存。 当该值设置不合理,即大于服务器物理内存,可能导致操作系统OOM问题。
  • maintenance_work_mem 参数说明:设置在维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存。该参数的设置会影响VACUUM、VACUUM FULL、CLUSTER、CREATE INDEX的执行效率。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,1024~2147483647‬,单位为KB。 默认值: 独立部署: CN:1GB(60核CPU/480G内存);512MB(32核CPU/256G内存);256MB(16核CPU/128G内存);128MB(8核CPU/64G内存);64MB(4核CPU/32G内存) DN:2GB(60核CPU/480G内存);1GB(32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存) 设置建议: 建议设置此参数的值大于work_mem,可以改进清理和恢复数据库转储的速度。因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话。 当自动清理线程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值应该不小于work_mem。 如果进行大数据量的cluster等,可以在session中调大该值。
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。 取值范围:整型, 0~100000(微秒),其中0表示无延迟。 默认值:0
  • synchronous_commit 参数说明:设置当前事务的同步方式。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:枚举类型 on(true, yes, 1)表示将备机的同步日志刷新到磁盘。 off(false, no, 0)表示异步提交。 local表示为本地提交。 remote_write表示要备机的同步日志写到磁盘。 remote_receive表示要备机同步日志接收数据。 remote_apply表示要备机同步日志回放完成。 true表示将备机的同步日志刷新到磁盘。 false表示异步提交。 yes表示将备机的同步日志刷新到磁盘。 no表示异步提交。 1表示将备机的同步日志刷新到磁盘。 0表示异步提交。 2表示将备机同步日志回放完成。 默认值:on
  • wal_buffers 参数说明:设置用于存放WAL数据的共享内存空间的XLOG_BLCKSZ数,XLOG_BLCKSZ的大小默认为8KB。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:-1~218,最小值为-1,最大值为262144,单位为8KB。 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整,默认为shared_buffers的1/32。当该值小于8时,会被强制设置为8;当该值大于2048时,会被强制设置为2048。 如果设置为其他值,当小于4时,会被强制设置为4。 独立部署:1GB(60核CPU/480G内存,32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存) 设置建议:每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。
  • wal_sync_method 参数说明:设置向磁盘强制更新WAL数据的方法。 该参数属于SIGHUP类型参数,请参考重设参数中对应设置方法进行设置。 如果将fsync关闭,这个参数的设置就没有意义,因为所有数据更新都不会强制写入磁盘。 取值范围:枚举类型 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)。 不是所有的平台都支持以上参数。 默认值:fdatasync
共100000条