华为云用户手册

  • 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。 bind:当前session用户是逻辑集群用户时,候选计算Node Group为当前用户关联的逻辑集群的Node Group;当session用户不是逻辑集群用户时,候选计算Node Group选取规则和参数设置为query时的规则一致。 Node Group名: enable_nodegroup_debug为off时:候选计算Node Group列表包含算子操作对象所在的Node Group和该指定的Node Group。 enable_nodegroup_debug为on时:候选计算Node Group为指定的Node Group。 默认值:bind
  • enable_nodegroup_debug 参数说明:控制优化器在多Node Group环境下,是否使用强制弹性计算。Node Group目前为内部用机制,用户无需设置。 该参数只在expected_computing_nodegroup被设置为具体Node Group时生效。 参数类型:USERSET 取值范围:布尔型 on表示强制将计算弹性到expected_computing_nodegroup所指定的Node Group进行计算。 off表示不强制使用某个Node Group进行计算。 默认值:off
  • qrw_inlist2join_optmode 参数说明:控制是否使用inlist-to-join查询重写。 参数类型:USERSET 取值范围:字符串 disable:关闭inlist2join查询重写。 cost_base:基于代价的inlist2join查询重写。 rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:cost_base
  • enable_stream_ctescan 参数说明:控制stream计划是否支持ctescan。 参数类型:USERSET 取值范围:布尔型 on表示stream计划下支持ctescan。 off表示stream计划下不支持ctescan。 默认值:off 8.1.3.333以下低版本集群中,该参数默认打开;新装8.1.3.333集群版本中,该参数默认关闭;升级场景下保持前向兼容,即与升级前的集群中该参数的默认值保持一致。
  • enable_incremental_catchup 参数说明:控制主备之间数据追赶(catchup)的方式。 参数类型:SIGHUP 取值范围:布尔类型 on表示备机catchup时用增量catchup方式,即从从备本地数据文件扫描获得主备差异数据文件列表,进行主备之间的catchup。 off表示备机catchup时用全量catchup方式,即从主机本地所有数据文件扫描获得主备差异数据文件列表,进行主备之间的catchup。 默认值:on
  • max_build_io_limit 参数说明:用于限制主机在提供备机重建(build)会话时,一秒时间内所允许磁盘读取的数据流量。 参数类型:SIGHUP 取值范围:整型,0~1048576,单位为KB。 默认值:0,表示主机对备机build无IO流控限制。 设置建议:可参考磁盘带宽和作业模型。无限制时或无作业干扰时,全量build在性能良好的磁盘(如SSD盘)下占磁盘带宽比例较小,磁盘IO未达到瓶颈,对业务性能影响较小,不需要设置阈值限制。在普通10000RPM转速的SAS盘下,如果build过程中,发现业务性能明显下降,可对该参数进行设置,当前推荐设置为20MB。 此设置将直接对build的进行速度和完成时间产生影响,不建议设置过低(10MB以下不建议)。在业务低峰时,建议及时取消限制,恢复build的正常速度。 该参数可在业务高峰期或主机磁盘IO压力较大场景时,通过限制备机build的流速阈值以减少对主机业务的影响。待业务高峰期过后,可取消限制或重新设置流速阈值。 具体业务场景以及磁盘性能状况,建议选择合适的阈值。
  • wal_keep_segments 参数说明:Xlog日志文件段数量。设置“pg_xlog”目录下保留事务日志文件的最小数目,备机通过获取主机的日志进行流复制。 参数类型:SIGHUP 取值范围:整型,2 ~ INT_MAX 默认值:128 设置建议: 当服务器开启日志归档或者从检查点恢复时,保留的日志文件数量可能大于wal_keep_segments设定的值。 如果此参数设置过小,则在备机请求事务日志时,此事务日志可能已经被产生的新事务日志覆盖,导致请求失败,主备关系断开。 当双机为异步传输时,以COPY方式连续导入4G以上数据需要增大wal_keep_segments配置。以T6000单板为例,如果导入数据量为50G,建议调整参数为1000。您可以在导入完成并且日志同步正常后,动态恢复此参数设置。
  • checkpoint_segments 参数说明:设置checkpoint_timeout周期内所保留的最少WAL日志段文件数量。每个日志文件大小为16MB。 参数类型:SIGHUP 取值范围:整型,最小值1 默认值:64 提升此参数可加快大数据的导入速度,但需要结合checkpoint_timeout、shared_buffers这两个参数统一考虑。这个参数同时影响WAL日志段文件复用数量,通常情况下pg_xlog文件夹下最大的复用文件个数为2倍的checkpoint_segments个,复用的文件被改名为后续即将使用的WAL日志段文件,不会被真正删除。
  • wal_buffers 参数说明:设置用于存放WAL数据的共享内存空间的X LOG _BLCKSZ数,XLOG_BLCKSZ的大小默认为8KB。 参数类型:POSTMASTER 取值范围:-1~218,单位为8KB。 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整,为shared_buffers的1/32,最小值为8个XLOG_BLCKSZ,最大值为2048个XLOG_BLCKSZ。 如果设置为其他值,当小于8时,会被默认设置为8;当大于2048的时,会被强制设置为2048。 默认值:256MB 设置建议:每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。
  • wal_compression 参数说明:控制是否对FPI页面进行压缩。 参数类型:USERSET 取值范围:布尔型 on表示开启FPI压缩。 off表示关闭FPI压缩。 默认值:on 当前压缩算法为zlib,暂不支持设置为其他压缩算法。 对于通过从低版本升级成为当前版本的集群,此参数默认关闭(off)。如果用户需要,可以通过gs_guc命令打开FPI压缩功能。 当前版本若为全新安装版本,此参数默认打开(on)。 从低版本升级上来的集群,如果手动开启了此参数,不允许再进行集群回滚操作。
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。 参数类型:USERSET 取值范围:整型, 0~100000(微秒),其中0表示无延迟。 默认值:0 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。
  • wal_level 参数说明:设置写入WAL信息量的级别。 参数类型:POSTMASTER 取值范围:枚举类型 minimal 优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。 缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。 archive 这个参数增加了WAL归档需要的日志信息,从而可以支持数据库的归档恢复。 hot_standby 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。 为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby ,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。 默认值:hot_standby 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive或者hot_standby。 如果此参数设置为archive,hot_standby必须设置为off,否则将导致数据库无法启动。
  • gds_debug_mod 参数说明:为了增强对Gauss Data Service (以下简称GDS)相关问题的分析定位能力,可以通过此参数选择是否开启GDS的debug功能。参数开启后,将在集群节点对应的日志中输出GDS每次收发的包裹类型、命令交互的对端以及其他交互相关的细节信息,方便记录Gaussdb端状态机的状态跳转,以及目前所处的状态信息。此参数打开会输出额外日志,增加日志IO开销,进而影响性能和日志的信息有效性,因此请仅在定位GDS问题时开启。 参数类型:USERSET 取值范围:布尔型 on表示开启GDS debug功能。 off表示不开启GDS debug功能。 默认值:off
  • raise_errors_if_no_files 参数说明:导入时是否区分“导入文件记录数为空”和“导入文件不存在”。raise_errors_if_no_files=TRUE,则“导入文件不存在”的时候, GaussDB (DWS)将抛出“文件不存在的”错误。 参数类型:SUSET 取值范围:布尔型 on表示导入时区分“导入文件记录数为空”和“导入文件不存在”。 off表示导入时不区分“导入文件记录数为空”和“导入文件不存在”。 默认值:off
  • vacuum_cost_delay 参数说明:指定开销超过vacuum_cost_limit的值时进程将进入休眠的时间长度。 参数类型:USERSET 取值范围:整型,0~100,单位为毫秒(ms)。正数值表示打开基于开销的清理延迟特性;0表示关闭基于开销的清理延迟特性。 默认值:0 许多系统上,休眠的有效分辨率是10毫秒。因此把vacuum_cost_delay设置为一个不是10的整数倍的数值与将它设置为10的整数倍作用相同。 此参数一般设置较小,常见的设置是10或20毫秒。
  • max_files_per_node 参数说明:限制单个节点上单个SQL打开的文件最大数量。通常情况下,不需要设置此参数。该参数仅8.1.3及以上集群版本支持。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,其中-1表示不限制最大数量。 默认值:-1 新装集群中该参数的默认值为-1,升级场景该参数的默认值为保持前向兼容维持原值。 执行语句报错“The last file name is [%s] and %d files have already been opened on data node [%s] with a maximum of %d files.”时,请尝试增大max_files_per_node值。
  • temp_file_limit 参数说明:语句执行过程中触发落盘操作时,限制语句中单个线程落盘文件的总空间大小。例如,排序和哈希表使用的临时文件或者游标占用的临时文件。 此设置为会话级别的落盘文件控制。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。 默认值:配置temp_file_limit为实例所在磁盘空间总容量的10%。 SQL查询执行时使用的临时表空间不在此限制。
  • bi_page_reuse_factor 参数说明:行存表批量插入场景下,主备DN使用页复制进行数据同步时,可以复用的旧页面空闲空间的百分比。 参数类型:USERSET 取值范围:整型,0~100,单位为%。其中0表示不对页面进行复用,全部申请新页面。 默认值:70 不建议将此值设置为50以下(0除外),如果复用页面的空闲空间较小的话,会使主备DN间传输过多的旧页面数据,从而导致批量插入性能下降。 不建议将此值设置为90以上,如果此值设置过高,会导致频繁查询空闲页面,但又无法复用旧页面,得不偿失。
  • sql_use_spacelimit 参数说明:限制单个SQL在单个DN上,触发写盘操作时,所有类型写盘文件的总空间大小,管控的空间包括普通表、临时表以及中间结果集落盘占用的空间。系统管理员用户也受该参数限制。 参数类型:USERSET 取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。 默认值:配置sql_use_spacelimit为实例所在磁盘空间总容量的10%。 例如,执行语句中配置参数sql_use_spacelimit=100,当出现单DN写盘超过100kB时,DWS会主动终止该query的运行,并提示用户单DN写盘量超阈值。 1 2 insert into user1.t1 select * from user2.t1; ERROR: The space used on DN (104 kB) has exceeded the sql use space limit (100 kB). 建议处理方式: 优化语句,减少语句写盘占用空间。 如果磁盘空间充足可以适当调大该参数。
  • agg_max_mem 参数说明:设置执行作业中的Agg算子的聚集列超过5列时,该Agg算子所能够使用的最大内存。当agg_max_mem值大于0时生效。(该参数仅8.1.3.200及以上集群版本支持) 参数类型:USERSET 取值范围:整型,0,或大于32MB的整型,单位为KB。如果设置值小于32MB,系统会自动将该参数设置为默认值0,此时不会根据该值限制Agg算子的内存使用。 默认值: 若当前集群为低版本升级到8.1.3版本,继承升级前参数,默认值为INT_MAX。 若当前集群为新装的8.1.3版本,默认值为2GB。
  • psort_work_mem 参数说明:设置列存表在进行局部排序中在开始写入临时磁盘文件之前使用的内存大小。带partial cluster key的表、带索引的表插入,创建表索引,删除表和更新表都会用到。 参数类型:USERSET 多个正在运行的会话可能会同时进行表的局部排序操作,因此使用的总内存可能是psort_work_mem的好几倍。 取值范围:整型,64~INT_MAX,单位为KB。 默认值:512MB
  • temp_buffers 参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。 参数类型:USERSET 取值范围:整型,800~INT_MAX/2,单位为8KB。 默认值:8MB 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。
  • maintenance_work_mem 参数说明:设置在维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存。该参数的设置会影响VACUUM、VACUUM FULL、CLUSTER、CREATE INDEX的执行效率。 参数类型:USERSET 取值范围:整型,1024~INT_MAX,单位为KB。 默认值:小规格内存为512MB, 大规格内存为2GB(max_process_memory大于等于30GB为大规格内存,否则为小规格内存)。 设置建议: 建议设置此参数的值等于work_mem,可以改进清理和恢复数据库转储的速度。因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话。 当自动清理进程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值应该不小于work_mem。 如果进行大数据量的cluster等,可以在session中调大该值。
  • cstore_buffers 参数说明:设置列存和OBS、HDFS外表列存格式(orc、parquet、carbondata)所使用的共享缓冲区的大小。 参数类型:POSTMASTER 取值范围:整型,16384~INT_MAX,单位为KB。 默认值:CN为32MB,DN取公式计算:POWER(2,ROUND(LOG(2,max_process_memory/18),0)) 设置建议: 列存表使用cstore_buffers设置的共享缓冲区,几乎不用shared_buffers。因此在列存表为主的场景中,应减少shared_buffers,增加cstore_buffers。 OBS、HDFS外表使用cstore_buffers设置ORC、Parquet、Carbondata的元数据和数据的缓存,元数据缓存大小为cstore_buffers的1/4,最大不超过2GB,其余缓存空间为列存数据和外表列存格式数据共享使用。
  • max_prepared_transactions 参数说明:设置可以同时处于“预备”状态的事务的最大数目。增加此参数的值会使GaussDB(DWS)比系统默认设置需要更多的System V共享内存。 当GaussDB(DWS)部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 参数类型:POSTMASTER 取值范围:整型,0~536870911,其中CN取值为0表示关闭预备事务的特性。 默认值:CN节点为800, DN节点为800 为避免在准备步骤失败,此参数的值不能小于max_connections。
  • work_mem 参数说明:设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。 对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 参数类型:USERSET 取值范围:整型,64~INT_MAX,单位为KB。 默认值:小规格内存为512MB, 大规格内存为2GB(max_process_memory大于等于30GB为大规格内存,否则为小规格内存)。 设置建议: 依据查询特点和并发来确定,一旦work_mem限定的物理内存不够,算子运算数据将写入临时表空间,带来5-10倍的性能下降,查询响应时间从秒级下降到分钟级。 对于串行无并发的复杂查询场景,平均每个查询有5-10关联操作,建议work_mem=50%内存/10。 对于串行无并发的简单查询场景,平均每个查询有2-5个关联操作,建议work_mem=50%内存/5。 对于并发场景,建议work_mem=串行下的work_mem/物理并发数。
  • query_max_mem 参数说明:设置执行作业所能够使用的最大内存。如果设置的query_max_mem值大于0,在生成执行计划时,优化器会根据该值来设置算子的可用内存。当作业执行时实际所使用内存超过该值时,将报错退出。 参数类型:USERSET 取值范围:整型,0,或大于32MB的整型,单位为KB。如果设置值小于32MB,系统会自动将该参数设置为默认值0,此时优化器不会根据该值限制作业的内存使用。 默认值:0
  • max_stack_depth 参数说明:设置GaussDB(DWS)执行堆栈的最大安全深度。需要这个安全界限是因为在服务器里,并非所有程序都检查了堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。 参数类型:SUSET 设置原则: 此参数的最佳设置是等于操作系统内核允许的最大值(就是ulimit -s的设置)。 如果设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃。在GaussDB(DWS)能够检测内核限制的操作系统上(SLES上),将自动限制设置为一个不安全的值。 因为并非所有的操作都能够检测,所以建议用户在此设置一个明确的值。 取值范围:整型,100~INT_MAX,单位为KB。 默认值:2MB 默认值2MB,这个值相对比较小,不容易导致系统崩溃。但是可能会因为该值较小,导致无法执行复杂的函数。
  • shared_buffers 参数说明:设置GaussDB(DWS)使用的共享内存大小。增加此参数的值会使GaussDB(DWS)比系统默认设置需要更多的System V共享内存。 参数类型:POSTMASTER 取值范围:整型,128~INT_MAX,单位为8KB。 改变BLCKSZ的值会改变最小值。 默认值:CN节点为DN节点值的1/2,DN节点取公式计算:POWER(2,ROUND(LOG(2,max_process_memory/18),0))。如果操作系统支持的共享内存小于32MB,则在初始化数据存储区时会自动调整为操作系统支持的最大值。 设置建议: 由于GaussDB(DWS)大部分查询下推,建议DN中此参数设置比CN大。 建议设置shared_buffers值为内存的40%以内。行存列存分开对待。行存设大,列存设小。列存:(单服务器内存/单服务器DN个数)*0.4*0.25。 如果设置较大的shared_buffers需要同时增加checkpoint_segments的值,因为写入大量新增、修改数据需要消耗更多的时间周期。
  • max_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 参数类型:POSTMASTER 取值范围:整型,2*1024*1024~INT_MAX/2,单位为KB。 默认值:非从备DN节点自动适配,公式为(物理内存大小)* 0.8 / (1+主DN个数),当结果不足2GB时,默认取2GB。从备DN默认为12GB。 设置建议: DN上该数值需要根据系统物理内存及单节点部署主DN个数决定的。计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.8 / (n+主DN个数)。该参数目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点OOM。这个公式中提到vm.min_free_kbytes,其含义是预留操作系统内存供内核使用,通常用作操作系统内核中通信收发内存分配,至少为5%内存。即, max_process_memory=物理内存*0.8/(n+主DN个数),其中,当集群规模小于256时, n=1;当集群规模大于256且小于512时, n=2;当集群规模超过512时,n=3。 CN上该数值内存可设置与DN数值一样。 RAM :集群规划时分配给集群的最大使用内存。
共100000条