华为云用户手册

  • td_compatible_truncation 参数说明:控制是否开启与Teradata数据库相应兼容的特征。在用户连接上与TD兼容的数据库时,可以将该参数设置成为on(即超长字符串自动截断功能启用),该功能启用后,在后续的insert语句中,对目标表中char和varchar类型的列插入超长字符串时,会按照目标表中相应列定义的最大长度对超长字符串进行自动截断。保证数据都能插入目标表中,而不是报错。 超长字符串自动截断功能不适用于insert语句包含外表的场景。 如果向字符集为字节类型编码(SQL_ASCII,LATIN1等)的数据库中插入多字节字符数据(如汉字等),且字符数据跨越截断位置,这种情况下,按照字节长度自动截断,自动截断后会在尾部产生非预期结果。如果用户有对于截断结果正确性的要求,建议用户采用UTF8等能够按照字符截断的输入字符集作为数据库的编码集。 参数类型:布尔型 参数单位:无 取值范围: on:表示打开超长字符串自动截断功能。 off:表示关闭超长字符串自动截断功能。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • auto_increment_increment 参数说明:AUTO_INCREMENT自动增长列的自增步长,自增值将由auto_increment_offset + N × auto_increment_increment计算而来,N为正整数。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535 默认值:1 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据用户需要设置。 设置不当的风险与影响:设置不当会使自增值不符合预期。若参数值小于auto_increment_offset,自动增长列自增时会产生错误。
  • uppercase_attribute_name 参数说明:设置列名以大写形式返回给客户端。该参数仅限于ORA兼容模式下使用。 参数类型:布尔型 参数单位:无 取值范围: on:表示列名以大写形式返回给客户端。 off:表示列名不以大写形式返回给客户端。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_object_special_character 参数说明:控制执行CREATE EXTENSION语句时,若脚本文件中使用"@extschema@",此时control文件中schema参数的值是否可以包含["$'\]中任意特殊字符。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启,可以包含["$'\]中任意特殊字符。 off:表示关闭,不可以包含["$'\]中任意特殊字符。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:扩展功能为内部使用功能,不建议用户使用。 设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。
  • sql_mode 参数说明:MYSQL兼容模式下和M-Compatibility模式下SQL行为控制配置项。 当sql_compatibility兼容性参数设置为MYSQL、b_format_version设置为'5.7'、b_format_dev_version设置为's1'时,sql_mode才会生效;或者sql_compatibility兼容性参数设置为M时生效。 使用SHOW sql_mode和SELECT @@sql_mode进行查询时,会依据REAL_AS_FLOAT、ANSI_QUOTES、ONLY_FULL_GROUP_BY、NO_UNSIGNED_SUBTRACTION、NO_AUTO_VALUE_ON_ZERO、NO_BACKSLASH_ESCAPES、STRICT_TRANS_TABLES、STRICT_ALL_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ALLOW_INVALID_DATES、ERROR_FOR_DIVISION_BY_ZERO、TRADITIONAL、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION及PAD_CHAR_TO_FULL_LENGTH的顺序,大写显示,不因设置时的顺序与大小写而改变。 参数类型:字符串 参数单位:无 取值范围: MYSQL模式:空字符串""或"strict_trans_tables,only_full_group_by,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution,pad_char_to_full_length,no_auto_value_on_zero"中的选项值。 M-Compatibility模式:除支持MYSQL模式参数外,还新增了no_unsigned_subtraction、ansi_quotes、allow_invalid_dates、real_as_float、strict_all_tables、traditional。 每个选项值的含义如表8所述。 表8 兼容性配置项 兼容性配置项 兼容性行为控制 MYSQL模式参数配置说明 M-Compatibility模式参数配置说明 strict_trans_tables 当前仅支持对MYSQL兼容数据库和M-Compatibility数据库数据类型及系统函数做校验。 设置时,对输入的参数格式和范围做严格校验。无效值输入或者超过范围时,解析报error。 不设置时,对输入的参数格式和范围做宽松校验,无效值输入或者超过范围时,解析报warning,返回对应数据的0值。 可独立设置和取消。 可独立设置和取消。 only_full_group_by 不允许出现非GROUP BY的key值、且不是常量和聚集函数的投影列。 可独立设置和取消,但无实际作用。 可独立设置和取消。 no_zero_in_date 不允许日期中的年、月、日是0值。 可独立设置和取消,但无实际作用。 可独立设置和取消。 no_zero_date 不允许日期是0值(0000-00-00)。 可独立设置和取消,但无实际作用。 可独立设置和取消。 error_for_division_by_zero 不允许被0除。 可独立设置和取消,但无实际作用。 可独立设置和取消。 no_auto_create_user 无实际作用,仅用作SET SQL_MODE语句包含此选项时不报错的兼容作用。 可独立设置和取消。 可独立设置和取消。 no_engine_substitution 无实际作用,仅用作SET SQL_MODE语句包含此选项时不报错的兼容作用。 可独立设置和取消。 可独立设置和取消。 pad_char_to_full_length 用于表中的char类型列格式化输出,包含时输出带有尾部空格的字符串,否则输出不带尾部空格字符串。 可独立设置和取消。 可独立设置和取消。 no_auto_value_on_zero 包含此选项后,向AUTO_INCREMENT自动增长列插入0值将不会自增。 可独立设置和取消。 可独立设置和取消。 no_unsigned_subtraction 禁止无符号数减法,如果使用无符号整数进行减法操作,且结果为负数,则会返回一个错误。 可独立设置和取消,但无实际作用。 可独立设置和取消。 ansi_quotes 启用ANSI_QUOTES模式,该模式下双引号被视为标识符引用符号,而不是字符串引用符号。在该模式下,如果使用双引号引用表名或列名,则必须使用双引号引用整个名称,而不能使用反引号。 可独立设置和取消,但无实际作用。 可独立设置和取消。 allow_invalid_dates 允许插入无效日期,如果启用该选项,则MySQL将允许插入无效的日期,例如'0000-00-00'。 可独立设置和取消,但无实际作用。 可独立设置和取消。 real_as_float 默认将REAL类型视为DOUBLE类型,如果启用该选项,则将REAL类型视为FLOAT类型。 可独立设置和取消,但无实际作用。 可独立设置和取消。 strict_all_tables 与strict_trans_tables效果一致。 可独立设置和取消。 可独立设置和取消。 traditional 与同时设置strict_trans_tables、strict_all_tables、no_zero_in_date、no_zero_date、error_for_division_by_zero、no_auto_create_user和no_engine_substitution效果一致。 可独立设置和取消。 说明: 具体是否生效取决于MYSQL兼容模式本身是否支持。 可独立设置和取消。 默认值:"strict_trans_tables,only_full_group_by,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • b_format_version 参数说明:数据库平台兼容性行为配置项,用于控制MySQL兼容模式下的前向兼容性。 仅当sql_compatibility兼容性参数设置为MYSQL时,b_format_version参数才会生效。 当该参数设置为非空字符串时,会同时设置参数b_format_behavior_compat_options为“ALL”值,参数bytea_output为“escape”值。当该参数重新设置为空字符串时,会将b_format_behavior_compat_options、bytea_output参数设为原来的值。 参数类型:字符串 参数单位:无 取值范围:空字符串""或"5.7" 默认值:"" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:与b_format_dev_version一起设置,在安装部署后立即设置,后期非必要无需变更。 设置不当的风险与影响:影响部分SQL的行为,导致兼容性问题。
  • m_format_dev_version 参数说明:数据库平台迭代小版本兼容性行为配置项。 当sql_compatibility兼容性参数设置为M时,m_format_dev_version才会生效。 参数类型:字符串 参数单位:无 取值范围:表7中的兼容性配置项。目前只可以设置"s1"。 表7 兼容性配置项 兼容性配置项 兼容性行为控制 s1 影响如下语法: 禁用SELECT FETCH FIRST ROWS ONLY语法。 禁用TRUNCATE CASCADE/RESTRICT语法。 禁用CREATE TABLE中定义主键时指定USING INDEX TABLESPACE tablespace_name语法。 DROP TABLE/VIEW/COLUMN中CASCADE/RESTRIC语法语义改变,改为忽略CASCADE/RESTRIC的语义,且默认行为为RESTRIC。 CREATE TABLE REFEREN CES 作为列约束时,语法语义改变,改为忽略该外键定义。 默认值:"s1" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:在安装部署后立即设置,后期非必要无需变更。 设置不当的风险与影响:影响部分SQL的行为,导致兼容性问题。
  • group_concat_max_len 参数说明:搭配函数group_concat()使用,限制其返回值长度,超长截断,并产生相应报错/告警。当sql_mode设置含有STRICT_TRANS_TABLES时,DML语句中会产生报错,其余场景中提示告警。 参数类型:整型 参数单位:无 取值范围:0 ~ 9223372036854775807,目前实际生效的最大长度是1073741823,超出此长度后会有out of memory的报错。 默认值:1024 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小可能导致group_concat()返回的结果被截断。
  • max_subpro_nested_layers 参数说明:嵌套子程序的最大嵌套深度。 参数类型:整型 参数单位:无 取值范围:0 ~ 100 当设置为0时,不允许使用嵌套子程序。 默认值:3 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据最大嵌套情况设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • transform_null_equals 参数说明:是否控制表达式expr=NULL(或NULL=expr)当作expr IS NULL处理。正确的SQL标准兼容的expr=NULL总是返回NULL(未知)。Microsoft Access里的过滤表单生成的查询使用expr=NULL来测试空值。打开这个选项后,可以使用该接口来访问数据库。 参数类型:布尔型 参数单位:无 取值范围: on:表示控制表达式expr=NULL(或NULL=expr)当作expr IS NULL处理,如果expr得出NULL值则返回真,否则返回假。 off:表示不控制,即expr=NULL总是返回NULL(未知)。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 新用户经常在涉及NULL的表达式上语义混淆,故默认值设为off。
  • m_format_behavior_compat_options 参数说明:数据库M-compatibility模式的兼容性行为配置项。多租场景下,该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围:当前只支持表2,当设置多个兼容性配置项时,相邻配置项之间用逗号隔开。 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 表2 M-compatibility模式兼容性配置项 兼容性配置项 兼容性行为控制 enable_load_data_remote_transmission LOAD DATA支持从客户端导入数据。 不设置此项时:LOAD DATA指定local参数后将从服务端所在环境导入文件; 设置此配置项时:LOAD DATA指定local参数后将从客户端所在环境导入数据。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • nls_nchar_characterset 参数说明:搭配nchr(cvalue int|bigint)系统函数使用,设置国家字符集。 参数类型:字符串 参数单位:无 取值范围:“AL16UTF16”、“UTF8”,不区分大小写。 默认值:"AL16UTF16" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 数据库不支持国家字符集,该参数只是为了兼容ORA数据库,获取用户想使用的国家字符集。 该GUC参数仅限于nchr(cvalue int|bigint)函数的使用。
  • a_format_dev_version 参数说明:数据库平台迭代小版本兼容性行为配置项。 参数类型:字符串 参数单位:无 取值范围:当前支持的兼容性配置项如表5所示。 默认值:"s6" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 表5 兼容性配置项 兼容性配置项 兼容性行为控制 s1 ORA平台兼容迭代小版本,影响函数(TRUNC(date, fmt),ROUND(date, fmt),NVL2,LPAD,RPAD,ADD_MONTHS,MONTHS_BETWEEN,REGEXP_REPLACE,REGEXP_COUNT,TREAT,EMPTY_CLOB,INSTRB,trunc(number),greatest,least,mod,round(number),cast,to_date,to_timestamp,chr,rtrim,translate,to_char,to_number,to_timestamp_tz)。 数据类型转换:小数字符串转换成整数类型(int1/int2/int4/int8/int16)时进行四舍五入。 数据类型转换:支持timestamp with time zone到timestamp without time zone的隐式转换。 s2 ORA平台兼容迭代小版本,影响函数(dump, to_single_byte, to_multi_byte, nls_upper, nls_lower, initcap, ascii2, asciistr, unistr, vsize, cosh, remainder, sinh, tanh, nanvl, current_date, current_timestamp, dbtimezone, numtodsinterval, numtoyminterval, new_time, sessiontimezone, sys_extract_utc, tz_offset, to_binary_double, to_binary_float, to_dsinterval, to_yminterval, lnnvl, ora_hash)。 兼容配置项为s1时的所有行为。 s3 ORA平台兼容迭代小版本,开启参数,支持无参函数嵌套调用。 兼容配置项为s2时的所有行为。 s4 ORA平台兼容迭代小版本,影响函数nchr(cvalue int|bigint)、to_timestamp_tz、getclobval(xml)、getstringval(xml)。 兼容配置项为s3时的所有行为。 s5 ORA平台兼容迭代小版本,开启参数,支持复合类型与函数同名,优先解析为复合类型,影响函数sys_guid()。 兼容配置项为s4时的所有行为。 s6 ORA平台兼容迭代小版本,开启参数,影响函数mod(text, int)。 兼容配置项为s5时的所有行为。
  • lastval_supported 参数说明:控制是否可以使用lastval()函数。 参数类型:布尔型 参数单位:无 取值范围: on:表示支持lastval()函数,同时nextval()函数不支持下推。 off:表示不支持lastval()函数,同时nextval()函数可以下推。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • support_extended_features 参数说明:控制是否支持数据库的扩展特性。 参数类型:布尔型 参数单位:无 取值范围: on:表示支持数据库的扩展特性。 off:表示不支持数据库的扩展特性。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • b_format_behavior_compat_options 参数说明:数据库MYSQL模式兼容性行为配置项。 参数类型:字符串 参数单位:无 取值范围:当前只支持表1 MYSQL模式兼容性配置项,当设置多个兼容性配置项时,相邻配置项之间用逗号隔开。 默认值:"" 当b_format_version参数不为""时,b_format_behavior_compat_options会被设置为"all",而且不能被修改。 表1 MYSQL模式兼容性配置项 兼容性配置项 兼容性行为控制 default_collation 默认字符序前向兼容开关。 若不设置此配置项,在未显式指定字符类型字段的字符集或字符序且表级字符序也为空时,字段为default字符序。 若设置此配置项,当表级字符序不为空时,字符类型字段的字符序继承表级字符序,当表级字符序为空时,字符类型字段的字符序设置为数据库编码对应的默认字符序。 all 打开所有语法控制开关。 all不能同时和其他配置项一起指定。表格中除all外所有配置项逗号隔开的含义和取值为all含义相同。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:控制一些MYSQL兼容性特性是否可用,若要更改,请在理解参数含义后谨慎操作,避免因误操作产生意料之外的风险。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • a_format_version 参数说明:数据库平台兼容性行为配置项。 参数类型:字符串 参数单位:无 取值范围:当前支持的兼容性配置项如表4所示。 默认值:"10c" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 表4 兼容性配置项 兼容性配置项 兼容性行为控制 10c ORA平台兼容10C版本。
  • convert_string_to_digit 参数说明:设置隐式转换优先级,是否优先将字符串转为数字。 参数类型:布尔型 参数单位:无 取值范围: on:表示优先将字符串转为数字。 off:表示不优先将字符串转为数字。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:调整该参数会修改内部数据类型转换规则,导致不可预期的行为,请谨慎操作。
  • nls_timestamp_tz_format 参数说明:设置带时区时间戳默认格式。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:"DD-Mon-YYYY HH:MI:SS.FF AM" 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 此参数在参数a_format_version值为10c和a_format_dev_version值为s1的情况下有效。
  • a_format_date_timestamp 参数说明:控制返回的日期时间。在ORA模式下,当事务开启时,函数current_date()、current_timestamp()、localtimestamp()返回当前SQL启动的时间戳。 参数类型:布尔型 参数单位:无 取值范围: on:返回当前SQL启动的时间戳。 off:返回事务开启的日期或日期及时间。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。在开启事务需要返回系统时间时可开启该参数。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_multiple_charset 参数说明:该参数用于控制在M-Compatibility模式下,是否可以创建表、列、schema指定字符集和当前数据库字符集不同。 参数类型:布尔型 参数单位:无 取值范围: on:可以创建表、列、schema指定字符集和当前数据库字符集不同。 off:不可以创建表、列、schema指定字符集和当前数据库字符集不同。 默认值:on。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据实际业务需求设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • 日志诊断场景 ODBC日志分为unixODBC驱动管理器日志和gsqlODBC驱动端日志。前者可以用于追溯应用程序API的执行成功与否,后者是底层实现过程中的一些DFX日志,用来帮助定位问题。 unixODBC日志需要在odbcinst.ini文件中配置: 1 2 3 4 5 6 7 [ODBC] Trace=Yes TraceFile=/path/to/odbctrace.log [GaussMPP] Driver64=/usr/local/lib/gsqlodbcw.so setup=/usr/local/lib/gsqlodbcw.so gsqlODBC日志只需要在odbc.ini加上如下内容: [gaussdb] Driver=GaussMPP Servername=10.10.0.13 #数据库Server IP ... Debug=1 #打开驱动端debug日志 unixODBC日志将会生成在TraceFile配置的路径下,gsqlODBC会在系统/tmp/下生成mylog_xxx.log。
  • 负载均衡场景 当应用程序有大并发场景时可开启负载均衡: 负载均衡即为将并发连接随机分发到所有CN上,避免单个CN负载过大,达到提高性能的目的。 配置参数AutoBalance=1,开启负载均衡功能。 参数RefreshCNListTime=5可以选择性配置,默认刷新时间为10s。 参数Priority=1可以选择性配置,即为并发连接优先发送到配置文件中配置的CN上,当配置的CN全部不可连接时,连接才会被分发到剩余CN上。 示例场景: 集群环境有6个CN,CN1、CN2、CN3、CN4、CN5和CN6;配置文件配置4个CN,为CN1、CN2、CN3和CN4。 odbc.ini配置文件示例: [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28,10.145.130.29 #数据库Server IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名。 Password= #数据库用户密码。 Port=8000 #数据库侦听端口。 Sslmode=allow AutoBalance=1 RefreshCNListTime=3 Priority=1 当配置文件和集群环境如示例时,并发连接会随机、平均发送到CN1、CN2、CN3和CN4上,连接数均衡。当CN1、CN2、CN3和CN4全部不可用时,并发连接会随机、平均发送到CN5和CN6上。如果此时CN1、CN2、CN3和CN4中有CN重新可用时,连接则不会再发送到CN5和CN6上,而是重新发送到重新可用的CN上。
  • 备机读场景 配置文件配置CN节点,设置StandbyRead=1开启分布式备机读模式。 odbc.ini配置文件示例: [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28,10.145.130.29 #数据库Server IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名称。 Password= #数据库用户密码。 Port=8000 #数据库侦听端口。 StandbyRead=1 #打开备机读模式。 Sslmode=allow AutoBalance=1 #开启负载均衡模式。
  • 连接池场景 连接池允许应用程序重复使用预先建立的连接,无需每次都重新建立连接。连接一旦创建并放入连接池,应用程序即可重复利用,避免了重复执行完整的连接过程。 这种池化连接的使用可以显著提升性能,尤其对于需要频繁建立和断开连接的中间层应用程序或网络连接的应用程序而言,性能提升尤为明显。 除了性能优势外,连接池架构还能够实现环境中的连接在单个进程中被多个组件共享的目的。这意味着,同一进程中的不同组件可以在不互相干扰的情况下共享连接池中的连接,进一步提高了系统的效率和资源利用率。 在连接池中,打开的连接可能被多个用户重用,如果您的应用程序脚本会更改数据库连接的状态,可能会导致数据泄露,为了安全起见,请谨慎评估使用连接池。 Linux场景配置 在odbcinst.ini配置文件中开启连接池,连接池相关参考配置如下: [ODBC] Pooling=Yes #开启连接池 [GaussMPP] CPTimeout=60 #一个连接在连接池中未被重用则会被释放的计时,默认为0,开启连接池需要设置为大于0 CPTimeToLive=60 #该驱动下连接池存在的计时 [GaussMPP2] CPTimeout=0 #关闭连接池 Windows场景配置 在打开的驱动管理器上,选择“连接池”后双击“ GaussDB Unicode”驱动名称,选择“使用池连接此驱动程序”[默认为60s],该设置参数同Linux场景配置的CPTimeout,参考例图如下: 在应用程序中配置连接池参数,需要在环境句柄创建前通过调用SQLSetEnvAttr 设置连接池参数,其中的环境句柄应设置为 null,这使得 SQL_ATTR_CONNECTION_POOLING 成为进程级属性。目前在Windows上支持配置SQL_ATTR_CONNECTION_POOLING为以下两种值: SQL_CP_OFF:默认参数设置,禁用连接池。 SQL_CP_ONE_PER_DRIVER:开启连接池,每个驱动支持一个连接池,驱动其中的所有连接共享一个池。 应用程序调用 SQLConnect 或 SQLDriverConnect 时,会从连接池中提取连接,如果连接已超时,或者池中没有与请求匹配的连接,则会打开一个新连接,连接池对调用应用程序是透明的。 应用程序调用 SQLDisconnect 时,链接不会被释放,而是会将连接放回连接池用于下一次使用。 在环境上调用 SQLFreeHandle释放环境句柄前,应用程序成功为环境设置的所有环境属性都会持续存在。 应用程序的连接在一段时间内处于非活动状态(未在连接中使用),则会从池中删除该连接。连接池的大小仅受内存限制和服务器限制。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 --创建表tbl_test,并插入数据。 gaussdb=# CREATE TABLE tbl_test(c1 int,c2 varchar); gaussdb=# INSERT INTO tbl_test VALUES (1, 'AAAAAAA'),(5, 'AAAAAAB'),(10, 'AAAAAAC'); --创建索引,并查看索引大小 gaussdb=# CREATE INDEX idx_test_c1 ON tbl_test(c1); gaussdb=# SELECT pg_size_pretty(pg_total_relation_size('idx_test_c1')) AS size; size -------- 176 kB (1 row) --插入一万条数据,然后删除数据,发现索引变大。 gaussdb=# INSERT INTO tbl_test VALUES (generate_series(1,10000),'test'); gaussdb=# DELETE FROM tbl_test WHERE c2 = 'test'; gaussdb=# SELECT pg_size_pretty(pg_total_relation_size('idx_test_c1')) AS size; size -------- 504 kB (1 row) --重建一个单独索引之后,查看索引信息索引大小变回初始大小。 gaussdb=# REINDEX INDEX idx_test_c1; gaussdb=# SELECT pg_size_pretty(pg_total_relation_size('idx_test_c1')) AS size; size -------- 176 kB (1 row) --在线重建一个单独索引。 gaussdb=# REINDEX INDEX CONCURRENTLY idx_test_c1; --重建表tbl_test上的所有索引。 gaussdb=# REINDEX TABLE tbl_test; --在线重建表tbl_test上的所有索引。 gaussdb=# REINDEX TABLE CONCURRENTLY tbl_test; --删除tbl_test表。 gaussdb=# DROP TABLE tbl_test;
  • 参数说明 INDEX 重新建立指定的索引。 TABLE 重新建立指定表的所有索引,如果表有从属的“TOAST”表,则这个表也会重建索引。如果表上有索引已经被alter unusable失效,则这个索引无法被重新创建。当指定CONCURRENTLY选项时,暂不支持重建从属“TOAST”表上的索引。 DATABASE 重建当前数据库里的所有索引。当指定CONCURRENTLY选项时,暂不支持重建数据库中表的从属“TOAST”表上的索引。 SYSTEM 在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 option 当前仅支持CROSSBUCKET一种option,且值只能为ON或OFF,用来控制hash bucket表的索引是否在REINDEX过程中转换为跨bucket索引(cross-bucket-index,CBI)或bucket本地索引(local-bucket-index,LBI)索引。此项转换仅支持分布式hash bucket表的索引,不支持GSI索引,当前版本仅标记了扩容流程的Session可以使用在线索引类型转换。 CONCURRENTLY 以不阻塞DML的方式重建索引(加ShareUpdateExclusiveLock锁)。重建索引时,一般会阻塞其他语句对该索引所依赖表的访问。指定此关键字,可以实现重建过程中不阻塞DML。不支持在线重建系统表上的索引。不支持REINDEX INTERNAL TABLE CONCURRENTLY和REINDEX SYSTEM CONCURRENTLY,不支持REINDEX INVALID INDEX CONCURRENTLY。当执行REINDEX DATABASE CONCURRENTLY时,在线重建当前数据库中用户表上的所有索引(不会处理系统表上的索引)。REINDEX CONCURRENTLY不可以在事务内执行。在线重建索引只支持B-tree索引和UB-tree索引,只支持普通索引、GLOBAL索引、LOCAL索引,不支持PCR ubtree索引,不支持二级分区。GSI支持通过REINDEX INDEX CONCURRENTLY在线重建,但不支持在线重建表达式GSI、部分GSI。GSI在线重建期间,应尽量避免与其他DDL并发执行,可能会出现死锁、报错等,可以重新连接客户端进行重试。在线并行重建索引只支持Astore及Ustore的普通索引、GLOBAL索引、LOCAL索引、Ustore的GSI,其他继承当前版本在线重建索引规格约束。如果在线重建索引失败,对于用户手动取消、唯一索引键值重复、资源不足、启动线程失败、锁超时等场景,为避免占用资源,系统会自动清理新索引,在系统无法自动清理失败新索引的情况下(比如数据库宕机、FATAL、PANIC),需要尽快手动清除(使用DROP INDEX语句)非法新索引及(使用DROP TABLE语句)临时表,以防占用更多资源。一般来说,非法的新索引的后缀名为_ccnew,对于GSI(全局二级索引),非法的新索引前缀为ccgsi_tmp_index_。分布式中只有data node节点会自动清理失败索引,coordinator node节点的失败索引需要手动清理。严重错误场景会导致分布式部分节点中找不到失败索引的元信息,DROP INDEX语句无法删除这些索引,需要用DROP INDEX IF EXISTS删除。REINDEX INDEX CONCURRENTLY对表加4级会话锁,且其前几个阶段与CREATE INDEX CONCURRENTLY相似,因此也可能产生卡住或死锁的问题,具体场景与CREATE INDEX CONCURRENTLY相似(比如两个会话同时对同一个索引或表进行REINDEX CONCURRENTLY操作,会引发死锁问题),详见CONCURRENTLY章节。 重建索引时指定此关键字,Astore需要执行先后两次对全表的扫描来完成build,第一次扫描时创建新索引,不阻塞读写操作,第二次扫描时合并更新第一次扫描到目前为止发生的变更;Ustore需完成一次全表扫描,在扫描过程中并发DML产生的数据会被插入到以“index_oid_cctmp”命名的临时表中,扫描结束后合并临时表到以“_ccnew{n}”为后缀名(对于全局二级索引,以“ccgsi_tmp_index_”为前缀名)的新索引中并删除临时表,交换新旧索引,旧索引标记为死亡,启用新索引,重建索引完成。 name 需要重建索引的索引、表、数据库的名称。表和索引可以有模式修饰。 REINDEX DATABASE和SYSTEM只能重建当前数据库的索引,所以name必须和当前数据库名称相同。 FORCE 废弃选项,仅为保持前向兼容,故继续保留。 partition_name 需要重建索引的索引的名称或者表的名称。 取值范围: 如果前面是REINDEX INDEX,则这里应该指定索引的名称; 如果前面是REINDEX TABLE,则这里应该指定表的名称; REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。 REINDEX、REINDEX CONCURRENTLY不支持单独操作toast表或toast索引。
  • 语法格式 重建普通索引。 1 REINDEX { INDEX | [INTERNAL] TABLE | DATABASE | SYSTEM } [ CONCURRENTLY ] name [ FORCE ]; 重建索引并进行类型转换。 1 REINDEX [ ( option [, ...] ) ] { INDEX } [ CONCURRENTLY ] name [ FORCE ]; 重建索引分区。 1 2 REINDEX { INDEX | [INTERNAL] TABLE } name PARTITION partition_name [ FORCE ];
  • 注意事项 REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。 对于全局二级索引,当前仅支持REINDEX INDEX和REINDEX TABLE。 若索引带有lpi_parallel_method选项,取值为PARTITION且表的parallel_workers选项大于0时,不支持对该索引并行重建;无该选项或选项取值为AUTO时,并行重建时会默认走页面级并行重建索引。详见LPI_PARALLEL_METHOD。 REINDEX CONCURRENTLY在线重建索引导致表上索引顺序改变时,可能会导致查询计划改变。
  • 个人用户 主体信息 负责人需年满18周岁。 证件住所需为本省,如非本省,需上传本省“暂住证”或“居住证”。 手机号码与应急号码不得重复,归属地要求贵州省内。 网站信息 域名 所有人需与主办人名称一致。 电子材料 域名证书。 个人有效证件原件彩色电子版。 变更备案 个人性质备案不可以变更为其他个人,当已备案成功的个人是单位法定代表人时,可以从个人性质备案变更为单位性质。 新增接入 接入备案信息符合当前管局规则即可。 注:现接入信息与原备案信息不一致时,可以直接变更备案信息,接入备案成功后信息将发生变更,原接入商信息也会同时进行变更。
共100000条