华为云用户手册

  • GUC参数设置 GaussDB 提供了六类GUC参数,具体分类和设置方式请参考表1: 表1 GUC参数分类 参数类型 说明 设置方式 INTERNAL 固定参数,在创建数据库的时候确定,用户无法修改,只能通过show语法或者pg_settings视图进行查看。 无 POSTMASTER 数据库服务端参数,在数据库启动时确定,可以通过配置文件指定。 支持表2中的方式一。 SIGHUP 数据库全局参数,可在数据库启动时设置或者在数据库启动后,发送指令重新加载。 支持表2中的方式一、方式二。 BACKEND 会话连接参数。在创建会话连接时指定,连接建立后无法修改。连接断掉后参数失效。内部使用参数,不推荐用户设置。 支持表2中的方式一、方式二。 说明: 设置该参数后,下一次建立会话连接时生效。 SUSET 数据库管理员参数。可在数据库启动时、数据库启动后或者数据库管理员通过SQL进行设置。 支持表2中的方式一、方式二或由数据库管理员通过方式三设置。 USERSET 普通用户参数。可被任何用户在任何时刻设置。 支持表2中的方式一、方式二或方式三设置。 说明: 设置USERSET类型的参数时,ALTER DATABASE设置的参数值优先级高于gs_guc设置。如果想要gs_guc设置的参数值生效,则需要执行“alter database xxx reset xxx”进行重置。 GaussDB提供了三种方式来修改GUC参数,具体操作请参考表2: 表2 GUC参数设置方式 序号 设置方法 方式一 登录管理控制台。 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。 在左侧导航栏单击“参数修改”,进入参数修改页面,在该页面修改参数。 如果需要修改的参数在管理该控制台无法修改,请提前评估风险后再联系客服进行修改。 重启数据库使参数生效。 说明: 重启数据库集群操作会导致用户执行操作中断,请在操作之前规划好合适的执行窗口。 方式二 登录管理控制台。 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。 在左侧导航栏单击“参数修改”,进入参数修改页面,在该页面修改参数。 如果需要修改的参数在管理该控制台无法修改,请提前评估风险后再联系客服进行修改。 方式三 修改会话级别的参数。 设置会话级别的参数 1 gaussdb=# SET paraname TO value; 修改本次会话中的取值。退出会话后,设置将失效。 使用方式一和方式二设置参数时,若所设参数不属于当前环境,数据库会提示参数不在支持范围内的相关信息。 如果需要修改的参数无法通过以上方式设置,请提前评估风险后再联系客服进行修改。
  • 背景信息 GaussDB提供了多种修改GUC参数的方法,用户可以方便地针对数据库、用户、会话进行设置。 参数名称不区分大小写。 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。 枚举类型的取值是在系统表pg_settings的enumvals字段取值定义的。 对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。 参数的默认单位在系统表pg_settings的unit字段定义的。 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。 CN和DN参数可以同时进行设置,其他类型的参数不能同时进行设置。 具体参数说明请参见GUC参数说明。
  • SQL语言分为哪几类? 答:SQL语言分为3类,分别为: DDL(Data Definition Language,数据定义语言),用于定义或修改数据库中的对象,如:表、索引、视图等。 DML(Data Manipulation Language,数据操作语言),用于对数据库表中的数据进行操作。如:插入、更新、查询、删除。 DCL(Data Control Language,数据控制语言),用于设置或更改数据库用户或角色权限。 父主题: FAQ
  • 如何查看某张表创建时间? 答:在系统视图PG_TABLES里created字段的取值为表的真实创建时间。 --创建表。 gaussdb=# CREATE TABLE test(id int, name varchar(10)); --查询test表创建时间。 gaussdb=# SELECT tablename,created FROM pg_tables WHERE tablename = 'test'; tablename | created -----------+------------------------------- test | 2024-01-12 14:50:59.611988+08 (1 row) 父主题: FAQ
  • gsivfflat_secondary_probes 参数说明:指定利用gsivfflat索引检索向量时待搜索的二级倒排列表的数量,超过二级倒排列表总数时执行全表搜索。二级倒排列表总数由创建索引时参数ivf_nlist2指定。 参数类型:数值型 参数单位:\ 取值范围:[1, 32768] 默认值:5 级别:会话级(session) gsivfflat_secondary_probes效果和gsivfflat_probes相同,只有向量索引为双层索引时生效,可以有效加速查询速度,推荐设置为索引创建时参数ivf_nlist2的1/4~1/2之间。建议在使用中通过实验获得最优的参数配置。
  • gsivfflat_probes 参数说明:指定利用gsivfflat检索向量时待搜索的倒排列表的数量,超过gsivfflat索引的倒排列表总数时执行全表搜索。gsivfflat索引的倒排列表总数由创建索引时参数ivf_nlist指定。 参数类型:数值型 参数单位:\ 取值范围:[1, 32768] 默认值:5 级别:会话级(session) gsivfflat_probes设置越大搜索时间越长但是结果更准确,推荐设置为索引创建时参数ivf_nlist取值的3%。建议在使用中通过实验获得最优的参数配置。
  • max_compile_packages 参数说明:设置服务器存储的PACKAGE编译结果的最大数量。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647,0表示不开启该功能,不控制PACKAGE编译结果的数量。不同规格下该参数默认值可以适当调整,可以根据计算公式(max_process_memory * 2%)/ 4.4MB 然后向下取整得到推荐值 4.4MB是根据实验室模拟统计得到的平均值,实际场景仍需要观察,如果该经验值不符合实际场景,需要重新调整该值以调整存储过程对内存的占用。 默认值: 不同规格默认值:(max_process_memory * 2%)/ 4.4MB 向下取整 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:存储过多的PACKAGE的编译结果可能占用很大内存,将此参数设置为一个合理的值,有助于减少内存占用,提升系统性能。
  • global_syscache_threshold 参数说明:全局系统缓存内存最大占用大小,使用时需要打开enable_global_syscache参数。 参数类型:整型 参数单位:kB 取值范围:16384~1073741824 默认值:163840(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);65536(4核CPU/16G内存) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:热点DB个数和线程个数的最小值乘以每个DB分配的内存大小。 即global_syscache_threshold = min(count(hot dbs),count(threads)) * memofdb。 热点DB数即访问较为频繁的数据库,线程数在线程池模式下取线程池线程个数和后台线程个数之和,非线程池模式不需要计算这个值,直接使用热点DB数。 memofdb即平均每个db应该分配的内存,每个DB的底噪内存是2M,平均每增加一个表或者索引,增加11k内存。 如果设置的值过小,会导致内存频繁淘汰,内存存在大量碎片无法回收,导致内存控制失效。
  • recyclebin_retention_time 参数说明:设置回收站对象保留时间,超过该时间的回收站对象将被自动清理。 参数类型:整型 参数单位:s 取值范围:1~2147483647。 默认值:15min(即900s) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值900,表示recyclebin_retention_time为900s;带单位取值15min,表示recyclebin_retention_time为15min。取值如果要带单位,必须为s、min、h、d。
  • dcf_candidate_names 参数说明:DCF候选者列表参数。即有可能被选为主机的DN节点名称。DCF自动模式下选举策略受此参数控制,不在此列表内的DN无法当选为主机。 参数类型:字符串 参数单位:无 取值范围:字符串,配置格式例如:‘dn_name1,dn_name2,dn_name3’。参数依赖dcf_node_id_map,DN名称必须位于dcf_node_id_map中,且使用逗号分隔。 默认值:空字符串 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:无
  • dcf_thread_effective_time 参数说明:DCF刷盘线程存活有效时间。参数用于判断磁盘是否处于I/O hang,若超过此时间DCF控制日志无法刷新,无法访问I/O资源则认为线程I/O hang,则会触发降备动作。参数配置为0表示关闭I/O hang检测。 参数类型:整型 参数单位:秒(s) 取值范围:0~1000 默认值:160 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:无
  • dcf_node_id_map 参数说明:DN备机名称与DCF node_id映射字典,参数重启生效,参数安装阶段配置,后续不支持修改。在DCF集群安装、升级、节点替换场景会涉及使用此参数。GUC参数synchronous_standby_names中配置的standby_name需包含在此字典内。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:字符串。配置格式例如: 'standby_name1:dcf_node_id1,standby_name2:dcf_node_id2',DN备机名称对应的DCF node_id数值,使用逗号分隔。 默认值:空字符串
  • dcf_pri_leader_timeout 参数说明:优先级选主超时时间。DCF自动模式下,开启优先级选主功能后,备机触发优先级选主,如果超出此超时时间仍然未当选为主,则放弃此轮选举。参数配置为0表示优先级选主会一直等待选举成功为止。 参数类型:整型 参数单位:秒(s) 取值范围:0~3600 默认值:60 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:无
  • dcf_run_mode 参数说明:DCF选举模式,0表示自动选举模式,1表示手动选举模式,2表示去使能选举模式。目前去使能选举模式只限定少数派恢复场景使用,修改会导致数据库实例不可用。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 须知:实例在正常状态下进行工作模式切换才能保证切换后工作正常。GUC参数设置和cm_ctl设置的DCF工作模式需要保持一致,即两者需要同步设置为DCF手动或自动模式。 例如,设置DCF手动模式如下: cm_ctl set --param --server -k dn_arbitrate_mode=quorum cm_ctl reload --param --server gs_guc reload -Z datanode -I all -N all -c "dcf_run_mode=1" 设置DCF自动模式如下: cm_ctl set --param --server -k dn_arbitrate_mode=paxos cm_ctl reload --param --server gs_guc reload -Z datanode -I all -N all -c "dcf_run_mode=0" 取值范围:枚举类型,0、1、2 默认值:1
  • dcf_log_file_permission 参数说明:DCF运行日志文件属性,参数重启生效,参数安装阶段配置,后续不支持修改。若用户需要支持同组的其他用户访问日志,首先需要所有的父目录都支持同组的其他用户也能访问。即若参数dcf_log_path_permission配置为750,dcf_log_file_permission只能为600或者640。若参数dcf_log_path_permission配置为700,dcf_log_file_permission只能为600。 该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 取值范围:枚举型,600、640。 默认值:600
  • dcf_election_timeout 参数说明:DCF leader和follower选举超时时间。选举超时时间数值依赖于当前DN之间的网络状况,在超时时间较小且网络极差的情形下,会有超时选举发生,待网络恢复选举恢复正常。建议根据当前网络状态合理设置超时时间。对DCF节点时钟的约束:DCF节点间最大时钟差异小于选举超时时间的一半。在DCF手动选举模式下,为了不影响CM及时仲裁选举,禁止对该参数配置修改,按默认选举超时时间设置即可。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:整型,单位s,1~600。 默认值:3
  • dcf_log_level 参数说明:DCF日志级别。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:字符串 关闭日志:“NONE”,NONE表示关闭日志打印,不能与以下日志级别混合使用。 开启日志:“RUN_ERR|RUN_WAR|RUN_INF|DEBUG_ERR|DEBUG_WAR|DEBUG_INF|TRACE|PROFILE|OPER” 日志级别可以从上述字符串中选取字符串并使用竖线组合使用,不能配置空串。 默认值:“RUN_ERR|RUN_WAR|DEBUG_ERR|OPER|RUN_INF|PROFILE”
  • dcf_majority_groups 参数说明:DCF策略化多数派功能设置。对于需要配置此参数的group,该group内至少有一台备机收到日志。即该group内存在一台同步备机。若对DCF实例内做了增删节点或者对实例内节点group值进行了调整修改,需同步修改此配置。修改此参数时需保证group数值实际存在且有效。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:字符串 关闭:“”,空字符串表示策略化多数派功能关闭。 开启: 配置有效的group值,使用逗号分隔,group值需在dcf_config中存在。例如将group值分别为1和2,加入DCF的策略化多数派配置时,可以设置为"1,2";若配置了dcf_config中不存在的group值或者其他字符,DCF将认为该配置的group无效。 默认值:空字符串 若配置了参数后某一group内所有节点均故障,在对其中某个节点做涉及节点build相关操作(节点修复、不换ip的节点替换)时,需要将该group从此参数列表中移除,待节点恢复正常后可将该group再次配置到此参数。
  • thread_pool_stream_attr 参数说明:用于控制stream线程池功能的详细属性,stream线程只在DN生效,该参数仅在enable_thread_pool打开后生效,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 该参数分为4个部分,'stream_thread_num, stream_proc_ratio ,group_num ,cpubind_info',这4个部分的具体含义如下: stream_thread_num:stream线程池中的线程总数,取值范围是0~4096。其中0的含义是数据库根据系统CPU core的数量来自动配置线程池的线程数,如果参数值大于0,线程池中的线程数等于stream_thread_num。线程池大小推荐根据硬件配置设置,计算公式如下:stream_thread_num = CPU核数*3~5,stream_thread_num最大值为4096。 stream_proc_ratio:预留给stream线程的proc数量比例,浮点类型,默认为0.2,预留proc计算方式为:stream_proc_ratio * stream_thread_num。 group_num:线程池中的线程分组个数,取值范围是0~64。其中0的含义是数据库根据系统NUMA组的个数来自动配置线程池的线程分组个数,如果参数值大于0,线程池中的线程组个数等于group_num。thread_pool_stream_attr的group_num需与thread_pool_attr的group_num配置和使用保持一致,若设置为不同值,以thread_pool_attr的group_num为准。 cpubind_info:线程池是否绑核的配置参数。可选择的配置方式有集中:1. '(nobind)' ,线程不做绑核;2. '(allbind)',利用当前系统所有能查询到的CPU core做线程绑核;3. '(nodebind: 1, 2)',利用NUMA组1,2中的CPU core进行绑核;4. '(cpubind: 0-30)',利用0-30号CPU core进行绑核;5. '(numabind: 0-30)',在NUMA组内利用0-30号CPU core进行绑核。该参数不区分大小写。thread_pool_stream_attr的cpubind_info需与thread_pool_attr的cpubind_info配置和使用保持一致,若设置为不同值,以thread_pool_attr的cpubind_info为准。 默认值: stream_thread_num:16 stream_proc_ratio:0.2 group_num、cpubind_info:参见thread_pool_attr。
  • resilience_threadpool_reject_cond 参数说明:用于控制线程池过载逃生的线程池使用率比例。该参数仅在GUC参数use_workload_manager和enable_thread_pool打开时生效。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 该参数分为recover_threadpool_percent、overload_threadpool_percent 2部分,这2个部分的具体含义如下: recover_threadpool_percent:线程池恢复正常状态时的线程池使用率,当线程池使用率小于该值时,停止过载逃生并放开新连接接入,取值为0~INT_MAX,设置为多少表示百分之多少。 overload_threadpool_percent:线程池过载时的线程池使用率,当线程池使用率大于该值时,表示当前线程池已经过载,触发过载逃生kill会话并禁止新连接接入,取值为0~INT_MAX,设置为多少表示百分之多少。 默认值:'0,0',表示关闭线程池逃生功能。 示例: resilience_threadpool_reject_cond = '50,90' 表示线程池使用率超过90%后禁止新连接接入并kill堆积的会话,kill会话过程中线程池使用率下降到50%时停止kill会话并允许新连接接入。 线程池使用率可以通过DBE_PERF.local_threadpool_status视图查询获得;线程池设置的初试线程池线程数目可以通过查询thread_pool_attr参数获得。 该参数如果设置的百分比过小,则会频繁触发线程池过载逃生流程,会使正在执行的会话被强制退出,新连接短时间接入失败,需要根据实际线程池使用情况慎重设置。 recover_threadpool_percent和overload_threadpool_percent的值可以同时为0,除此之外,recover_threadpool_percent的值必须要小于overload_threadpool_percent,否则会设置不生效。
  • hll_default_log2sparse 参数说明:该参数可以用来设置从Sparse模式到Full模式的默认阈值大小。 参数类型:整型 参数单位:无 取值范围:0~14。0表示跳过Explicit模式,取1-14表示在基数到达2hll_default_log2sparse时切换模式。 默认值:12 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:设置为默认值,可以根据实际业务需要进行调整。
  • hll_default_log2m 参数说明:该参数可以指定hll数据结构桶的个数。桶的个数会影响hll计算distinct值的精度,桶的个数越多,误差越小。误差范围为:[-1.04/2log2m*1/2,+1.04/2log2m*1/2]。 参数类型:整型 参数单位:无 取值范围:10~16。 默认值:14 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:设置为默认值,可以根据实际业务需要进行调整。
  • hll_default_log2explicit 参数说明:该参数可以用来设置从Explicit模式到Sparse模式的默认阈值大小。 参数类型:整型 参数单位:无 取值范围:0~12。0表示跳过Explicit模式,取1-12表示在基数到达2hll_default_log2explicit时切换模式。 默认值:10 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:设置为默认值,可以根据实际业务需要进行调整。
  • enable_gtt_concurrent_truncate 参数说明:是否支持全局临时表truncate table和DML的并发执行,以及全局临时表truncate table和truncate table的并发执行。 该参数SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on/true表示支持上述操作并发。 off/false表示不支持上述操作并发。 默认值:on
  • enable_tde 参数说明:透明 数据加密 功能开关。创建加密表前需要将此参数置为on,并且通过tde_key_info参数配置密钥信息。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。 on:开启透明数据加密功能。 off:关闭透明数据加密功能。 默认值:off 设置此参数为on,需要保证tde_key_info参数中密钥信息配置正确,并且密钥服务可以正常访问,否则会导致数据库无法正常启动。 设置此参数为on并且创建了加密表后,如果再将此参数设置为off会导致已有加密表的数据无法进行加解密,从而导致数据库异常。
  • block_encryption_mode 参数说明:aes_encrypt和aes_decrypt函数进行加解密时使用的块加密模式。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型,有效值为aes-128-cbc, aes-192-cbc,aes-256-cbc,aes-128-cfb1,aes-192-cfb1,aes-256-cfb1,aes-128-cfb8,aes-192-cfb8,aes-256-cfb8,aes-128-cfb128,aes-192-cfb128,aes-256-cfb128,aes-128-ofb,aes-192-ofb,aes-256-ofb。其中aes表示加/解密算法,128/192/256表示密钥长度(单位:bit),cbc/cfb1/cfb8/cfb128/ofb表示块加/解密模式。 默认值:aes-128-cbc
  • enable_rls_match_index 参数说明:控制是否支持在行级访问控制特性使用场景中,基于目标谓词条件对基表执行索引扫描。目标场景为:基表设置并开启了RLS(Row Level Security)策略,查询谓词中包含unleakproof类型系统函数或like操作符。 取值范围:布尔型。 on:支持目标场景下的基表索引扫描。 off:不支持目标场景下的基表索引扫描。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置为默认值。若业务热点查询语句为目标场景,且基表行级访问策略数量较少,可打开该开关以显著提升查询性能。 该参数的修改,会影响目标场景下执行计划的生成,可通过重连、创建操作符等方式手动使缓存计划失效。 该参数开启后,会影响到位图扫描算子的生成,RLS策略谓词将被插入到Recheck过滤条件中;因此,在该算子切换为lossy模式且RLS策略数目较多时,会对性能产生一定影响。
  • elastic_search_ip_addr 参数说明:Elastic Search系统IP地址 ,使用https协议格式为:https://ip:port:username;使用http协议格式为:http://ip:port。其中,ip为Elastic Search服务器的IP,port为Elastic Search HTTP通信的侦听端口,范围为9200 - 9299,username为用户在Elastic Search注册账号所使用的用户名,初始用户为elastic使用https协议需要配置相关证书,详见《安全加固指南》中“统一审计“章节。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。 默认值:''
  • tde_index_default_encrypt 参数说明:创建索引时,如果开启本参数,并且索引的基表是加密表,则数据库自动将索引设置为加密索引,并自动为索引复制基表的加密算法,密钥等加密参数,对索引中的数据先加密再存储。 参数类型:布尔型 参数单位:无 取值范围: on:自动对加密表的索引设置加密参数。 off:不自动对加密表的索引设置加密参数。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议设置为默认值。
  • use_elastic_search 参数说明:使能统一审计发送日志至Elastic Search系统, enable_security_policy打开且本参数打开后,统一审计日志会通过http(https)传递至Elastic Search系统(默认使用https安全协议)。此参数打开后需要保证elastic_search_ip_addr对应的es服务可正常连通,否则进程启动失败。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。 on:使能统一审计日志发送至Elastic Search。 off:关闭统一审计日志发送至Elastic Search。 默认值:off
共100000条