华为云用户手册

  • 示例 -- 创建目标表products和源表newproducts,并插入数据 gaussdb=# CREATE TABLE products ( product_id INTEGER, product_name VARCHAR2(60), category VARCHAR2(60) ); gaussdb=# INSERT INTO products VALUES (1501, 'vivitar 35mm', 'electrncs'); gaussdb=# INSERT INTO products VALUES (1502, 'olympus is50', 'electrncs'); gaussdb=# INSERT INTO products VALUES (1600, 'play gym', 'toys'); gaussdb=# INSERT INTO products VALUES (1601, 'lamaze', 'toys'); gaussdb=# INSERT INTO products VALUES (1666, 'harry potter', 'dvd'); gaussdb=# CREATE TABLE newproducts ( product_id INTEGER, product_name VARCHAR2(60), category VARCHAR2(60) ); gaussdb=# INSERT INTO newproducts VALUES (1502, 'olympus camera', 'electrncs'); gaussdb=# INSERT INTO newproducts VALUES (1601, 'lamaze', 'toys'); gaussdb=# INSERT INTO newproducts VALUES (1666, 'harry potter', 'toys'); gaussdb=# INSERT INTO newproducts VALUES (1700, 'wait interface', 'books'); -- 进行MERGE INTO操作 gaussdb=# MERGE INTO products p USING newproducts np ON (p.product_id = np.product_id) WHEN MATCHED THEN UPDATE SET p.product_name = np.product_name, p.category = np.category WHERE p.product_name != 'play gym' WHEN NOT MATCHED THEN INSERT VALUES (np.product_id, np.product_name, np.category) WHERE np.category = 'books'; MERGE 4 -- 查询更新后的结果 gaussdb=# SELECT * FROM products ORDER BY product_id; product_id | product_name | category ------------+----------------+----------- 1501 | vivitar 35mm | electrncs 1502 | olympus camera | electrncs 1600 | play gym | toys 1601 | lamaze | toys 1666 | harry potter | toys 1700 | wait interface | books (6 rows) -- 删除表 gaussdb=# DROP TABLE products; gaussdb=# DROP TABLE newproducts;
  • 参数说明 plan_hint子句 以/*+ */的形式在MERGE关键字后,用于对MERGE对应的语句块生成的计划进行hint调优,详细用法请参见章节使用Plan Hint进行调优。每条语句中只有第一个/*+ plan_hint */注释块会作为hint生效,里面可以写多条hint。 INTO子句 指定正在更新或插入的目标表。 table_name 目标表的表名。 partition_clause 指定分区MERGE操作。 关键字详见SELECT一节介绍。 如果value子句的值和指定分区不一致,会抛出异常。 示例详见CREATE TABLE SUBPARTITION。 alias 目标表的别名。 取值范围:字符串,符合标识符命名规范。 USING子句 指定源表,源表可以为表、视图或子查询。 ON子句 关联条件,用于指定目标表和源表的关联条件。不支持更新关联条件中的字段。 WHEN MATCHED子句 当源表和目标表中数据针对关联条件可以匹配上时,选择WHEN MATCHED子句进行UPDATE操作。 不支持更新系统表、系统列。 WHEN NOT MATCHED子句 当源表和目标表中数据针对关联条件无法匹配时,选择WHEN NOT MATCHED子句进行INSERT操作。 不支持INSERT子句中包含多个VALUES。 WHEN MATCHED和WHEN NOT MATCHED子句顺序可以交换,可以缺省其中一个,但不能同时缺省,不支持同时指定两个WHEN MATCHED或WHEN NOT MATCHED子句。 DEFAULT 用对应字段的缺省值填充该字段。 如果没有缺省值,则为NULL。 WHERE condition UPDATE子句和INSERT子句的条件,只有在条件满足时才进行更新操作,可缺省。不支持WHERE条件中引用系统列。不建议使用int等数值类型作为condition,因为int等数值类型可以隐式转换为bool值(非0值隐式转换为true,0转换为false),可能导致非预期的结果。
  • 语法格式 MERGE [/*+ plan_hint */] INTO table_name [ partition_clause ] [ [ AS ] alias ] USING { { table_name | view_name } | subquery } [ [ AS ] alias ] ON ( condition ) [ WHEN MATCHED THEN UPDATE SET { column_name = { expression | subquery | DEFAULT } | ( column_name [, ...] ) = ( { expression | subquery | DEFAULT } [, ...] ) } [, ...] [ WHERE condition ] ] [ WHEN NOT MATCHED THEN INSERT { DEFAULT VALUES | [ ( column_name [, ...] ) ] VALUES ( { expression | subquery | DEFAULT } [, ...] ) [, ...] [ WHERE condition ] } ];
  • PG_RLSPOLICIES PG_RLSPOLICIES视图显示行级访问控制策略的信息。初始化用户和具有sysadmin属性的用户可以查看全部的策略信息,其他用户只能查看自己所拥有表上的策略信息。 表1 PG_RLSPOLICIES字段 名称 类型 描述 schemaname name 行级访问控制策略作用的表对象所属的模式名称。 tablename name 行级访问控制策略作用的表对象名称。 policyname name 行级访问控制策略名称。 policypermissive text 行级访问控制策略的表达式拼接方式,可选取值有: PERMISSIVE:宽容性策略,用OR表达式拼接。 RESTRICTIVE:限制性策略,用AND表达式拼接。 policyroles name[] 行级访问控制策略影响的用户列表,不指定表示影响所有的用户。 policycmd text 行级访问控制策略影响的SQL操作。 policyqual text 行级访问控制策略的表达式。 父主题: 用户和权限管理
  • 操作步骤 创建schema,具体操作请参见CREATE SCHEMA。 执行如下命令创建一个schema。 1 gaussdb=# CREATE SCHEMA myschema; 当结果显示为如下信息,则表示成功创建一个名为myschema的schema。 1 CREATE SCHEMA 如果需要在模式中创建或者访问对象,其完整的对象名称由模式名称和具体的对象名称组成,中间由符号“.”隔开。例如:myschema.table。 执行如下命令在创建schema时指定owner。 1 gaussdb=# CREATE SCHEMA myschema AUTHORIZATION omm; 当结果显示为如下信息,则表示成功创建一个属于omm用户,名为myschema的schema。 1 CREATE SCHEMA 使用schema 在特定schema下创建对象或者访问特定schema下的对象,需要使用有schema修饰的对象名。该名称包含schema名以及对象名,schema名和对象名之间用“.”号分开。 执行如下命令在myschema下创建mytable表。 1 2 gaussdb=# CREATE TABLE myschema.mytable(id int, name varchar(20)); CREATE TABLE 如果在数据库中指定对象的位置,就需要使用有schema修饰的对象名称。 执行如下命令查询myschema下mytable表的所有数据。 1 2 3 4 gaussdb=# SELECT * FROM myschema.mytable; id | name ----+------ (0 rows) schema的搜索路径 可以设置search_path配置参数指定查询对象可用schema的顺序。在搜索路径列出的第一个schema会变成默认的schema。如果在创建对象时不指定schema,则会创建在默认的schema中。 执行如下命令查看搜索路径。 1 2 3 4 5 gaussdb=# SHOW SEARCH_PATH; search_path ---------------- "$user",public (1 row) 执行如下命令将搜索路径设置为myschema, public。首先搜索myschema,然后搜索public。 1 2 gaussdb=# SET SEARCH_PATH TO myschema, public; SET schema的权限控制 默认情况下,用户只能访问属于自己的schema中的数据库对象。如果需要访问其他schema的对象,则该schema的所有者应该授予他对该schema的usage权限。 通过将模式的CREATE权限授予某用户,被授权用户就可以在此模式中创建对象。默认情况下,所有角色都拥有在public模式上的usage权限,但是普通用户没有在public模式上的CREATE权限。普通用户能够连接到一个指定数据库并在它的public模式中创建对象是不安全的,如果普通用户具有在public模式上的CREATE权限则建议通过如下语句撤销该权限。 撤销PUBLIC在public模式下创建对象的权限,下面语句中第一个“public”指的是模式,第二个“PUBLIC”指的是所有角色。 1 2 gaussdb=# REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE 执行如下命令查看现有的schema。 1 2 3 4 5 gaussdb=# SELECT current_schema(); current_schema ---------------- myschema (1 row) 执行如下命令创建用户jack,并将myschema的usage权限授予用户jack。 1 2 3 4 gaussdb=# CREATE USER jack IDENTIFIED BY '********'; CREATE ROLE gaussdb=# GRANT USAGE ON schema myschema TO jack; GRANT 将用户jack对于myschema的usage权限收回。 1 2 gaussdb=# REVOKE USAGE ON schema myschema FROM jack; REVOKE 删除schema,具体操作请参见DROP SCHEMA。 当schema为空时,即该schema下没有数据库对象,使用DROP SCHEMA命令进行删除。例如删除名为nullschema的空schema。 1 2 gaussdb=# DROP SCHEMA IF EXISTS nullschema; DROP SCHEMA 当schema非空时,如果要删除一个schema及其包含的所有对象,需要使用CASCADE关键字。例如删除myschema及该schema下的所有对象。 1 2 gaussdb=# DROP SCHEMA myschema CASCADE; DROP SCHEMA 执行如下命令删除用户jack。 1 2 gaussdb=# DROP USER jack; DROP ROLE
  • 注意事项 GaussDB 包含一个或多个已命名数据库。用户和用户组在数据库范围内是共享的,但是其数据并不共享。任何与服务器连接的用户都只能访问连接请求里声明的数据库。 一个数据库可以包含一个或多个已命名的schema,schema又包含表及其他数据库对象,包括数据类型、函数和操作符等。同一对象名可以在不同的schema中使用而不会引起冲突。例如,schema1和schema2都可以包含一个名为mytable的表。 和数据库不同,schema不是严格分离的。用户根据其对schema的权限,可以访问所连接数据库的schema中的对象。进行schema权限管理首先需要对数据库的权限控制进行了解。 不能创建以PG_为前缀的schema名,该类schema名为数据库系统预留的。 在每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名schema。对于其他数据库,若需要同名schema,则需要用户手动创建。 通过未修饰的表名(名称中只含有表名,没有“schema名”)引用表时,系统会通过search_path(搜索路径)来判断该表是哪一个schema下的表。pg_temp和pg_catalog始终会作为搜索路径顺序中的前两位,无论二者是否出现在search_path中,或者出现在search_path中的任何位置。search_path(搜索路径)是一个schema名列表,在其中找到的第一个表就是目标表,如果没有找到则报错。(某个表即使存在,如果它的schema不在search_path中,依然会查找失败)在搜索路径中的第一个schema叫做"当前schema",它是搜索时查询的第一个schema,同时在没有声明schema名时,新创建的数据库对象会默认存放在该schema下。 每个数据库都包含一个pg_catalog schema,它包含系统表和所有内置数据类型、函数和操作符。pg_catalog是搜索路径中的一部分,始终在临时表所属的模式后面,并在search_path中所有模式的前面,即具有第二搜索优先级,以确保可以搜索到数据库内置对象。如果用户需要使用和系统内置对象重名的自定义对象时,可以在操作自定义对象时带上自己的模式。
  • ADM_SCHEDULER_JOB_ARGS ADM_SCHEDULER_JOB_ARG视图显示数据库中所有任务的有关参数信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_SCHEDULER_JOB_ARGS字段 名称 类型 描述 owner character varying(128) 参数所属作业的拥有者。 job_name character varying(128) 参数所属作业名。 argument_name character varying(128) 参数名称。 argument_position numeric 参数在参数列表中的位置。 argument_type character varying(257) 参数的数据类型,可以是用户的自定义数据类型。 value character varying(4000) 参数值。 anydata_value character varying(4000) 暂不支持,值为NULL。 out_argument character varying(5) 保留字段,值为NULL。 父主题: 其他系统视图
  • 数据加载和卸载 在INSERT语句中显式设置插入的字段列表。例如: 1 INSERT INTO task(name,id,comment) VALUES ('task1','100','第100个任务'); 在批量数据入库之后,或者数据增量达到一定阈值后,建议对表进行ANALYZE操作,防止统计信息不准确而导致的执行计划劣化。 如果要清理表中的所有数据,建议使用TRUNCATE TABLE方式,不要使用DELETE TABLE方式。DELETE TABLE方式删除性能差,且不会释放那些已经删除了的数据占用的磁盘空间。
  • DDL 在GaussDB中,建议DDL(建表、COMMENT等)操作统一执行。在批处理作业中尽量避免DDL操作,避免大量并发事务对性能的影响。 在非日志表(unlogged table)使用完后,立即执行数据清理(TRUNCATE)操作。因为在异常场景下,GaussDB不保证非日志表(unlogged table)数据的安全性。 临时表和非日志表的存储方式建议和基表相同。 索引字段的总长度不超过50字节。否则,索引大小会膨胀比较严重,带来较大的存储开销,同时索引性能也会下降。 不要使用DROP…CASCADE方式删除对象,除非已经明确对象间的依赖关系,以免误删。 详细DDL语法请参见DDL语法一览表。
  • ADM_TABLESPA CES ADM_TABLESPACES视图显示所有的表空间信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。A数据库与 GaussDB数据库 逻辑结构特性不一致。 表1 ADM_TABLESPACES字段 名称 类型 描述 tablespace_name character varying(64) 表空间名称。 block_size numeric 暂不支持,值为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extents numeric 暂不支持,值为NULL。 max_extents numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 min_extlen numeric 暂不支持,值为NULL。 contents character varying(9) 暂不支持,值为NULL。 status character varying(9) 暂不支持,值为ONLINE。 logging character varying(9) 暂不支持,值为NULL。 force_logging character varying(3) 暂不支持,值为NULL。 extent_management character varying(10) 暂不支持,值为NULL。 allocation_type character varying(9) 暂不支持,值为NULL。 plugged_in character varying(3) 暂不支持,值为NULL。 segment_space_management character varying(6) 暂不支持,值为NULL。 def_tab_compression character varying(8) 暂不支持,值为NULL。 retention character varying(11) 暂不支持,值为NULL。 bigfile character varying(3) 暂不支持,值为NULL。 predicate_evaluation character varying(7) 暂不支持,值为NULL。 encrypted character varying(3) 暂不支持,值为NULL。 compress_for character varying(30) 暂不支持,值为NULL。 def_inmemory character varying(8) 暂不支持,值为NULL。 def_inmemory_priority character varying(8) 暂不支持,值为NULL。 def_inmemory_distribute character varying(15) 暂不支持,值为NULL。 def_inmemory_compression character varying(17) 暂不支持,值为NULL。 def_inmemory_duplicate character varying(13) 暂不支持,值为NULL。 shared character varying(12) 暂不支持,值为NULL。 def_index_compression character varying(8) 暂不支持,值为NULL。 index_compress_for character varying(13) 暂不支持,值为NULL。 def_cellmemory character varying(14) 暂不支持,值为NULL。 def_inmemory_service character varying(12) 暂不支持,值为NULL。 def_inmemory_service_name character varying(1000) 暂不支持,值为NULL。 lost_write_protect character varying(7) 暂不支持,值为NULL。 chunk_tablespace character varying(1) 暂不支持,值为NULL。 父主题: 其他系统视图
  • PRVT_ILM PRVT_ILM接口为ILM特性内部使用,用户无法直接调用,只列举接口名称不做详细接口原型描述。 接口名称 描述 be_active_ado_window 维护窗口触发动作,刷新ilmadowindow触发时间及动作。 be_create_ado_window_for_each_db 维护窗口触发动作,在实例的每个数据库中创建ilmadowindow。 be_execute_ilm ilmadowind执行动作,进行自动评估。 flush_task_executestate 自动调度任务刷新task状态。 evaluate_obj_policy 触发调度后对数据对象进行评估。 change_be_ilm dbe_ilm_admin.enable_ilm()和disable_ilm()帮助函数。该操作会影响集群整体的ILM后台调度。 get_compression_ratio dbe_compression.get_compression_ratio()帮助函数。 get_compression_type dbe_compression.get_compression_type()帮助函数。 get_lastmodified_time dbe_heat_map.row_heat_map()帮助函数。 gs_ilm_ticker 维护窗口执行动作,执行一次打点,记录lsn与时间的映射关系。 compress_blocks prvt_ilm.ilm_job_action()帮助函数。 compress_block_single 废弃接口,请勿再使用。 get_job_status dbe_ilm.stop_ilm帮助函数。 ilm_job_action 压缩任务执行体。 query_unfinishedjob_num 查询是否存在还没有结束的job,包括初始和运行中的状态。 ilm_seq_nextval 用于获取ilm的下一个sequence值。 ilm_seq_setval 用于设置ilm的当前sequence值。 check_compatibility 用于统一判断数据库兼容性模式的帮助函数。 set_pg_settings 用于设置数据库兼容性模式特性GUC参数的帮助函数。 父主题: 二次封装接口(推荐)
  • HashFunc函数 ora_hash(expression,[seed]) 描述:用于计算给定表达式的哈希值。expression:可输入的类型覆盖字符串,时间类型,数字类型,根据expression进行计算哈希值。seed:可选参数,一个int8值,可以对同一个输入值返回不同的结果, 用于计算带随机数的hash值。 返回类型:int8类型的哈希值。 示例: 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 gaussdb=# SELECT ora_hash(123); ora_hash ------------ 4089882933 (1 row) gaussdb=# SELECT ora_hash('123'); ora_hash ------------ 2034089965 (1 row) gaussdb=# SELECT ora_hash('sample'); ora_hash ------------ 1573005290 (1 row) gaussdb=# SELECT ora_hash(to_date('2012-1-2','yyyy-mm-dd')); ora_hash ------------ 1171473495 (1 row) gaussdb=# SELECT ora_hash(123,234); ora_hash ------------ -9089505052966355682 (1 row) gaussdb=# SELECT ora_hash('123',234); ora_hash ------------ 5742589019960764616 (1 row) gaussdb=# SELECT ora_hash('sample',234); ora_hash ------------ -1747984408055821656 (1 row) gaussdb=# SELECT ora_hash(to_date('2012-1-2','yyyy-mm-dd'),234); ora_hash ------------ -3306025179710572679 (1 row) 此函数在参数a_format_version值为10c和a_format_dev_version值为s2的情况下才能生效。 hash_array(anyarray) 描述:数组哈希,将数组的元素通过哈希函数得到结果,并返回合并结果。 参数:数据类型为anyarray。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hash_array(ARRAY[[1,2,3],[1,2,3]]); hash_array ------------ -382888479 (1 row) hash_numeric(numeric) 描述:计算Numeric类型的数据的hash值。 参数:Numeric类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hash_numeric(30); hash_numeric -------------- -282860963 (1 row) hash_range(anyrange) 描述:计算range的哈希值。 参数:anyrange类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hash_range(numrange(1.1,2.2)); hash_range ------------ 683508754 (1 row) hashbpchar(character) 描述:计算bpchar的哈希值。 参数:character类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hashbpchar('hello'); hashbpchar ------------- -1870292951 (1 row) 设置guc参数behavior_compat_options的值为a_hash_bpchar,则按照保留字符串的末尾空格来计算hash值 hashchar(char) 描述:char和布尔数据转换为哈希值。 参数:char类型的数据或者bool类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hashbpchar('hello'); hashbpchar ------------- -1870292951 (1 row) gaussdb=# SELECT hashchar('true'); hashchar ------------ 1686226652 (1 row) 设置guc参数behavior_compat_options的值为a_hash_bpchar,则按照保留字符串的末尾空格来计算hash值 hashenum(anyenum) 描述:枚举类型转哈希值。 参数:anyenum类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 6 7 gaussdb=# CREATE TYPE b1 AS ENUM('good', 'bad', 'ugly'); CREATE TYPE gaussdb=# call hashenum('good'::b1); hashenum ------------ 1821213359 (1 row) hashfloat4(real) 描述:float4转哈希值。 参数:real类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hashfloat4(12.1234); hashfloat4 ------------ 1398514061 (1 row) hashfloat8(double precision) 描述:float8转哈希值。 参数:double precision类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hashfloat8(123456.1234); hashfloat8 ------------ 1673665593 (1 row) hashinet(inet) 描述:inet / cidr转哈希值。 参数:inet类型的数据。 返回值类型:integer 示例: 1 2 3 4 5 gaussdb=# SELECT hashinet('127.0.0.1'::inet); hashinet ------------- -1435793109 (1 row) hashint1(tinyint) 描述:INT1转哈希值。 参数:tinyint类型的数据。 返回值类型:uint32 示例: 1 2 3 4 5 gaussdb=# SELECT hashint1(20); hashint1 ------------- -2014641093 (1 row) hashint2(smallint) 描述:INT2转哈希值。 参数:smallint类型的数据。 返回值类型:uint32 示例: gaussdb=# SELECT hashint2(20000); hashint2 ------------ -863179081 (1 row) 父主题: 函数和操作符
  • GLOBAL_SESSION_MEMORY 统计各节点的Session级别的内存使用情况,包含执行作业在数据节点上GaussDB线程和Stream线程分配的所有内存,单位为MB,如表1所示。 表1 GLOBAL_SESSION_MEMORY字段 名称 类型 描述 node_name name 节点名称。 sessid text 线程启动时间+线程标识。 init_mem integer 当前正在执行作业进入执行器前已分配的内存。 used_mem integer 当前正在执行作业已分配的内存。 peak_mem integer 当前正在执行作业已分配的内存峰值。 父主题: Session/Thread
  • PG_STAT_USER_INDEXES PG_STAT_USER_INDEXES视图显示数据库中用户自定义普通表和toast表的索引状态信息。 表1 PG_STAT_USER_INDEXES字段 名称 类型 描述 relid oid 该索引所在的表的OID。 indexrelid oid 索引的OID。 schemaname name 索引的模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 索引上开始的索引扫描数。 idx_tup_read bigint 该索引上扫描返回的索引项数。 idx_tup_fetch bigint 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: 其他系统视图
  • table_skewness_warning_rows 参数说明:设置用于表倾斜告警的行数。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647‬ 默认值:100000 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,并根据业务场景对表倾斜的敏感度适时调整。 设置不当的风险与影响:设置较小时,可能对表倾斜更敏感,无显著风险。
  • connection_alarm_rate 参数说明:设置允许和数据库连接的最大并发连接数的比率限制。数据库连接的最大并发连接数为max_connections* connection_alarm_rate。当并发连接数超过max_connections* connection_alarm_rate时,后台会打印连接信息的日志connection_log,日志中可以查看pg_stat_activity视图和线程池视图LOCAL_THREADPOOL_STATUS(查看pg_stat_activity视图需要开启追踪功能,查看线程池视图LOCAL_THREADPOOL_STATUS需要开启线程池功能)。 参数类型:浮点型 参数单位:无 取值范围:0 ~ 1 默认值:0.9 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • alarm_report_interval 参数说明:指定告警上报的时间间隔。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 2147483647 默认值:10 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。设置时取值不能带单位。 设置建议:推荐使用默认值。 设置不当的风险与影响: 该值设置过大时,若指定告警上报时间间隔内检测出多次相同告警,会丢失关键告警。 该值设置过小时,若指定告警上报时间间隔内持续检测出同一告警,告警会频繁上报。
  • enable_alarm 参数说明:设置是否打开告警上报线程,上报数据库中可能的故障场景。 参数类型:布尔型 参数单位:无 取值范围: on:表示打开告警上报线程。 off:表示关闭告警上报线程。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭该参数会导致用户无法感知数据库中的某些故障场景。 该参数生效范围节点仅为CN、DN。
  • alarm_component 参数说明:在告警上报时,会进行告警抑制,即同一个实例的同一个告警项在alarm_report_interval(默认值为10s)内不做重复上报。在这种情况下设置用于处理告警内容的告警组件的位置,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:合法文件名称。 若前置脚本gs_preinstall中的--alarm-type参数设置为5时,表示未对接第三方组件,告警写入system_alarm日志,此时GUC参数alarm_component的取值为:/opt/huawei/snas/bin/snas_cm_cmd。 若前置脚本gs_preinstall中的--alarm-type参数设置为1时,表示对接第三方组件,此时GUC参数alarm_component的值为第三方组件的可执行程序的绝对路径。 默认值:"/opt/huawei/snas/bin/snas_cm_cmd" 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。设置时取值不能带单位。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • max_datanodes 参数说明:集群中DN的最大数目,当集群规模有变化,如增加节点、减少节点时,可能需要调整该参数。扩容时,请确保此参数值大于需要扩容到的集群中DN总分片数,否则会导致扩容失败。缩容时,若此参数值偏大,CN启动时会消耗更多的内存资源,但总体来说对CN内存影响不大。 参数类型:整型 参数单位:无 取值范围:2 ~ 65535 默认值:256 设置方式:该参数属于POSTMASTER类型参数,不建议修改此参数,若需修改,请参考表2中对应设置方法进行设置。 设置建议:按照集群的实际规格进行设置。 设置不当的风险与影响:该参数小于集群当前DN个数时,会导致节点创建失败。由于CN启动时,会根据参数值提前申请内存,所以当该参数值变大,系统会消耗更多内存资源,但总体来说对CN内存影响不大。
  • cache_connection 参数说明:是否回收连接池的连接。 参数类型:布尔型 参数单位:无 取值范围: on:表示回收连接池的连接。 off:表示不回收连接池的连接。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭该参数后,会话执行语句结束后会直接清理掉持有的连接,导致业务频繁建立连接,对性能有一定损耗。开启该参数后,在多库场景下,当内存规格较小并且连接数max_connections配置较大时,可能会导致内存不足,DN无法启动。
  • pooler_timeout 参数说明:CN连接池中的连接与其它CN/DN通讯时的超时时间。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 7200 默认值:600(即10min) 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小,当网络波动时,会导致收发数据报错;设置过大,当网络不通时,会导致收发数据报错的时间变长,降低高可用能力。
  • pooler_connect_timeout 参数说明:CN连接池与集群中其他CN/DN建立连接时的超时时间。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 7200 默认值:60(即1min) 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小,当网络波动时,会导致建立连接报错;设置过大,当网络不通时,会导致建立连接报错的时间变长,降低高可用能力。
  • enable_force_reuse_connections 参数说明:会话是否强制重用新的连接。 参数类型:布尔型 参数单位:无 取值范围: on:表示强制使用新连接。 off:表示使用现有连接。 默认值:off 设置方式:该参数属于BACKEND类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:开启该参数后,每次执行语句前,会对已持有的连接强制发送reset参数的动作,对性能有一定损耗。
  • pooler_connect_interval_time 参数说明:该参数由pooler建立连接重试功能使用,当参数pooler_connect_max_loops设置大于1时,该参数可以控制不同重试轮数之间执行时间间隔。参数设置方面,建议略大于当前集群主备切换恢复时间。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 7200 默认值:15 设置方式:该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数是高可用参数,若设置过长,会导致重试周期拉长,反而降低高可用能力。
  • pooler_connect_max_loops 参数说明:该参数由pooler建立连接重试功能使用,主备切换场景增强建立连接的稳定性,若节点间pooler建连失败会尝试跟备机重新建立连接,此时若恰好备机升主机成功,则可以在重试阶段建立连接成功。该参数可以设置重试总轮数,增强建立连接的稳定性。当参数设置为0时,可以关闭重试功能,业务只跟主机建立连接而不跟备机重试。 参数类型:整型 参数单位:无 取值范围:0 ~ 20 默认值:1 设置方式:该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数是高可用参数,设置为0后,会关闭重试功能,降低高可用能力;设置大于1后,会增加重试次数。
  • pooler_cancel_timeout 参数说明:CN连接池在错误处理时Cancel某连接的超时时间。如果在子事务或存储过程异常捕获的过程中发生该类超时,那么包含子事务或存储过程的整个事务将发生回滚。在此基础上,在子事务或存储过程异常捕获的过程中,如果错误源自COPY FROM操作中源数据与目标表表结构的不一致,则只要该参数值不为0,就总会触发超时报错。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 7200,其中0(一般不建议)表示关闭此开关,不做超时限制。 默认值:15 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小,当网络波动时,会导致cancel动作报错;设置过大,当网络不通时,会导致cancel动作报错的时间变长,降低高可用能力。
  • pooler_port 参数说明:cm_agent、cm_ctl等内部工具运维管理端口,初始化用户或系统管理员通过客户端连接数据库所使用端口。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535。 默认值:不依赖OM组件安装且未指定该GUC参数,默认值是6667。依赖OM组件安装时,若指定port值,该参数值为port+1;若未指定port值,CN实例该参数默认值为8001,DN实例该参数默认值为40001。 设置方式:该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。 设置建议:一般为集群安装配置设置的值,不建议修改。 设置不当的风险与影响:修改此参数,很可能导致端口号冲突或被拦截,导致数据库通信失败。
  • pooler_maximum_idle_time 参数说明:Pooler连接自动清理功能使用,当连接池中连接空闲时间超过所设置值时,会触发自动清理机制,清理各节点的空闲连接数到minimum_pool_size。 参数类型:整型 参数单位:秒(s) 取值范围:0 ~ 2147483647 默认值:600(即10min) 设置方式:该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:配置过大,会降低pooler连接池中空闲连接的清理频率,降低回收速率;配置过小,会提高清理频率,导致业务频繁建立连接,对性能有一定损耗。
  • persistent_datanode_connections 参数说明:会话是否会释放获得的连接。 参数类型:布尔型 参数单位:无 取值范围: on:表示不会释放获得的连接。 off:表示会释放获得的连接。 默认值:off 设置方式:该参数属于BACKEND类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:开启该参数后,会存在会话持有连接但并未运行查询的情况,导致其他查询申请不到连接报错。
共100000条