华为云用户手册

  • vacuum_freeze_table_age 参数说明:指定VACUUM对全表的扫描冻结元组的时间。如果表的pg_class.relfrozenxid字段的值已经达到了参数指定的时间,VACUUM对全表进行扫描。 参数类型:USERSET 取值范围:整型,0~576 460 752 303 423 487 尽管随时可以将此参数设为零到20亿之间的值,但是,VACUUM将默认其有效值范围限制在autovacuum_freeze_max_age的95%以内。定期的手动VACUUM可以在对此表的反重叠自动清理启动之前运行。 默认值:15000000000
  • default_tablespace 参数说明:当CREATE命令没有明确声明表空间时,所创建对象(表和索引等)的缺省表空间。 值是一个表空间的名字或者一个表示使用当前数据库缺省表空间的空字符串。若指定的是一个非默认表空间,用户必须具有它的CREATE权限,否则尝试创建会失败。 临时表不使用此参数,可以用temp_tablespaces代替。 创建数据库时不使用此参数。默认情况下,一个新的数据库从模板数据库继承表空间配置。 参数类型:USERSET 取值范围:字符串,其中空表示使用默认表空间。 默认值:空
  • default_storage_nodegroup 参数说明:设置当前的默认建表所在的Node Group,目前只适用普通表。 参数类型:USERSET 取值范围:字符串 installation,表示默认建表在安装的Node Group上。 random_node_group,表示默认建表在随机选择的NodeGroup上,该配置8.1.2及以上版本支持,仅用于测试环境。 roach_group,表示默认建表在所有节点上,该值为roach工具预留,不能用于其他场景。 取值为其他字符串,表示默认建表在设置的Node Group上。 默认值:installation
  • search_path 参数说明:当一个被引用对象没有指定模式时,此参数设置模式搜索顺序。它的值由一个或多个模式名构成,不同的模式名用逗号隔开。 参数类型:USERSET 当前会话存放临时表的模式时,可以使用别名pg_temp将它列在搜索路径中,如'pg_temp,public' 。 存放临时表的模式始终会作为第一个被搜索的对象,排在pg_catalog和search_path中所有模式的前面,即具有第一搜索优先级。建议用户不要在search_path中显示设置pg_temp。如果在search_path中指定了pg_temp,但不是在最前面,系统会提示设置无效,pg_temp仍被优先搜索。通过使用别名pg_temp,系统只会在存放临时表的模式中搜索表、视图和数据类型这样的数据库对象,不会在里面搜索函数或运算符这样的数据库对象。 系统表所在的模式pg_catalog,总是排在search_path中指定的所有模式前面被搜索,即具有第二搜索优先级(pg_temp具有第一搜索优先级)。建议用户不要在search_path中显式设置pg_catalog。如果在search_path中指定了pg_catalog,但不是在最前面,系统会提示设置无效,pg_catalog仍被第二优先搜索。 当没有指定一个特定模式而创建一个对象时,它们被放置到以search_path为命名的第一个有效模式中。当搜索路径为空时,会报错误。 通过SQL函数current_schema可以检测当前搜索路径的有效值。这和检测search_path的值不尽相同,因为current_schema显示search_path中首位有效的模式名称。 取值范围:字符串 设置为"$user",public时,支持共享数据库(没有用户具有私有模式和所有共享使用public),用户私有模式和这些功能的组合使用。可以通过改变默认搜索路径来获得其他效果,无论是全局化的还是私有化的。 设置为空串('')的时候,系统会自动转换成一对双引号。 设置的内容中包含双引号,系统会认为是不安全字符,会将每个双引号转换成一对双引号。 默认值:"$user",public $user表示与当前会话用户名同名的模式名,如果这样的模式不存在,$user将被忽略。
  • default_colversion 参数说明:设置当前默认创建列存表的存储格式版本。 参数类型:SIGHUP 取值范围:枚举类型 1.0表示列存表的每列以一个单独的文件进行存储,文件名以relfilenode.C1.0、relfilenode.C2.0、relfilenode.C3.0等命名。 2.0表示列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名。 默认值:2.0
  • autovacuum_analyze_threshold 参数说明:设置触发ANALYZE操作的阈值。当表上被删除、插入或更新的记录数超过设定的阈值时才会对这个表执行ANALYZE操作。 参数类型:SIGHUP 取值范围:整型,0~INT_MAX 默认值: 若当前集群为低版本升级到8.1.3及以上集群版本,为保持和前向兼容,默认值为10000。 若当前集群为新装的8.1.3及以上集群版本,默认值为50。
  • enable_col_index_vacuum 参数说明:控制是否允许autovacuum清理列存索引脏数据。列存索引脏数据的清理能避免索引空间持续膨胀,优化带索引表的入库性能。该参数仅8.2.1.100及以上集群版本支持。 参数类型:SIGHUP 取值范围:布尔型 on表示开启autovacuum清理列存索引脏数据功能。 off表示关闭autovacuum清理列存索引脏数据功能。 默认值:on 新安装集群默认开启,老集群升级后默认关闭。
  • autovacuum 参数说明:控制是否启动数据库自动清理进程(autovacuum)。自动清理进程运行的前提是将track_counts设置为on。 参数类型:SIGHUP 取值范围:布尔型 on表示开启数据库自动清理进程。 off表示关闭数据库自动清理进程。 默认值:on 如系统在故障恢复后,需具备自动清理两阶段事务的功能,请将autovacuum设置为on。 当设置autovacuum为on,autovacuum_max_workers为0时,表示系统不会自动进行autovacuum,只会在故障恢复后,自动清理两阶段事务。 当设置autovacuum为on,autovacuum_max_workers大于0时,表示系统不仅在故障恢复后,自动清理两阶段事务,并且还可以自动清理进程。 即使此参数设置为off,数据库也会在需要防止事务ID回卷时发起清理进程。对于CREATE/DROP DATABASE发生异常时,可能有的节点提交或回滚,有的节点未提交(prepared状态),此时系统不能自动修复,需要手动修复,修复步骤: 使用gs_clean工具(-N参数)查询出异常两阶段事务的xid以及处于prepared的节点。 登录事务处于prepared状态的节点,系统管理员连接一个可用的数据库(如gaussdb),执行语句SET xc_maintenance_mode = on。 根据事务全局状态提交或者回滚此两阶段事务(如提交语句、回滚语句)。 如果集群长时间保持autovacuum=off的配置状态时,如需修改为on,必须对集群的关键系统表先执行一次VACUUM FULL。这些关键系统表包括但不限于pg_class、pg_attribute、pg_index、pg_type、pg_statistic、pg_statistic_ext、pg_proc、pg_partition、pg_constraint、pg_inherits、pg_rewrite、pg_description、pg_depend、pg_shdepend、pg_shdescription、pgxc_class、pg_jobs、pg_redaction_policy、pg_redaction_column、pg_object及pg_relfilenode_size。
  • autovacuum_mode 参数说明:该参数仅在autovacuum设置为on的场景下生效,它控制autoanalyze或autovacuum的打开情况。 参数类型:SIGHUP 取值范围:枚举类型 analyze表示只执行autoanalyze。 vacuum表示只执行autovacuum。 mix表示autoanalyze和autovacuum都执行。 none表示二者都不执行。 默认值:mix
  • autoanalyze_mode 参数说明:设置autoanalyze的模式。该参数仅8.2.0及以上集群版本支持。 参数类型:USERSET 取值范围:枚举类型 normal表示普通的autoanalyze。 light表示轻量化的autoanalyze。 默认值: 若当前集群为低版本升级到8.2.0及以上集群版本,为保持和前向兼容,默认值为normal。 若当前集群为新装的8.2.0及以上集群版本,默认值为light。
  • autovacuum_freeze_max_age 参数说明:设置事务内的最大时间,使得表的pg_class.relfrozenxid字段在VACUUM操作执行之前被写入。 VACUUM也可以删除pg_clog/子目录中的旧文件;即使自动清理进程被禁止,系统也会调用自动清理进程来防止循环重复。 参数类型:SIGHUP 取值范围:整型,100 000~576 460 752 303 423 487 默认值:4000000000
  • analyze_stats_mode 参数说明:设置analyze计算统计信息的模式。 参数类型:USERSET 取值范围:枚举类型 memory表示强制使用内存计算统计信息,不计算多列统计信息。 sample_table表示强制使用临时采样表计算统计信息,临时表不支持使用该模式。 dynamic表示按内存maintenance_work_mem大小自适应选择统计信息计算模式,若maintenance_work_mem可放下样本,则使用内存方式,否则使用临时采样表方式。 默认值: 若当前集群为低版本升级到8.2.0.100及以上集群版本,为保持和前向兼容,默认值为memory。 若当前集群为新装的8.2.0.100及以上集群版本,默认值为dynamic。
  • autovacuum_analyze_scale_factor 参数说明:设置触发一个ANALYZE时增加到autovacuum_analyze_threshold的表大小的缩放系数。 参数类型:SIGHUP 取值范围:浮点型,0.0~100.0 默认值: 若当前集群为低版本升级到8.1.3及以上集群版本,为保持和前向兼容,默认值为0.25。 若当前集群为新装的8.1.3及以上集群版本,默认值为0.1。
  • enable_wlm_internal_memory_limit 参数说明:是否开启负载管理对语句估算内存的内置限制功能。(该参数仅8.2.0及以上集群版本支持) 负载管理中的内存管理模块中,会对语句的估算内存做一些内置限制,如: 语句的估算内存无法超过关联资源池内存上限的80%。 当资源池的并发控制参数active_statements不为1时,语句的估算内存无法超过关联资源池内存上限的40%。 内核中语句的估算内存开始时是一个范围值,可以理解为[最小估算内存,最大估算内存],其中,最大估算内存为语句运行性能最佳所需要的内存资源,最小估算内存为通过结果集下盘而保证语句能运行所需要的内存资源;最终的语句估算内存会在这个范围内取一个合理值,这个范围值中的最大估算内存也无法超过关联资源池内存上限的90%; 这些内置限制的目的是为了防止语句内存过高估算场景,高估场景下,语句预占内存资源过大,会引发后续作业排队,导致系统资源利用率下降,因此,内核限制了单个语句的估算内存上限值。内置限制可能会导致语句执行计划不是最优,可能在一定程度上影响单个语句性能;从8.2.0集群版本开始增加了内存负反馈机制,从一定程度上缓解了语句严重高估导致系统资源利用率下降的问题。为此,对应的从8.2.0版本开始,增加了enable_wlm_internal_memory_limit参数,由用户自由控制是否开启内置限制功能。 参数类型:SIGHUP 取值范围:布尔型 on表示打开负载管理对语句估算内存的内置限制。 off表示关闭负载管理对语句估算内存的内置限制。 默认值:on
  • allow_zero_estimate_memory 参数说明:是否允许语句估算内存为0。(该参数仅8.2.0及以上集群版本支持) 当语句查询的表没有统计信息时,该语句在CN节点上的估算内存可能设置为0,当估算内存为0时,语句的内存将会变化为算子内存受到work_mem限制(work_mem来限制算子内存的方式已经不推荐使用),如果work_mem设置较大,而语句的算子数量较多时,语句的实际内存值也能会较大,该参数设置为off时,将不允许未做analyze的查询出现估算内存为0,避免不可预期的问题。 参数类型:SIGHUP 取值范围:布尔型 on表示允许语句估算内存为0。 off表示不允许语句估算内存为0。 默认值:on
  • session_respool 参数说明:当前的session关联的resource pool。 参数类型:USERSET 即如果先设置cgroup_name,再设置session_respool,那么session_respool关联的控制组起作用,如果再切换cgroup_name,那么新切换的cgroup_name起作用。 切换cgroup_name的过程中如果指定到Workload控制组级别,数据库不对级别进行验证。级别的范围只要在1-10范围内都可以。 建议尽量不要混合使用cgroup_name和session_respool。 取值范围:字符串,通过create resource pool所设置的资源池。 默认值:invalid_pool
  • topsql_retention_time 参数说明:设置历史TopSQL中gs_wlm_session_info和gs_wlm_operator_info表中数据的保存时间。 参数类型:SIGHUP 取值范围:整型,0~3650,单位为天。 值为0时,表示数据永久保存。 值大于0时,表示数据能够保存的对应天数。 默认值:30 设置此GUC参数启用数据保存功能前,请先清理gs_wlm_session_info和gs_wlm_operator_info表中的数据。 新建集群默认值为30,升级场景该参数的默认值为保持前向兼容维持原值。
  • enable_strict_memory_expansion 参数说明:是否开启对语句内存扩展的严格控制。(该参数仅8.2.0及以上集群版本支持) 语句在CN节点上会计算出估算内存,用该值来预占内存资源,在DN节点上会根据系统负载情况,在语句内存不足时尝试做内存扩展,以提升语句的执行效率。当打开此参数时,将会严格限制语句内存扩展的范围,尽可能保证语句的内存扩展不会超过语句的最大估算内存。语句的算子内存每次扩展是按比例扩展,因此,可能出现最后一次扩展内存之后一定幅度超过限制的现象,但能实现限制语句内存扩展在一定范围内。 参数类型:SIGHUP 取值范围:布尔型 on表示打开对语句内存扩展的严格控制。 off表示关闭对语句内存扩展的严格控制。 默认值:off
  • wlm_memory_feedback_adjust 参数说明:是否开启动态负载管理中的内存负反馈功能。(该参数仅8.2.0及以上集群版本支持) 语句在CN节点上会计算出估算内存,用该值来预占内存资源,语句内存过高估算场景时,语句预占内存资源过大,会引发后续作业排队,导致系统资源利用率下降,内存负反馈机制,会基于DN上的实际使用内存情况,判断如果集群连续一段时间处于高估场景时,会由CCN节点动态降低语句在CN预占的内存资源,将高估的内存腾让出来,给后续作业使用,从一定程度上缓解了语句严重高估导致系统资源利用率下降的问题。 参数类型:SIGHUP 取值范围:字符串 on表示启用内存负反馈功能。 off表示关闭内存负反馈功能。 on(触发负反馈需要的时间,触发负反馈需要的估算内存百分比)表示启用内存负反馈功能,并且指定触发负反馈需要的时间以及触发负反馈需要的估算内存百分比参数。例如:on(60,50)表示启用内存负反馈功能,触发负反馈机制生效需要连续60秒都是高估场景,还需要语句预占的估算内存总值要超过系统可用内存的50%。默认触发负反馈机制生效的时间长度为50秒,默认触发负反馈生效的最低估算内存总值要超过系统可用内存的40%。 默认值:on
  • enable_global_memctl 参数说明:是否开启全局内存管理功能。该参数仅8.2.1及以上集群版本支持。 参数类型:SIGHUP 取值范围:布尔型 on表示打开全局内存管控的限制。 off表示关闭全局内存管控的限制。 默认值:on 动态负载功能包含两层内存管控队列:全局内存管控和资源池管控。全局内存管控通过作业的查询估算内存进行判断作业是否可进行下发,资源池管控通过资源池参数决定作业是否下发。8.2.1集群版本之前,开启动态负载管理功能后默认打开全局内存管控功能,由于可能存在优化器行数估算不准而出现语句内存使用量低估或高估,导致作业在CCN进行全局内存管控队列排队的情况。因此 GaussDB (DWS)在8.2.1集群版本用该参数控制全局内存管控队列是否开启,以提高作业运行效率和减少CCN异常排队的情况发生。
  • enable_dynamic_workload 参数说明:是否开启动态负载管理功能。 参数类型:POSTMASTER 取值范围:布尔型 on表示打开动态负载管理功能。 off表示关闭动态负载管理功能。 默认值:on 开启内存自适应后,收集统计信息后不再需要使用work_mem进行算子内存使用调优,由系统根据当前负载情况,为每个语句生成计划,并估算每个算子的内存使用量和整个语句的内存使用量。系统根据负载情况和整个语句内存使用量进行队列调度,所以多并发场景会出现语句排队的情况。 由于优化器估算内存存在估算不准的情况,会出现语句内存使用量低估或高估的情况。低估时,执行时内存会自动扩展。高估时,会导致系统内存利用不足,排队语句增多,可能导致性能非最优。此时需要识别语句估算内存远大于实际DN峰值内存的语句,通过设置query_max_mem进行调优,详见优化器参数调整。 由于优化器估算内存存在估算不准的情况,8.2.1之前的集群版本中为了避免出现CCN全局排队的情况,经常需要关闭enable_dynamic_workload参数,这样操作会导致动态负载管理功能不可用。因此在8.2.1集群版本中引入了enable_global_memctl,在出现CCN异常排队情况时,可直接关闭参数enable_global_memctl,作业即可下发至资源池运行。
  • transaction_pending_time 参数说明:当enable_transaction_parctl为on时,事务块语句和存储过程语句排队的最大时间。 参数类型:USERSET 取值范围:整型,-1~INT_MAX,单位为秒。 值为-1或0:事务块语句和存储过程语句无超时判断,排队至资源满足可执行条件。 值大于0:事务块语句和存储过程语句排队超过所设数值的时间后,无视当前资源情况强制执行。 默认值:0 此参数仅对存储过程及事务块的内部语句有效,即PG_SESSION_WLMSTAT中enqueue字段显示为Transaction或StoredProc的语句才会生效。
  • wlm_sql_allow_list 参数说明:用于指定资源管理SQL白名单语句,SQL白名单语句不受资源管理监控。 参数类型:SIGHUP 取值范围:字符串,支持最大字符为1024 默认值:空 wlm_sql_allow_list中可指定一条或多条SQL白名单语句,指定多条时,通过“;”进行分隔。 系统通过前置匹配判断SQL语句是否受监控,不区分大小写,例如:wlm_sql_allow_list='SELECT',则所有select语句均不受资源管理监控。 识别参数值白名单字符串头部的空格,例如:'SELECT'与' SELECT'的含义是不一致的,' SELECT'只过滤头部带空格的SELECT语句。 系统默认部分SQL语句为白名单语句,默认白名单语句不可修改;可以通过系统视图gs_wlm_sql_allow查询默认和已经通过GUC设置成功的SQL白名单语句。 通过wlm_sql_allow_list指定的SQL语句不可追加,只能通过覆盖的方式设置;若需追加SQL语句,需要先查出原先指定的GUC值,在原值后面加补上新增的语句,以“;”分隔后重新设置。
  • max_active_statements 参数说明:设置全局的最大并发数量。该参数只在CN上应用且针对一个CN上的执行作业。 数据库管理员需根据系统资源(如CPU资源、IO资源和内存资源)情况,调整此数值大小,使得系统支持最大限度的并发作业,且防止并发执行作业过多,引起系统崩溃。 参数类型:SIGHUP 取值范围:整型,-1 ~ INT_MAX。设置为-1和0表示对最大并发数不做限制。 默认值:60
  • enable_resource_record 参数说明:设置是否开启资源监控记录归档功能。开启时,对于执行结束的记录,会分别被归档到相应的INFO视图(GS_WLM_SESSION_INFO和GS_WLM_OPERAROR_INFO)。此参数需在CN和DN同时应用。 参数类型:SIGHUP 取值范围:布尔型 on表示开启资源监控记录归档功能。 off表示关闭资源监控记录归档功能。 默认值:on 新建集群默认值为on,升级场景该参数的默认值为保持前向兼容维持原值。
  • resource_track_cost 参数说明:设置对当前会话的语句进行资源监控的最小执行代价。该参数只有当参数enable_resource_track为on时才有效。 参数类型:USERSET 取值范围:整型,-1~INT_MAX 值为-1时,不进行资源监控。 值大于或等于0时,对执行代价超过该参数值的语句进行资源监控。 默认值:0 新建集群默认值为0,升级场景该参数的默认值为保持前向兼容维持原值。
  • use_workload_manager 参数说明:是否开启资源管理功能。该参数需在CN和DN同时应用。 参数类型:SIGHUP 取值范围:布尔型 on表示打开资源管理。 off表示关闭资源管理。 当使用GUC参数设置来修改参数值时,新参数值只能对更改操作执行后启动的线程生效。此外,对于后台线程以及线程复用执行的新作业,该参数值的改动不会生效。如果希望这类线程即时识别参数变化,可以使用kill session或重启节点的方式来实现。 use_workload_manager参数由off变为on状态后,资源管理视图变为可用,并且可以查询off状态下统计的存储资源使用情况。若存在些许误差的情况下,需要矫正用户使用的存储资源,可数据库中执行如下命令,在执行该命令的过程中,如果对表中插入数据,可能会出现统计不够准确的情况: 1 select gs_wlm_readjust_user_space(0); 默认值:on
  • enable_track_record_subsql 参数说明:设置是否开启子语句记录归档功能。开启时,存储过程、匿名块内部的子语句会被记录归档到相应的INFO表(GS_WLM_SESSION_INFO)。此参数为会话级参数,可在与CN的连接会话中设置生效,仅影响该会话连接中的语句;也可在CN和DN上同时设置,能全局生效。 参数类型:USERSET 取值范围:布尔型 on表示开启子语句资源监控记录归档功能。 off表示关闭子语句资源监控记录归档功能。 默认值:on
  • time_track_strategy 参数说明:设置当前会话算子执行时间收集采用的策略。该参数仅8.2.1及以上集群版本支持。 参数类型:SIGHUP 取值范围:枚举型 tsc,使用TSC(Time-Stamp Counter)进行算子执行时间的收集,适用perf级别的Top SQL以及EXPLAIN,且仅针对非向量化算子。其他场景依然使用时间函数进行执行时间的收集。 vector,关闭perf级别Top SQL非向量化算子执行时间的收集,其他场景不受影响,依然使用时间函数进行执行时间的收集。 timer,所有场景均使用时间函数进行时间算子执行时间的收集,8.2.0及之前的集群版本均使用该方法进行算子执行时间的收集。 默认值:timer TSC有两种转换时间的方法,包括TSC频率和换算数。X86平台默认仅能使用TSC频率,ARM平台默认优先使用TSC换算数。可通过tsc相关的视图或者函数查看当前或者所有节点的TSC换算信息。 新安装集群场景下,该参数的默认值为tsc。升级场景下,该参数为保持前向兼容,其默认值为timer。
  • space_readjust_schedule 参数说明:空间管控和空间统计功能中,控制是否触发自动校准以及校准空间误差阈值。该参数8.1.3及以上集群版本支持。 参数类型:SIGHUP 取值范围:字符串 off表示关闭自动校准功能。 auto表示打开自动校准功能,并且触发自动校准的差误阈值为1GB。 auto(空间大小+K/M/G)表示打开自动校准功能,并且触发自动校准的误差阈值为自定义的空间大小KB/MB/GB。例如,auto(200M)表示打开自动校准功能,且触发自动校准的误差阈值为200MB。 默认值:auto
共100000条