华为云用户手册

  • psort_work_mem 参数说明:设置列存表在进行局部排序中在开始写入临时磁盘文件之前使用的内存大小。带partial cluster key的表、带索引的表插入,创建表索引,删除表和更新表都会用到。 参数类型:USERSET 多个正在运行的会话可能会同时进行表的局部排序操作,因此使用的总内存可能是psort_work_mem的好几倍。 取值范围:整型,64~INT_MAX,单位为KB。 默认值:512MB
  • memory_spread_strategy 参数说明:调整自定义资源池DN内存扩展的策略。建议在内存充裕的业务场景进行调整,该参数设置后会提升查询性能,内存最高可以和默认资源池保持一致,但若业务场景中内存较小的情况下可能出现内存不足报错。该参数仅8.1.3及以上集群版本支持。 参数类型:USERSET 取值范围:枚举类型 none表示不扩展内存 negative表示按需扩展内存,算子按需扩展,估算的多扩展多,估算的小扩展的小。 crazy表示直接扩展内存,等同于默认资源池的内存扩展策略,但在业务场景内存较小的情况下可能出现内存不足报错。 默认值:none
  • max_stack_depth 参数说明:设置 GaussDB (DWS)执行堆栈的最大安全深度。需要这个安全界限是因为在服务器里,并非所有程序都检查了堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。 参数类型:SUSET 设置原则: 此参数的最佳设置是等于操作系统内核允许的最大值(就是ulimit -s的设置)。 如果设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃。在GaussDB(DWS)能够检测内核限制的操作系统上(SLES上),将自动限制设置为一个不安全的值。 因为并非所有的操作都能够检测,所以建议用户在此设置一个明确的值。 取值范围:整型,100~INT_MAX,单位为KB。 默认值:2MB 默认值2MB,这个值相对比较小,不容易导致系统崩溃。但是可能会因为该值较小,导致无法执行复杂的函数。
  • 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_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 参数类型:SIGHUP 取值范围:整型,2*1024*1024~INT_MAX/2,单位为KB。 默认值:非从备DN节点自动适配,一个机器部署多个DN情况下,公式为(物理内存大小)* 0.8 / (1+主DN个数);一个机器部署单个DN情况下,公式为(物理内存大小)* 0.6;当结果不足2GB时,默认取2GB。从备DN默认为12GB。 设置建议: DN上该数值需要根据系统物理内存及单节点部署主DN个数决定的。一个机器部署多个DN情况下,max_process_memory计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.8 / (n+主DN个数);一个机器部署单个DN情况下,max_process_memory计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.6。该参数目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点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 :集群规划时分配给集群的最大使用内存。 GaussDB(DWS)从8.2.0版本开始,为了提升内存资源利用率,增大了单机器单DN部署形态的max_process_memory初始值,但当出现集群状态不均衡的情况下,两个主DN节点会同时在一个机器上,如果仍然使用max_process_memory初始值,机器可能出现OOM报错的情况。为此,8.2.0版本开始,max_process_memory参数更改为SIGHUP类型,可以通过手动设置的方式来动态调整;同时,新增max_process_memory_auto_adjust参数,当出现集群状态不均衡的情况下,CM会根据集群状态来动态调整max_process_memory,调整max_process_memory的计算公式为:(物理内存大小 – vm.min_free_kbytes)* 0.8 / 主DN个数。 GaussDB(DWS)从8.2.1版本开始,扩大了max_process_memory动态内存调整的适用范围,由原先仅支持一个机器部署单个DN的集群形态,变更为支持所有部署形态。 max_process_memory_auto_adjust为on时,max_process_memory将会在上限和下限两值之间动态调整;其中,max_process_memory下限值的计算公式为:(物理内存大小)* 0.8 / (1+主DN个数);max_process_memory上限值由GUC参数max_process_memory_balanced设置(max_process_memory_balanced参数设置请联系技术支持工程师)。 集群在均衡模式下,max_process_memory将使用上限值,提高节点整体的内存资源利用率,相对之前版本,内存利用率会提升。 集群在非均衡模式下,max_process_memory将使用下限值,节点整体的内存资源利用率和8.2.1集群之前的版本一致。 升级场景下,该参数为保持前向兼容,系统不会设置max_process_memory_balanced,max_process_memory默认使用升级前设置的值。
  • 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的值,因为写入大量新增、修改数据需要消耗更多的时间周期。
  • query_max_mem 参数说明:设置执行作业所能够使用的最大内存。如果设置的query_max_mem值大于0,在生成执行计划时,优化器会根据该值来设置算子的可用内存。当作业执行时所使用内存超过该值时,将报错退出。 参数类型:USERSET 取值范围:整型,0,或大于32MB的整型,单位为KB。如果设置值为小于32MB,系统会自动将该参数设置为默认值0,此时优化器不会根据该值限制作业的内存使用。 默认值:0
  • max_prepared_transactions 参数说明:设置可以同时处于"预备"状态的事务的最大数目。增加此参数的值会使GaussDB(DWS)比系统默认设置需要更多的System V共享内存。 当GaussDB(DWS)部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 参数类型:POSTMASTER 取值范围:整型,0~536870911,其中CN取值为0表示关闭预备事务的特性。 默认值:CN节点为800, DN节点为5000 为避免在准备步骤失败,此参数的值不能小于max_connections。
  • 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。
  • 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/物理并发数。 开启内存自适应后,收集统计信息后不再需要使用work_mem进行算子内存使用调优,由系统根据当前负载情况,为每个语句生成计划,并估算每个算子的内存使用量和整个语句的内存使用量。系统根据负载情况和整个语句内存使用量进行队列调度,所以多并发场景会出现语句排队的情况。
  • 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中调大该值。
  • max_process_memory_auto_adjust 参数说明:设置是否开启max_process_memory参数的自动调整功能(该参数仅8.2.0及以上集群版本支持)。对于单机器单DN部署形态的集群,开启情况下,CM会在主备切换情况下,动态调整对应DN节点上的max_process_memory参数值。 参数类型:SIGHUP 取值范围:布尔型 默认值:on 设置建议:建议设置为on,对于单机器单DN部署形态的集群,为提高内存资源利用率,max_process_memory参数的初始值在8.2.0集群版本开始进行了提升,但在主备切换场景下,两个主DN节点会同时在一个机器上,如果仍然使用max_process_memory初始值,机器可能出现OOM报错的情况,因此,需要CM介入来动态调整max_process_memory。
  • buffer_ring_ratio 参数说明:设置并行导出时使用环形缓冲区的阈值大小。 参数类型:USERSET 取值范围:整型,1~1000 默认值:250 默认值表示阈值为shared_buffers的250/1000即1/4。 最小为shared_buffers的1/1000。 最大为shared_buffers的大小。 设置建议:导出时出现缓存命中率不符合预期的场景建议在DN中设置此参数。
  • temp_buffers 参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。 参数类型:USERSET 取值范围:整型,800~INT_MAX/2,单位为8KB。 默认值:8MB 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。
  • max_stream_pool 参数说明:设置stream线程池能够容纳stream线程的最大个数。该参数8.1.2及以上版本支持。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,-1和0表示关闭stream线程池。 默认值: 新安装集群默认值计算公式为:max_stream_pool=MIN(max_connections, max_process_memory/16/5MB, 1024) 旧集群升级到及以上新集群版本的默认值计算公式为:max_stream_pool=MIN(max_connections, max_process_memory/16/5MB, 1024,旧集群值),升级时也强制应用新装集群的设置值,当旧值小时取旧值。 支持实时减少线程池中stream线程的个数;若增大该参数值,stream线程的个数由业务驱动向上增长。 通常情况下不建议调整该参数值,因为stream线程池有自动清理功能。 如果stream空闲线程过多造成内存占用,可以调小此值以节约内存。
  • client_connection_check_interval 参数说明:客户端连接状态检测时间间隔。该参数仅8.2.0及以上集群版本支持。 参数类型:USERSET 取值范围:整型,0 ~ INT_MAX,单位为毫秒。0表示不检测客户端连接状态。 默认值:10000 通过gsql/jdbc/odbc等客户端直连CN执行长查询,在长查询执行期间: CN每隔client_connection_check_interval时间检测一次客户端连接状态,若检测到客户端与CN的连接已经断开,则服务端主动终止长查询的执行,释放相关资源,避免集群资源浪费。 DN每隔client_connection_check_interval时间检测一次CN与DN的连接状态,若检测到CN与DN的连接已经断开,则DN主动终止长查询的执行,释放相关资源,避免集群资源浪费。
  • comm_client_bind 参数说明:通信库客户端发起连接时是否使用bind绑定指定IP。 参数类型:USERSET 取值范围:布尔型 on表示绑定指定IP。 off表示不绑定指定IP。 如果集群某一节点存在多个IP处于同一通信网段时,需设置为on。此时将绑定本地listen_addresses指定的IP发起通信,随机端口号不能重复使用,集群并发数量会受到可用随机端口号数量的限制。 默认值:off
  • enable_connect_standby 参数说明:设置CN连接DN备机。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 on表示CN连接备机。 off表示CN连接DN主机。 默认值:off 不建议在日常业务中使用此参数,仅适用于运维操作,更不建议使用gs_guc工具进行全局设置。否则可能会导致数据不一致,结果集错误等问题。 已创建临时表的session打开此参数后将造成DN上的临时表数据丢失,后续无法进行临时表相关操作。
  • tcp_keepalives_idle 参数说明:在支持TCP_KEEPIDLE套接字选项的系统上,设置发送活跃信号的间隔秒数。不设置发送保持活跃信号,连接就会处于闲置状态。 参数类型:USERSET 如果操作系统不支持TCP_KEEPIDLE选项 ,这个参数的值必须为0。 在通过Unix域套接字进行的连接的操作系统上,这个参数将被忽略。 取值范围:整型,0~3600,单位为秒(s)。 默认值:0
  • tcp_keepalives_count 参数说明:在支持TCP_KEEPCNT套接字选项的操作系统上,设置GaussDB(DWS)服务端在断开与客户端连接之前可以等待的保持活跃信号个数。 参数类型:USERSET 如果操作系统不支持TCP_KEEPCNT选项,这个参数的值必须为0。 在通过Unix域套接字进行连接的操作系统上,这个参数将被忽略。 取值范围:整型,0~100,其中0表示GaussDB(DWS)未收到客户端反馈的保持活跃信号则立即断开连接。 默认值:0
  • failed_login_attempts 参数说明:在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁。 例如,登录时输入密码失败,ALTER USER时修改密码失败等。 参数类型:SIGHUP 取值范围:整型,0~1000 0表示自动锁定功能不生效。 正整数表示当错误密码次数达到failed_login_attempts设定的值时,当前账户将被锁定。 默认值:10 failed_login_attempts和password_lock_time必须都为正数时锁定和解锁功能才能生效。 failed_login_attempts会与客户端SSL连接模式共同决定用户的密码错误次数。当PGSSLMODE取值是allow或prefer时,客户的一次密码连接请求会生成两次连接请求:一次是尝试SSL连接,另一次是尝试非SSL连接。此时,用户感知到的密码错误次数是failed_login_attempts除以2。
  • session_timeout 参数说明:表明与服务器建立连接后,不进行任何操作的最长时间。 参数类型:USERSET 取值范围:整型,0-86400,最小单位为秒(s),0表示关闭超时设置。 默认值:10min GaussDB(DWS) gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。 pooler连接池到其它CN和DN的连接,不受session_timeout参数控制。
  • ssl_renegotiation_limit 参数说明:指定在会话密钥重新协商之前,通过SSL加密通道可以传输的流量。这个重新协商流量限制机制可以减少攻击者针对大量数据使用密码分析法破解密钥的几率,但是也带来较大的性能损失。流量是指发送和接受的流量总和。 参数类型:USERSET 参数建议保持默认设置,即禁用重协商机制。不建议通过gs_guc工具或其他方式直接在postgresql.conf文件中设置ssl_renegotiation_limit参数,即使设置也不会生效。 取值范围:整型,0~INT_MAX,单位为KB。其中0表示禁用重新协商机制。 默认值:0
  • connection_info 参数说明:连接数据库的驱动类型、驱动版本号、当前驱动的部署路径和进程属主用户。(运维类参数,不建议用户设置) 参数类型:USERSET 取值范围:字符串 默认值:空字符串 空字符串,表示当前连接数据库的驱动不支持自动设置connection_info参数或应用程序未设置。 驱动连接数据库的时候自行拼接的connection_info参数格式如下: 1 {"driver_name":"ODBC","driver_version": "(GaussDB x.x.x build 39137c2d) compiled at 2022-09-23 15:43:11 commit 3629 last mr 5138 debug","driver_path":"/usr/local/lib/psqlodbcw.so","os_user":"omm"} ODBC,JDBC,gsql连接默认显示driver_name和driver_version,driver_path,os_user,其他接口连接默认显示driver_name和driver_version,driver_path和os_user的显示由用户控制(参见连接数据库和Linux下配置数据源)。
  • max_connections 参数说明:允许和数据库连接的最大并发连接数。此参数会影响集群的并发能力。 参数类型:POSTMASTER 取值范围:整型。CN最小值为100,最大值为16384;DN最小值为100, 最大值为262143,由于集群内部存在着各种连接,设置时通常达不到最大值,若日志中出现'invalid value for parameter "max_connections"',需要调小DN的max_connections值。 默认值:CN节点为800,DN节点为5000,如果该默认值超过内核支持的最大值(在执行gs_initdb的时候判断),系统会提示错误。 设置建议: CN中此参数建议保持默认值。DN中此参数按照如下公式计算: dop_limit * 20 * 6 + 24,公式中的dop_limit为集群中每个DN对应的CPU数,计算公式为:dop_limit = 单机器的CPU逻辑核数 / 单机器的DN数。 最小值5000。 增大这个参数可能导致GaussDB(DWS)要求更多的SystemV共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。 max_connections取值的设置受max_prepared_transactions的影响,在设置max_connections之前,应确保max_prepared_transactions的值大于或等于max_connections的值,这样可确保每个会话都有一个等待中的预备事务。
  • 操作步骤 设置参数,以设置explain_perf_mode参数为例。 查看explain_perf_mode参数。 1 2 3 4 5 SHOW explain_perf_mode; explain_perf_mode ------------------- normal (1 row) 设置explain_perf_mode参数。 使用以下任意方式进行设置: 设置数据库级别的参数 1 ALTER DATABASE gaussdb SET explain_perf_mode TO pretty; 当结果显示为如下信息,则表示设置成功。 ALTER DATABASE 在下次会话中生效。 设置用户级别的参数 1 ALTER USER dbadmin SET explain_perf_mode TO pretty; 当结果显示为如下信息,则表示设置成功。 ALTER USER 在下次会话中生效。 设置会话级别的参数 1 SET explain_perf_mode TO pretty; 当结果显示为如下信息,则表示设置成功。 SET 检查参数设置的正确性。 1 2 3 4 5 SHOW explain_perf_mode; explain_perf_mode -------------- pretty (1 row)
  • GUC参数设置 GUC参数设置有两种方式: 方式一:集群创建成功后,用户可以登录GaussDB(DWS) 管理控制台,根据实际需要修改集群的数据库参数。 具体操作请参见修改数据库参数。 方式二:成功连接集群后,通过SQL命令的方式设置SUSET或USERSET类型的参数。 修改指定数据库,用户,会话级别的参数。 设置数据库级别的参数 1 ALTER DATABASE dbname SET paraname TO value; 在下次会话中生效。 设置用户级别的参数 1 ALTER USER username SET paraname TO value; 在下次会话中生效。 设置会话级别的参数 1 SET paraname TO value; 修改本次会话中的取值。退出会话后,设置将失效。
  • 参数类型和值 GaussDB(DWS)的GUC参数类型分为以下五类: SUSET,数据库管理员参数。设置后立即生效,无需重启集群。若在当前会话中设置该类型参数仅当前会话生效。 USERSET,普通用户参数。设置后立即生效,无需重启集群。若在当前会话中设置该类型参数仅当前会话生效。 POSTMASTER,数据库服务端参数。设置后需要重启集群才能生效,确认修改后系统会提示集群状态为待重启,建议在非业务高峰期手动重启集群,使参数生效。 SIGHUP,数据库全局参数。设置后全局生效,无法会话级生效。 BACKEND,数据库全局参数。设置后全局生效,无法会话级生效。 所有的参数名称不区分大小写。 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。 枚举类型的取值由系统表pg_settings的enumvals字段取值所定义。 对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。 参数的默认单位由系统表pg_settings的unit字段所定义。 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。
  • 查看GUC参数 GaussDB(DWS)的GUC参数影响数据库的系统行为,用户可根据业务场景和数据量查看并调整GUC参数取值。 查看GUC参数方式一:集群创建成功后,用户可在GaussDB(DWS) 管理控制台上查看常用的数据库参数。 查看GUC参数方式二:成功连接集群后,通过SQL命令的方式查看数据库GUC参数。 使用SHOW命令。 方式二只能查CN的GUC参数值,DN的GUC参数值可通过方式一:通过管理控制台查看。 使用如下命令查看单个参数: 1 SHOW server_version; server_version显示数据库版本信息的参数。 使用如下命令查看所有参数: 1 SHOW ALL; 使用pg_settings视图。 使用如下命令查看单个参数: 1 SELECT * FROM pg_settings WHERE NAME='server_version'; 使用如下命令查看所有参数: 1 SELECT * FROM pg_settings; 父主题: GaussDB(DWS)数据库GUC参数
  • V$SESSION_LONGOPS V$SESSION_LONGOPS视图存储当前正在执行的操作的进度。 表1 V$SESSION_LONGOPS字段 名称 类型 描述 sid bigint 当前正在执行的后台进程的OID。 serial# integer 当前正在执行的后台进程的序号,在GaussDB(DWS)中为0。 sofar integer 目前完成的工作量,在GaussDB(DWS)中为空。 totalwork integer 工作总量,在GaussDB(DWS)中为空。 父主题: 系统视图
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全