云服务器内容精选

  • GaussDB (MySQL兼容模式)数据库GUC参数 当使用MySQL兼容模式,可以设置GUC参数提高GaussDB的兼容性,迁移涉及的GUC参数和影响范围可参见表1 GaussDB(MySQL兼容模式)的GUC参数。 GaussDB数据库 提供了许多运行参数,配置这些参数可以影响数据库系统的行为。在修改这些参数时请确保用户理解了这些参数对数据库的影响,否则可能会导致无法预料的结果。 表1 GaussDB(MySQL兼容模式)的GUC参数 兼容MySQL行为配置项 兼容性配置项 兼容性配置项名字 支持的数据库 是否建议打开 b_format_behavior_compat_options enable_set_variables 仅限主备版会话变量生效。 主备版 是 b_format_version 5.7 数据库平台兼容性行为配置项。 505.0主备版/分布式 是 b_format_dev_version S1 数据库平台迭代小版本兼容性行为配置项。 505.0主备版/分布式 是 S2 数据库平台迭代小版本兼容性行为配置项。 505.1主备版/分布式 是 b_format_dev_version参数设置: GaussDB 8.0企业版,设置为s1。 GaussDB 8.100企业版,设置为s2。 版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系。 S1兼容性配置项所影响的内容: NEW()函数、last_day()函数、date_sub(date, INTERVAL expr unit)、datediff(expr1, expr2)、day()/dayofmonth()、dayname() dayofweek()、dayofyear()、extract(unit FROM date)、from_days(days)、from_unixtime(unix_timestamp[,format])、get_format({DATE | TIME | DATETIME | TIMESTAMP}, {'EUR' | 'USA' | 'JIS' | 'ISO' | 'INTERNAL'})、 hour()、makedate(year,dayofyear)、microsecond()、minute()、month()、monthname()、 period_add(period, month_number) TIMESTAMPDIFF、yearweek(date[, mode])、year()、weekofyear(date)、 weekday()、week(date[, mode])、utc_timestamp()、utc_time()、period_diff(p1,p2)、second(). quarter()、str_to_date(str, format)、subdate(expr, days)、time_format(time, format)、ifnull(expr1, expr2)、database()、current_date、current_time、current_timestamp round(arg1, arg2)、localtime([precision])、localtimestamp、dbtimezone、timenow()、numtodsinterval(num, interval_unit)、numtoyminterval(num, interval_unit) new_time(date, timezone1,timezone2)、sysdate([precision])、add_months(d,n)、months_between(d1, d2)、convert_tz(dt, from_tz, to_tz) adddate(date, INTERVAL expr unit)、date_format(date, format) S2兼容性配置项所影响的内容: 包含s1控制的兼容性行为。 影响如下功能: AUTO_INCREMENT自动增长列在导入数据或者进行BATCH INSERT执行计划的插入操作时,对于混合0、NULL和确定值的场景,确定值插入时会立即更新自增计数,后续的0/NULL将在确定值的基础上自增。 like操作符对于匹配串末尾是转义符的场景不再报错。 字符集、字符序的排序规则优先级将发生变更。 影响如下语法: CREATE TABLE table_name LIKE source_table语法。 CREATE TABLE table_name LIKE source_table和“CREATE TABLE table_name (LIKE source_table)”语法不支持指定INCLUDING和EXCLUDING选项,缺省等同于指定INCLUDING ALL。 支持LOAD DATA语法,gs_loader中部分与LOAD DATA语法一致的语法功能会发生变化。 支持set names指定collate子句。 涉及ALTER TABLE,RENAME TABLE等更改表名的语法,影响场景如:新表名对应字符串开头为“#MySQL50#”,且其后有其他字符,“#MySQL50#”将被忽略。 父主题: GaussDB数据库设置GUC参数对迁移的影响
  • 操作步骤 设置参数,以设置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(天)。
  • approx_count_distinct_precision 参数说明:该参数表示HyperLogLog++ (HLL++)算法中分桶个数,可以用来调整approx_count_distinct聚集函数的误差率。桶的个数会影响distinct值估算的精度,桶的个数越多,误差越小。误差范围为:[-1.04/2log2m*1/2,+1.04/2log2m*1/2]。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:整型,10~20。 默认值:17
  • show_acce_estimate_detail 参数说明:在GaussDB(DWS)集群使用加速集群场景下(即acceleration_with_compute_pool设置为on),控制explain命令是否显示用于评估执行计划下推到加速集群的评估信息。评估信息一般用于运维人员在维护工作中使用,因此该参数默认关闭,此外为了避免这些信息干扰正常的explain信息显示,只有在explain命令的verbose选项打开的情况下才显示评估信息。 参数类型:USERSET 取值范围:布尔型 on表示可以在explain命令的输出中显示评估信息。 off表示不在explain命令的输出中显示评估信息。 默认值:off
  • hll_default_regwidth 参数说明:该参数可以指定hll数据结构每个桶的位数,该值越大,hll所占内存越高。hll_default_regwidth和hll_default_log2m可以决定当前hll能够计算的最大distinct value。具体对应关系可以参见表1 hll_default_log2m和hll_default_regwidth与当前能计算的最大distinct value值的关系。 参数类型:USERSET 取值范围:整型,1~5。 默认值:5 表1 hll_default_log2m和hll_default_regwidth与当前能计算的最大distinct value值的关系 log2m regwidth = 1 regwidth = 2 regwidth = 3 regwidth = 4 regwidth = 5 10 7.4e+02 3.0e+03 4.7e+04 1.2e+07 7.9e+11 11 1.5e+03 5.9e+03 9.5e+04 2.4e+07 1.6e+12 12 3.0e+03 1.2e+04 1.9e+05 4.8e+07 3.2e+12 13 5.9e+03 2.4e+04 3.8e+05 9.7e+07 6.3e+12 14 1.2e+04 4.7e+04 7.6e+05 1.9e+08 1.3e+13 15 2.4e+04 9.5e+04 1.5e+06 3.9e+08 2.5e+13
  • gc_fdw_verify_option 参数说明:在协同分析特性中,控制是否启用结果集行数校验逻辑。该参数仅8.1.3.310及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 on表示开启结果集行数校验逻辑,额外发送select count语句获取预期行数,与实际获取结果集进行比对。 off表示关闭结果集行数校验逻辑,仅获取所需结果集。 默认值:on 该参数开启时性能会有轻微劣化,性能敏感场景可通过关闭该参数提升性能。 结果集行数校验失败时会抛出异常,可通过设置参数log_min_messages=debug1和logging_module='on(COOP_ANALYZE)'来打开协同分析日志。
  • full_group_by_mode 参数说明:结合disable_full_group_by_mysql使用,用于控制disable_full_group_by_mysql语法开关打开后的两种不同行为。 参数类型:USERSET 取值范围:字符串 nullpadding表示对于非聚集列而言,对该列NULL值进行填充,取该列非NULL值,结果集可能为不同行。 notpadding表示对于非聚集列而言,不处理NULL值,取该行整行数据,非聚集列结果集为随机的一行。 默认值:notpadding 该参数生效前提为MySQL兼容库下打开disable_full_group_by_mysql,且查询中出现非聚集列场景生效。该参数的两种行为也仅针对查询中的非聚集列生效。
  • ignore_checksum_failure 参数说明: 设置读取数据时是否忽略校验信息检查失败(但仍然会告警),继续执行。该参数仅在enable_crc_check为on时有效。继续执行可能导致崩溃,传播或隐藏损坏数据,无法从远程节点恢复数据及其他严重问题。不建议用户修改设置。 参数类型:SUSET 取值范围:布尔型 on表示忽略数据校验错误。 off表示数据校验错误正常报错。 默认值:off
  • qual_num_distinct 参数说明:控制应用场景中过滤列或表达式的默认distinct值。 参数类型:USERSET 取值范围:双精度浮点型,大于或等于-100,客户端显示小数时可能会有截断。 值大于0时,表示使用该值作为默认distinct值。 值大于等于-100且小于0时,表示估算默认distinct时使用的百分比。 值为0时,表示使用200作为默认distinct值。 默认值:200
  • join_num_distinct 参数说明:控制应用场景中Join列或表达式的默认distinct值。 参数类型:USERSET 取值范围:双精度浮点型,大于或等于-100,客户端显示小数时可能会有截断。 值大于0时,表示使用该值作为默认distinct值。 值大于等于-100且小于0时,表示估算默认distinct时使用的百分比。 值为0时,表示使用200作为默认distinct值。 默认值:-20
  • zero_damaged_pages 参数说明:控制检测导致GaussDB(DWS)报告错误的损坏的页头,中止当前事务。 参数类型:SUSET 取值范围:布尔型 on表示打开控制功能。 off表示关闭控制功能。 设置为on时,系统报告一个警告,把损坏的页面填充为零然后继续处理。该行为会破坏数据,即被损坏页面上的所有行。但是它允许绕开损坏页面然后从表中存在的未损坏页面上继续检索数据行。因此该参数在硬件或者软件错误导致的数据损坏中进行恢复是有作用的。通常不建议该参数设置为on,除非不需要从损坏的页面中恢复数据。 对于列存表,会将整个CU跳过然后继续处理。支持的场景包括crc校验失败、magic校验失败以及读取的CU长度错误。 默认值:off
  • enable_limit_stop 参数说明:控制LIMIT语句是否启用early stop优化。对于LIMIT n语句,若使用early stop优化则CN收取到n条数据后会传递请求使DN提前结束执行,适用于复杂查询且带有LIMIT的场景。该参数仅8.1.3.320及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 on表示允许LIMIT语句使用early stop优化。 off表示不允许LIMIT语句使用early stop优化。 默认值:on
  • distribute_test_param 参数说明:控制分布式测试框架打桩点是否生效。通常开发人员在进行故障注入测试时会在代码中预埋一些打桩点,使用唯一的名称进行标识,使用此参数可以控制代码中预埋的打桩点是否生效。参数采用逗号分隔的三元组形式,分别指定线程级别、测试桩名称和注入故障的错误级别。 参数类型:USERSET 取值范围:字符串,任一个已预埋的测试桩名称。 默认值:-1, default, default