集群创建成功后,用户可以根据实际需要修改集群的数据库参数。在DWS 管理控制台,您可以查看或设置一些常用的数据库参数,详情请参见操作步骤。也可以查看历史参数修改记录,详情请参见查看参数修改历史。如需查看或设置其他数据库参数,您可以通过SQL命令的方式,详情请参见《数据仓库服务用户开发指南》中的有关“配置GUC参数”的内容。
前提条件
只有当集群无运行中的任务时,才能修改参数。
操作步骤
- 登录DWS管理控制台。
- 在左侧导航栏中,单击“集群 > 专属集群”。
- 在集群列表中找到所需要的集群,单击集群名称,进入“集群详情”页面。
- 单击“参数修改”页签,修改相应的参数值,然后单击“保存”。
- 在“修改预览”窗口,确认修改无误后,单击“保存”。
- 用户可根据修改参数所在行的“是否重启集群”列,判断集群是否进行重启操作。
说明
若修改参数无需进行重启集群操作,则参数修改后立即生效。
若修改参数需进行重启集群操作,参数修改任务下发成功后页面显示修改后的参数值,待集群重启成功后修改的参数值生效。
参数说明
由于数据库参数较多,下表仅显示部分参数说明,用户可在控制台集群参数修改页面搜索查看,操作详情请参见操作步骤。
说明以下参数默认值仅为参考值,具体与当前集群版本有关。详情请参见《[数据仓库服务开发指南](https://www.ctyun.cn/document/10014061/10025616)》的“GUC参数”章节。
参数说明表
参数名称 | 参数描述 | 默认值 |
---|---|---|
session_timeout | Session闲置超时时间,单位为秒,0表示关闭超时限制。取值范围:0 ~ 86400。 | 600 |
datestyle | 设置日期和时间值的显示格式。 | ISO,MDY |
failed_login_attempts | 输入密码错误的次数达到该参数所设置的值时,帐户将会被自动锁定。配置为0时表示不限制密码输入错误的次数。取值范围:0 ~ 1000。 | 10 |
timezone | 设置显示和解释时间类型数值时使用的时区。 | UTC |
log_timezone | 设置服务器写日志文件时使用的时区。 | UTC |
enable_resource_record | 设置是否开启资源记录功能。 当SQL语句实际执行时间大于resource_track_duration参数值(默认为60s,可自行设置)时,监控信息将会归档。 此功能开启后会引起存储空间膨胀及轻微性能影响,不用时请关闭。 说明 归档:监控信息保存在history视图,归档在info表。归档时间为三分钟,归档后history视图中的记录会被清除。 history视图GS_WLM_SESSION_HISTORY,对应存入info表GS_WLM_SESSION_INFO。 history视图GS_WLM_OPERATOR_HISTORY,对应存入info表GS_WLM_OPERATOR_INFO。 |
off |
query_dop | 用户自定义的查询并行度。 配置为0表示查询并行度自适应。 配置为1表示查询不并行。 配置为2表示查询并行度为2。 |
0 |
resource_track_cost | 设置对语句进行资源监控的最小执行代价。 值为-1或者执行语句代价小于10时,不进行资源监控。值大于等于0时,执行语句的代价大于等于10并且超过这个参数的设定值就会进行资源监控。 SQL语句的预估执行代价可通过执行SQL命令Explain进行查询。 |
100000 |
resource_track_duration | 设置当前会话资源监控实时视图中记录的语句执行结束后进行归档的最小执行时间,单位为秒。 值为0时,资源监控实时视图中记录的所有语句都会进行历史信息归档。 值大于0时,资源监控实时视图中记录的语句的执行时间超过设定值就会进行历史信息归档。 |
60 |
password_effect_time | 设置帐户密码的有效时间,临近或超过有效期系统会提示用户修改密码。 取值范围为0 ~999,单位为天。设置为0表示不开启有效期限制功能。 |
90 |
update_lockwait_timeout | 该参数控制并发更新同一行时单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错。0表示不等待,有锁时直接报错,单位为毫秒。 | 120000 |
enable_resource_track | 设置是否开启资源监控功能。开启后可以对SQL语句进行监控。 | on |
password_policy | 使用CREATE ROLE/USER命令创建或ALTER ROLE/USER命令修改DWS帐户时,该参数决定是否进行密码复杂度检查。 0表示不采用任何密码复杂度策略。 1表示采用默认密码复杂度校验策略。 |
1 |
password_reuse_time | 在使用ALTER USER或ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用天数检查。 取值范围:0~3650,单位为天。0表示不检查密码可重用天数。正数表示新密码不能为该值指定的天数内使用过的密码。 说明 修改密码时会检查配置参数password_reuse_time和password_reuse_max。 password_reuse_time和password_reuse_max只要满足其中任一个为正数时,即认为密码可重用。 password_reuse_time为0时,表示不限制密码重用天数,仅限制密码重用次数。 password_reuse_time和password_reuse_max都为0时,表示不对密码重用进行限制。 |
60 |
password_reuse_max | 在使用ALTER USER或ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用次数检查。 0表示不检查密码可重用次数。正整数表示新密码不能为该值指定的次数内使用过的密码。 说明 修改密码时会检查配置参数password_reuse_time和password_reuse_max。 password_reuse_time和password_reuse_max只要满足其中任一个为正数时,即认为密码可重用。 password_reuse_max为0时,表示不限制密码重用次数,仅限制密码重用天数。 password_reuse_time和password_reuse_max都为0时,表示不对密码重用进行限制。 |
0 |
password_lock_time | 该参数指定帐户被锁定后自动解锁的时间。 0表示密码验证失败时,自动锁定功能不生效。 正数表示帐户被锁定后,当锁定时间超过该参数设定的值时,帐户将会被自行解锁。 |
1 |
password_encryption_type | 该字段决定采用何种加密方式对用户密码进行加密存储。 0表示采用md5方式对密码加密。 1表示采用sha256方式对密码加密,兼容postgres客户端的md5用户认证方式。 2表示采用sha256方式对密码加密。md5为不安全的加密算法,不建议用户使用。 |
2 |
password_notify_time | 该字段决定帐户密码到期前提醒的天数。 0表示不开启提醒功能。 1~999表示帐户密码到期前提醒的天数。 |
7 |
enable_stateless_pooler_reuse | pooler复用切换开关,重启集群生效。 on表示使用pooler复用模式。 off表示关闭pooler复用模式。 说明 CN和DN需要同步设置。如果CN设置为off,DN设置为on时会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群才会生效。 |
off |
work_mem | 设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小,单位为KB。 ORDER BY,DISTINCT和merge joins都要用到排序操作。 Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。 对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 |
64MB |
maintenance_work_mem | 设置在维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等中可使用的最大的内存,单位为KB。 说明 该参数的设置会影响VACUUM、VACUUMFULL、CLUSTER、CREATE INDEX的执行效率。 |
128MB |
enable_orc_cache | 设置是否允许在初始化cstore_buffers时,将1/4的cstore_buffers空间预留,用于缓存orc元数据。 on表示开启缓存orc元数据,可提升hdfs表的查询性能,但是会占用列存buffer资源,导致列存性能下降。 off表示关闭缓存orc元数据。 |
on |
sql_use_spacelimit | 限制单个SQL在单个DN上,触发落盘操作时,落盘文件的空间大小,管控的空间包括普通表、临时表及中间结果集落盘占用的空间,单位为KB。其中-1表示没有限制。 | -1 |
enable_bitmapscan | 控制优化器对位图扫描规划类型的使用。 on表示使用。 off表示不使用。 |
on |
enable_hashagg | 控制优化器对Hash聚集规划类型的使用。 on表示使用。 off表示不使用。 |
on |
enable_hashjoin | 控制优化器对Hash连接规划类型的使用。 on表示使用。 off表示不使用。 |
on |
enable_indexscan | 控制优化器对索引扫描规划类型的使用。 on表示使用。 off表示不使用。 |
on |
enable_indexonlyscan | 控制优化器对仅索引扫描规划类型的使用。 on表示使用。 off表示不使用。 |
on |
enable_mergejoin | 控制优化器对融合连接规划类型的使用。 on表示使用。 off表示不使用。 |
off |
enable_nestloop | 控制优化器对内表全表扫描嵌套循环连接规划类型的使用。虽然不能完全消除嵌套循环连接,但关闭该参数会使优化器在存在其他方法的时候优先选择其他方法。 on表示使用。 off表示不使用。 |
off |
enable_seqscan | 控制优化器对顺序扫描规划类型的使用。虽然不能完全消除顺序扫描,但关闭该参数会让优化器在存在其他方法的时候优先选择其他方法。 on表示使用。 off表示不使用。 |
on |
enable_tidscan | 控制优化器对TID扫描规划类型的使用。 on表示使用。 off表示不使用。 |
on |
enable_kill_query | CASCADE模式删除用户时,会删除此用户拥有的所有对象。此参数标识是否允许在删除用户的时候,取消锁定此用户所属对象的query。 on表示允许取消锁定。 off表示不允许取消锁定。 |
off |
enable_vector_engine | 控制优化器对向量化执行引擎的使用。 on表示使用。 off表示不使用。 |
on |
enable_broadcast | 控制优化器对stream代价估算时对broadcast分布方式的使用。 on表示使用。 off表示不使用。 |
on |
skew_option | 控制是否使用优化策略。 off:关闭策略。 normal:采用激进策略。对于不确定是否出现倾斜的场景,认为存在倾斜,并进行相应优化。 lazy:采用保守策略。对于不确定是否出现倾斜场景,认为不存在倾斜,不进行优化。 |
normal |
default_statistics_target | 为没有用ALTER TABLE SET STATISTICS设置字段目标的表设置缺省统计目标。此参数设置为正数是代表统计信息的样本数量,为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%。 | 100 |
enable_codegen | 标识是否允许开启代码生成优化,目前代码生成使用的是LLVM优化。 on表示允许开启代码生成优化。 off表示不允许开启代码生成优化。 |
on |
autoanalyze | 标识是否允许在生成计划的时候,对于没有统计信息的表进行统计信息自动收集。 on表示允许自动进行统计信息收集。 off表示不允许自动进行统计信息收集。 说明 当前不支持对外表触发autoanalyze,如需收集,需用户手动执行analyze操作。 不支持对带有ON COMMIT [DELETE ROWS l DROP]选项的临时表触发autoanalyze,如需收集,需用户手动执行analyze操作。 如果在autoanalyze某个表的过程中数据库发生异常,当数据库正常运行之后再执行语句有可能仍提示需要收集此表的统计信息。此时需要用户对该表手动执行一次analyze操作,以同步统计信息数据。 |
off |
enable_sonic_hashagg | 标识是否依据规则约束使用基于面向列的hash表设计的Hash Agg算子。 on表示在满足约束条件时使用基于面向列的hash表设计的Hash Agg算子。 off表示不使用面向列的hash表设计的Hash Agg算子。 |
on |
log_hostname | 默认状态下,连接消息日志只显示正在连接主机的IP地址。打开此选项同时可以记录主机名。由于解析主机名可能需要一定的时间,可能影响数据库的性能。on表示可以同时记录主机名。off表示不可以同时记录主机名。 | off |
max_active_statements | 设置全局的最大并发数量。此参数只应用到CN,且针对一个CN上的执行作业。设置为-1和0表示对最大并发数不做限制。 | 60 |
enable_resource_track | 是否开启资源监控功能。 | on |
resource_track_level | 设置当前会话的资源监控的等级。该参数只有当参数enable_resource_track为on时才有效。 none,不开启资源监控功能。 query,开启query级别资源监控功能,开启此功能会把SQL语句的计划信息(类似explain输出信息)记录到top SQL中。 perf,开启perf级别资源监控功能,开启此功能会把包含实际执行时间和执行行数的计划信息(类似explain analyze输出信息)记录到top SQL中。 operator,开启operator级别资源监控功能,开启此功能不仅会把包含实际执行时间和执行行数的信息记录到top SQL中,还会把算子级别执行信息刷新到top SQL中。 |
query |
enable_dynamic_workload | 是否开启动态负载管理功能。 on表示打开动态负载管理功能。 off表示关闭动态负载管理功能。 |
on |
topsql_retention_time | 设置历史TopSQL中gs_wlm_session_info和gs_wlm_operator_info表中数据的保存时间。单位为天。 值为0时,表示数据永久保存。 值大于0时,表示数据能够保存的对应天数。 |
0 |
track_counts | 控制收集数据库活动的统计数据。 on表示开启收集功能。 off表示关闭收集功能。 |
off |
autovacuum | 控制数据库自动清理进程(autovacuum)的启动。自动清理进程运行的前提是将track_counts设置为on。 on表示开启数据库自动清理进程。 off表示关闭数据库自动清理进程。 |
off |
autovacuum_mode | 该参数仅在autovacuum设置为on的场景下生效,它控制autoanalyze或autovacuum的打开情况。 analyze表示只做autoanalyze。 vacuum表示只做autovacuum。 mix表示autoanalyze和autovacuum都做。 none表示二者都不做。 |
mix |
autoanalyze_timeout | 设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze,单位为秒。 | 5min |
autovacuum_io_limits | 控制autovacuum进程每秒触发IO的上限。其中-1表示不控制,而是使用系统默认控制组。 | -1 |
autovacuum_max_workers | 设置能同时运行的自动清理线程的最大数量。其中0表示不会自动进行autovacuum。 | 3 |
autovacuum_naptime | 设置两次自动清理操作的时间间隔,单位为秒。 | 10min |
autovacuum_vacuum_threshold | 设置触发VACUUM的阈值。当表上被删除或更新的记录数超过设定的阈值时才会对这个表执行VACUUM操作。 | 50 |
autovacuum_analyze_threshold | 设置触发ANALYZE操作的阈值。当表上被删除、插入或更新的记录数超过设定的阈值时才会对这个表执行ANALYZE操作。 | 50 |
autovacuum_analyze_scale_factor | 设置触发一个ANALYZE时增加到autovacuum_analyze_threshold的表大小的缩放系数。 | 0.1 |
statement_timeout | 当语句执行时间超过该参数设置的时间(从服务器收到命令时开始计时)时,该语句将会报错并退出执行,单位为毫秒。 | 0 |
deadlock_timeout | 设置死锁超时检测时间。当申请的锁超过设定值时,系统会检查是否产生了死锁,单位为毫秒。 | 1s |
lockwait_timeout | 控制单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错,单位为毫秒。 | 20min |
max_query_retry_times | 指定SQL语句出错自动重试功能的最大重跑次数(目前支持重跑的错误类型为“Connection reset by peer”、“Lock wait timeout”和“Connection timed out”等,设定为0时关闭重跑功能。 | 6 |
max_pool_size | CN的连接池与其它某个CN/DN的最大连接数。 | 800 |
enable_gtm_free | 大并发场景下同一时刻存在活跃事务较多,GTM下发的快照变大且快照请求变多的情况下,瓶颈卡在GTM与CN通讯的网络上。为消除该瓶颈,引入GTM-FREE模式。取消CN和GTM的交互,取消CN下发GTM获取的事务信息给DN。CN只向各个DN发送query,各个DN由本地产生快照及xid等信息,开启该参数支持分布式事务读最终一致性,即分布式事务只有写外部一致性,不具有读外部一致性。 | off |
enable_fast_query_shipping | 控制查询优化器是否使用分布式框架。 | on |
enable_crc_check | 设置是否允许开启数据校验功能。写入表数据时生成校验信息,读取表数据时检查校验信息。不建议用户修改设置。 | on |
explain_perf_mode | 此参数用来指定explain的显示格式。 normal:代表使用默认的打印格式。 pretty:代表使用DWS改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。 summary:是在pretty的基础上增加了对打印信息的分析。 run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。 |
pretty |
udf_memory_limit | 控制每个CN、DN执行UDF时可用的最大物理内存量,单位为KB。 | 200MB |
default_transaction_read_only | 设置每个新创建事务是否是只读状态。on表示只读状态。off表示非只读状态。 | off |
查看参数修改历史
由于修改参数的操作可能较频繁,如果多次修改后无法确认哪些参数已经生效,可按如下流程检查参数修改记录。
操作步骤
- 登录DWS管理控制台。
- 在左侧导航栏中,单击“集群 > 专属集群”。
- 在集群列表中找到所需要的集群,单击集群名称,进入“集群详情”页面。
- 单击“参数修改”页签,并在页面顶部切换到“修改历史”模块。
说明若修改参数无需进行重启集群操作,则参数修改后立即生效,修改状态为“已同步”。
若修改参数需进行重启集群操作,则修改记录的状态为“需重启生效”,此时单击左侧的下拉展开可以看到具体哪些参数未生效。在重启集群后,该记录的状态会更新为“已同步”。
- 该页面默认查询一段时间之内的修改记录,同时也可以在右上角的输入框中输入要查询的参数,可以查找该参数所有的修改。