华为云用户手册

  • raise_errors_if_no_files 参数说明:导入时是否区分“导入文件记录数为空”和“导入文件不存在”。raise_errors_if_no_files=TRUE,则“导入文件不存在”的时候, GaussDB 将抛出“文件不存在的”错误。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示导入时区分“导入文件记录数为空”和“导入文件不存在”。 off表示导入时不区分“导入文件记录数为空”和“导入文件不存在”。 默认值:off
  • safe_data_path 参数说明:设置初始用户以外的路径前缀限制,目前包括copy和高级包路径限制。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串(不超过4096个字符) 默认值:NULL 如果safe_data_path目录下存在软链接文件,则会按软链接实际指向的文件路径进行处理,实际路径如果不在safe_data_path下会报错处理。 如果safe_data_path目录下存在硬链接文件,则可以正常使用。为安全起见,请谨慎使用硬链接文件,切勿在safe_data_path目录下创建指向目录以外的硬链接文件,并确保safe_data_path目录权限最小化。
  • gds_debug_mod 参数说明:为了增强对Gauss Data Service (以下简称GDS)相关问题的分析定位能力,可以通过此参数选择是否开启GDS的debug功能。参数开启后,将在集群节点对应的日志中输出GDS每次收发的包裹类型、命令交互的对端以及其他交互相关的细节信息,方便记录Gaussdb端状态机的状态跳转,以及目前所处的状态信息。此参数打开会输出额外日志,增加日志IO开销,进而影响性能和日志的信息有效性,因此请仅在定位GDS问题时开启。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围: on表示开启GDS debug功能。 off表示不开启GDS debug功能。 默认值:off
  • enable_copy_server_files 参数说明:是否开启copy服务器端文件的权限。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示开启copy服务端文件的权限。 off表示不开启copy服务端文件的权限。 默认值:off 当参数enable_copy_server_files关闭时,只允许初始用户执行COPY FROM FILENAME或COPY TO FILENAME命令,当参数enable_copy_server_files打开,允许具有SYSADMIN权限的用户或继承了内置角色gs_role_copy_files权限的用户执行。
  • 构造范围 每一种范围类型都有一个与其同名的构造器函数。使用构造器函数常常比写一个范围文字常数更方便,因为它避免了对界限值的额外引用。构造器函数接受两个或三个参数。两个参数的形式以标准的形式构造一个范围(下界是包含的,上界是排除的),而三个参数的形式按照第三个参数指定的界限形式构造一个范围。第三个参数必须是下列字符串之一: “()”、 “(]”、 “[)”或者 “[]”。 例如: --完整形式是:下界、上界以及指示界限包含性/排除性的文本参数。 gaussdb=# SELECT numrange(1.0, 14.0, '(]'); numrange ------------ (1.0,14.0] (1 row) --如果第三个参数被忽略,则假定为 '[)'。 gaussdb=# SELECT numrange(1.0, 14.0); numrange ------------ [1.0,14.0) (1 row) --尽管这里指定了 '(]',显示时该值将被转换成标准形式,因为int8range是一种离散范围类型。 gaussdb=# SELECT int8range(1, 14, '(]'); int8range ----------- [2,15) (1 row) --为一个界限使用NULL导致范围在那一边是无界的。 gaussdb=# SELECT numrange(NULL, 2.2); numrange ---------- (,2.2) (1 row)
  • 离散范围类型 一种范围的元素类型具有一个良定义的“步长”,例如integer或date。在这些类型中,如果两个元素之间没有合法值,它们可以被说成是相邻。这与连续范围相反,连续范围中总是(或者几乎总是)可以在两个给定值之间标识其他元素值。例如,numeric类型之上的一个范围就是连续的,timestamp上的范围也是(尽管timestamp具有有限的精度,并且在理论上可以被当做离散的,但是可以认为它是连续的,因为通常并不关心它的步长)。 另一种考虑离散范围类型的方法是对每一个元素值都有一个清晰的“下一个”或“上一个”值。了解了这种思想之后,通过选择原来给定的下一个或上一个元素值来取代它,就可以在一个范围界限的包含和排除表达之间转换。例如,在一个整数范围类型中,[4,8]和(3,9)表示相同的值集合,但是对于 numeric 上的范围就不是这样。 一个离散范围类型应该具有一个正规化函数,它知道元素类型期望的步长。正规化函数负责把范围类型的相等值转换成具有相同的表达,特别是与包含或者排除界限一致。如果没有指定一个正规化函数,那么具有不同格式的范围将总是会被当作不等,即使它们实际上是表达相同的一组值。 内建的范围类型int4range、int8range和daterange都使用一种正规的形式,该形式包括下界并且排除上界,也就是[)。不过,用户定义的范围类型可以使用其他形式。
  • 无限(无界)范围 一个范围的下界可以被忽略,意味着所有小于上界的值都被包括在范围中。 同样,如果范围的上界被忽略,那么所有比下界大的值都被包括在范围中。如果上下界都被忽略,该元素类型的所有值都被认为在该范围中。 规定缺失的包括界限自动转换为排除。 用户可以认为这些缺失值为 +/- 无穷大,但它们是特殊范围类型值,并且被视为超出任何范围元素类型的 +/- 无穷大值。 具有“infinity”概念的元素类型可以用它们作为显式边界值。 例如,在时间戳范围,[today,infinity) 不包括特殊的 timestamp 值 infinity,尽管 [today,infinity] 包括它,就好比 [today,) 和 [today,]。 函数lower_inf和upper_inf分别测试一个范围的无限上下界。
  • 范围输入/输出 一个范围值的输入必须遵循下列模式之一: (lower-bound,upper-bound) (lower-bound,upper-bound] [lower-bound,upper-bound) [lower-bound,upper-bound] empty 一个范围值的输出必须遵循下列模式之一: [lower-bound,upper-bound) empty 圆括号或方括号指示上下界是否为排除的或者包含的。注意最后一个模式是empty,它表示一个空范围(一个不包含点的范围)。 lower-bound可以是作为 subtype 的合法输入的一个字符串,或者是空表示没有下界。同样,upper-bound可以是作为 subtype 的合法输入的一个字符串,或者是空表示没有上界。 每个界限值可以使用"(双引号)字符引用。如果界限值包含圆括号、方括号、逗号、双引号或反斜线时,这样做是必须的,否则那些字符会被认作范围语法的一部分。要把一个双引号或反斜线放在一个被引用的界限值中,就在它前面放一个反斜线(还有,在一个双引号引用的界限值中的一对双引号表示一个双引号字符,这与 SQL 字符串中的单引号规则类似)。此外,用户可以避免引用或者使用反斜线转义来保护所有数据字符,否则它们会被当做范围语法的一部分。还有,要写一个是空字符串的界限值,则可以写成"",因为什么都不写表示一个无限界限。 范围值前后允许有空格,但是圆括号或方括号之间的任何空格会被当做上下界值的一部分(取决于元素类型,它可能是也可能不是有意义的)。 例子: --包括3,不包括7之间的所有点。 gaussdb=# SELECT '[3,7)'::int4range; int4range ----------- [3,7) (1 row) --既不包括3也不包括7之间的所有点。 gaussdb=# SELECT '(3,7)'::int4range; int4range ----------- [4,7) (1 row) --只包括单独一个点4。 gaussdb=# SELECT '[4,4]'::int4range; int4range ----------- [4,5) (1 row) --不包括点(并且将被标准化为 '空')。 gaussdb=# SELECT '[4,4)'::int4range; int4range ----------- empty (1 row)
  • 包含和排除边界 每一个非空范围都有两个界限,下界和上界。上下界之间的所有点都被包括在范围内。一个包含界限意味着边界点本身也被包括在范围内,而一个排除边界意味着边界点不被包括在范围内。 在一个范围的文本形式中,一个包含下界被表达为“[”而一个排除下界被表达为“(”。同样,一个包含上界被表达为“]”而一个排除上界被表达为“)”(详见范围输入/输出)。 函数lower_inc和upper_inc分别测试一个范围值的上下界。
  • 操作符类型解析 从系统表pg_operator中选出要考虑的操作符。如果可以找到一个参数类型以及参数个数都一致的操作符,那么这个操作符就是最终使用的操作符。如果找到了多个备选的操作符,将从中选择一个最合适的。 寻找最优匹配。 抛弃那些输入类型不匹配并且也不能隐式转换成匹配的候选操作符。unknown文本在这种情况下可以转换成任何东西。如果只剩下一个候选项,则用之,否则继续下一步。 遍历所有候选操作符,保留那些输入类型匹配最准确的。域类型看做和域类型的基本类型相同。如果没有一个操作符能被保留,则保留所有候选。如果只剩下一个候选项,则用之,否则继续下一步。 遍历所有候选操作符,保留那些需要类型转换时接受(属于输入数据类型的类型范畴的)首选类型位置最多的操作符。如果没有接受首选类型的操作符,则保留所有候选。如果只剩下一个候选项,则用之,否则继续下一步。 如果有任何输入参数是unknown类型,检查剩余的候选操作符对应参数位置的类型范畴。在每一个能够接受字符串类型范畴的位置使用string类型(这种对字符串的偏爱是合适的,因为unknown文本确实像字符串)。另外,如果所有剩下的候选操作符都接受相同的类型范畴,则选择该类型范畴,否则抛出一个错误(因为在没有更多线索的条件下无法作出正确的选择)。现在抛弃不接受选定的类型范畴的候选操作符,然后,如果任意候选操作符在某个给定的参数位置接受一个首选类型,则抛弃那些在该参数位置接受非首选类型的候选操作符。如果没有一个操作符能被保留,则保留所有候选。如果只剩下一个候选项,则用之,否则继续下一步。 如果同时有unknown和已知类型的参数,并且所有已知类型的参数都是相同的类型,那么假设unknown参数也是那种类型,并检查哪个候选操作符在unknown参数位置接受那个类型。如果只有一个操作符符合,那么使用它。否则,产生一个错误。
  • GLOBAL_PARALLEL_DECODE_STATUS GLOBAL_PARALLEL_DECODE_STATUS视图用于查看集群各主DN节点上的复制槽的并行解码信息。该视图需在CN上查询,在DN上查询报错。 表1 GLOBAL_PARALLEL_DECODE_STATUS字段 名称 类型 描述 node_name name 节点名称。 slot_name text 复制槽的名称。 parallel_decode_num integer 该复制槽的并行解码线程数。 read_change_queue_length text 将每个解码线程读取日志队列的当前长度拼接后输出。 decode_change_queue_length text 将每个解码线程解码结果队列的当前长度拼接后输出。 reader_lsn text 当前reader线程读取的日志位置。 working_txn_cnt bigint 当前拼接-发送线程中正在拼接的事务个数。 working_txn_memory bigint 拼接-发送线程中拼接事务占用总内存(单位字节)。 decoded_time timestamptz 该复制槽最新解码到的WAL日志时间。 父主题: Utility
  • ADM_TAB_COMMENTS ADM_TAB_COMMENTS视图显示数据库下的所有表和视图的注释信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_TAB_COMMENTS字段 名称 类型 描述 owner character varying(64) 表或视图的所有者。 table_name character varying(64) 表或视图的名称。 comments text 注释。 schema character varying(64) 表所属的名称空间的名称。 父主题: 系统视图
  • hotkey特性函数 gs_stat_get_hotkeys_info() 描述:获取本地节点查询的热词信息。 返回值类型:Tuple 示例: 1 2 3 4 5 6 gaussdb=# select * from gs_stat_get_hotkeys_info() order by count, hash_value; database_name | schema_name | table_name | key_value | hash_value | count ---------------+-------------+-------------------+-----------+------------+------- regression | public | hotkey_single_col | {22} | 1858004829 | 2 regression | public | hotkey_single_col | {11} | 2011968649 | 2 (2 rows) gs_stat_clean_hotkeys() 描述:清理hotkey缓存,重置hotkey状态信息。 返回值类型:bool,恒为true 示例: 1 2 3 4 5 gaussdb=# select * from gs_stat_clean_hotkeys(); gs_stat_clean_hotkeys ----------------------- t (1 row) 父主题: 函数和操作符
  • 参数说明 UNIQUE 创建唯一性索引,每次添加数据时检测表中是否有重复值。如果插入或更新的值会引起重复的记录时,将报错。 schema_name 模式的名称。 取值范围:已存在模式名。 index_name 要创建的索引名,不能包含模式名,索引的模式与表相同。 取值范围:字符串,要符合标识符命名规范。 table_name 需要为其创建索引的表的名称,可以用模式修饰。 取值范围:已存在的表名。 USING method 指定创建索引的方法。 取值范围:ubtree,提供多版本B-tree索引,索引页面上包含事务信息。 column_name 表中需要创建索引的列的名称(字段名)。 如果索引方式支持多字段索引,可以声明多个字段,对于非分区基表最多可以声明28个字段,对于分区基表最多可以声明27个字段。 COLLATE collation COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。排序规则可以使用“select * from pg_collation”命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。 opclass 操作符类的名称。对于索引的每一列可以指定一个操作符类,操作符类标识了索引那一列的使用的操作符。 ASC 指定按升序排序(默认)。 DESC 指定按降序排序。 NULLS FIRST 指定空值在排序中排在非空值之前,当指定DESC排序时,本选项为默认的。 NULLS LAST 指定空值在排序中排在非空值之后,未指定DESC排序时,本选项为默认的。 CONTAINING 全局二级索引可以包含索引键以外的基表属性。 containing_colname 全局二级索引包含的索引键以外的基表属性。 DISTRIBUTE BY 指定全局二级索引分布键,其分布键需要与基表不同,且只能使用哈希分布方式。 dist_colnames 全局二级索引分布键。 需要被包含在column_name中。 TABLESPACE tablespace_name 指定索引的表空间,如果没有声明则使用默认的表空间。 取值范围:已存在的表空间名。
  • 注意事项 同基表约束,GSI的分布列不支持更新(UPDATE)操作。 只支持GTM-LITE模式下创建GSI,不支持其他GTM模式,在其他模式下创建GSI会报错。 支持创建普通UBTree索引,不支持部分索引、表达式索引;Astore不支持创建GSI以外的UBTree,不支持对GSI创建分区。 不支持创建与基表分布一致的GSI,执行时会报错。 不支持在线创建GSI、在线重建GSI,会报语法错误;不支持parallel,数据节点侧会将parallel_workers设为0。 支持对基表为hash分布的行存Astore表、分区表创建hash分布的GSI,不支持基表为复制表、HASHBUCKET、list/range分布、Ustore等,对于GSI本身不支持hash分布以外的分布。 当基表为分区表时,GSI最多支持27列;当基表为非分区表时,GSI最多支持28列(包括索引键和分布键)。 不支持UPSERT、建有GSI的基表上的IUD returning功能、回表、MERGE INTO、CLUSTER,以及SQL PATCH。 当前版本会失效GSI的操作: vacuum full相关 vacuum full 单表:失效表上所有GSI。 vacuum full 数据库:失效库上所有GSI。 reindex相关 reindex 单表(非在线):失效表上所有GSI。 reindex 数据库(非在线):失效库上所有GSI。 cluster相关 cluster 单表 using 普通索引:失效表上所有GSI。 cluster 单表:失效表上所有GSI。 cluster 数据库:失效库上已经聚簇过的表上的所有GSI。 copy/gds相关 失效表上所有GSI。 partition相关 MERGE PARTITION、EXCHANGE PARTITION、TRUNCATE PARTITION、DROP PARTITION、SPLIT PARTITION将失效分区表上所有GSI,对于EXCHANGE PARTITION也会同时失效普通表上的所有GSI。 对于INSERT INTO SELECT批量插入场景、UPDATE/DELETE批量场景,执行计划采用回到CN的方式,性能较差(类比创建GSI性能)。 对于INSERT、UPDATE、DELETE,执行计划采用分布式执行计划,会有性能损失。 不支持对基表列名或者ctid、xc_node_hash、xmin、xmax、tableoid(当基表为分区表时)增加_new$$、_NEW$$后与自身列名重复的基表创建GSI。 如果在执行VACUUM FULL、CLUSTER或者REINDEX操作时中断,表上的GSI可能会变为UNUSABLE状态,此时查询语句走GSI会报错,建议执行REINDEX INDEX重建GSI。 当ENABLE_PBE_OPTIMIZATION关闭时,对于INSERT、UPDATE、DELETE操作的GSI层将会走gplan。
  • 示例 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 --创建包含3列的基表test。 gaussdb=# CREATE TABLE test(c1 int, c2 int, c3 int); --在test表的c2列上创建GSI,并包含c3列,基于c2列哈希分布。 gaussdb=# CREATE GLOBAL INDEX idx_gsi_1 ON test(c2) CONTAINING(c3) DISTRIBUTE BY HASH(c2); --创建包含3列的基表test2。 gaussdb=# CREATE TABLE test2(c1 int, c2 int, c3 int); --在test2表的c2列上创建GSI,并包含c3列,默认基于c2列哈希分布。 gaussdb=# CREATE GLOBAL INDEX idx_gsi_2 ON test2(c2) CONTAINING(c3) ; --创建包含3列的基表test3。 gaussdb=# CREATE TABLE test3(c1 int, c2 int, c3 int); --在test3表的c2列上创建UNIQUE形式的GSI,默认基于c2列哈希分布。 gaussdb=# CREATE GLOBAL UNIQUE INDEX idx_gsi_3 ON test3(c2) DISTRIBUTE BY HASH(c2); --删除索引。 gaussdb=# DROP INDEX idx_gsi_1; gaussdb=# DROP INDEX idx_gsi_2; gaussdb=# DROP INDEX idx_gsi_3; --删除表。 gaussdb=# DROP TABLE test1; gaussdb=# DROP TABLE test2; gaussdb=# DROP TABLE test3;
  • 功能描述 在指定的表上创建全局二级索引(Global Secondary Index,简称GSI)。 全局二级索引允许用户定义与基表分布不一致的索引,从而实现基表非分布列查询的单节点计划和基表非分布列上的unique/主键约束。 在升级未提交观察期间,不允许创建GSI。 建议在至少一列GSI的索引键上创建NOT NULL约束,以提速IUD的性能。 建议在GSI的基表创建普通索引提升IUD执行效率。 当前创建GSI生成的执行计划是先将基表数据拉回CN再下发给GSI所在DN,因此大数据量、大规模集群下性能较普通索引存在较大劣化(比如6节点SSD盘千万数据量下可能需近1小时),将在后续版本中优化创建GSI的实现机制,将目前的单点改为DN间并行提升创建效率。
  • 语法格式 CREATE GLOBAL [ UNIQUE ] INDEX [ [schema_name.]index_name ] ON table_name [ USING method ] ({ column_name [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] }[, ...] ) [CONTAINING (containing_colname)] [DISTRIBUTE BY hash(dist_colnames)] [ TABLESPACE tablespace_name ];
  • PGXC_COMM_SEND_STREAM PGXC_COMM_SEND_STREAM视图展示所有DN上的通信库发送流状态。 表1 PGXC_COMM_SEND_STREAM字段 名称 类型 描述 node_name text 节点名称。 local_tid bigint 使用此通信流的线程ID。 remote_name text 连接对端节点名称。 remote_tid bigint 连接对端线程ID。 idx integer 通信对端DN在本DN内的标识编号。 sid integer 通信流在物理连接中的标识编号。 tcp_sock integer 通信流所使用的tcp通信socket。 state text 通信流当前的状态。 状态值选择如下: UNKNOWN:表示当前连接状态未知。 READY:表示连接已就绪。 RUN:表示连接当前正常发送报文。 HOLD:表示连接正在等待报文发送。 CLOSED:表示连接关闭。 TO_CLOSED:表示将会关闭连接。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 send_bytes bigint 通信流发送的数据总量,单位Byte。 time bigint 通信流当前生命周期使用时长,单位ms。 speed bigint 通信流的平均发送速率,单位Byte/s。 quota bigint 通信流当前的通信配额值,单位Byte。 wait_quota bigint 通信流等待quota值产生的额外时间开销,单位ms。 父主题: 系统视图
  • block_encryption_mode 参数说明:aes_encrypt和aes_decrypt函数进行加解密时使用的块加密模式。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型,有效值为aes-128-cbc, aes-192-cbc,aes-256-cbc,aes-128-cfb1,aes-192-cfb1,aes-256-cfb1,aes-128-cfb8,aes-192-cfb8,aes-256-cfb8,aes-128-cfb128,aes-192-cfb128,aes-256-cfb128,aes-128-ofb,aes-192-ofb,aes-256-ofb。其中aes表示加/解密算法,128/192/256表示密钥长度(单位:bit),cbc/cfb1/cfb8/cfb128/ofb表示块加/解密模式。 默认值:aes-128-cbc
  • use_elastic_search 参数说明:使能统一审计发送日志至Elastic Search系统, enable_security_policy打开且本参数打开后,统一审计日志会通过http(https)传递至Elastic Search系统(默认使用https安全协议)。此参数打开后需要保证elastic_search_ip_addr对应的es服务可正常连通,否则进程启动失败。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。 on:使能统一审计日志发送至Elastic Search。 off:关闭统一审计日志发送至Elastic Search。 默认值:off
  • elastic_search_ip_addr 参数说明:Elastic Search系统IP地址 ,使用https协议格式为:https://ip:port:username;使用http协议格式为:http://ip:port。其中,ip为Elastic Search服务器的IP,port为Elastic Search HTTP通信的侦听端口,范围为9200 - 9299,username为用户在Elastic Search注册账号所使用的用户名,初始用户为elastic。使用https协议需要配置相关证书,详见《安全加固指南》中“统一审计“章节。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。 默认值:''
  • GLOBAL_STAT_HOTKEYS_INFO GLOBAL_STAT_HOTKEYS_INFO视图可用来查询整个集群中热点key的统计信息,查询结果按照count从大到小排序。 表1 GLOBAL_STAT_HOTKEYS_INFO字段 名称 类型 描述 database_name text 热点key所在数据库的名称。 schema_name text 热点key所在模式的名称。 table_name text 热点key所在表的名称。 key_value text 热点key的值。 hash_value bigint 热点key在数据库中的哈希值,如果是List/Range分布表,该字段为0。 count numeric 热点key被访问频次。 父主题: 系统视图
  • ADM_SCHEDULER_PROG RAM _ARGS ADM_SCHEDULER_PROGRAM_ARG视图显示数据库中所有程序的有关参数信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_SCHEDULER_PROGRAM_ARGS字段 名称 类型 描述 owner character varying(128) 参数所属程序的拥有者。 program_name character varying(128) 参数所属程序名。 argument_name character varying(128) 参数名称。 argument_position numeric 参数在参数列表中的位置。 argument_type character varying(257) 参数的数据类型,可以是用户的自定义数据类型。 metadata_attribute character varying(19) 暂不支持,值为NULL。 default_value character varying(4000) 参数默认值。 default_anydata_value character varying(4000) 暂不支持,值为NULL。 out_argument character varying(5) 保留字段,值为NULL。 父主题: 系统视图
  • udf_memory_limit 参数说明:控制每个CN、DN执行UDF时可用的最大物理内存量。本参数当前版本不生效,请使用FencedUDFMemoryLimit和UDFWorkerMemHardLimit参数控制fenced udf worker虚存。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,200*1024~2147483647,单位为KB。 默认值:200MB
  • 方式二:使用证书认证 前置条件:用户已经获取服务端所需要的证书和私钥文件,并完成服务端配置;同时已经获取客户端所需要的client.crt客户端证书、cacert.pem根证书、client.key.pk8客户端私钥文件,以下步骤3介绍如何将证书和私钥文件配置在客户端。 关于证书生成和获取,请联系管理员。服务端配置证书的具体操作,请联系管理员。 以下以opengaussjdbc.jar为例,使用客户端配置证书的方式连接数据库的步骤如下: 导入java.sql.Connection、java.sql.DriverManager、java.util.Properties。 此外,用户需要根据实际的应用场景,再导入其他的接口和类,详见JDBC接口参考。 import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; 指定数据库sourceURL($ip、$port、database需要用户自行修改)、用户名和密码。 用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。 String sourceURL = "jdbc:opengauss://$ip:$port/database"; Properties urlProps = new Properties(); urlProps.setProperty("user", System.getenv("EXAMPLE_USERNAME_ENV")); urlProps.setProperty("password", System.getenv("EXAMPLE_PASSWORD_ENV")); 设置ssl属性为true,在客户端配置client.crt客户端证书、cacert.pem根证书、client.key.pk8客户端私钥。 urlProps.setProperty("ssl", "true"); urlProps.setProperty("sslcert", "client.crt"); urlProps.setProperty("sslrootcert", "cacert.pem"); urlProps.setProperty("sslkey", "client.key.pk8"); 客户端私钥文件使用前,需要将client.key转化为client.key.pk8格式: * openssl pkcs8 -topk8 -outform DER -in client.key -out client.key.pk8 -nocrypt * openssl pkcs8 -topk8 -inform PEM -in client.key -outform DER -out client.key.der -v1 PBE-MD5-DES * openssl pkcs8 -topk8 -inform PEM -in client.key -outform DER -out client.key.der -v1 PBE-SHA1-3DES 以上算法由于安全级别较低,不推荐使用。 如果客户需要采用更高级别的私钥加密算法,启用bouncycastle或者其他第三方私钥解密密码包后可以使用的私钥加密算法如下: * openssl pkcs8 -in client.key -topk8 -outform DER -out client.key.der -v2 AES128 * openssl pkcs8 -in client.key -topk8 -outform DER -out client.key.der -v2 aes-256-cbc -iter 1000000 * openssl pkcs8 -in client.key -topk8 -out client.key.der -outform Der -v2 aes-256-cbc -v2prf hmacWithSHA512 * 启用bouncycastle:使用jdbc的项目引入依赖:bcpkix-jdk15on.jar和bcprov-ext-jdk15on.jar包,版本建议:1.65以上。 配置sslmode。 sslmode设置值:require、verify-ca、verify-full,参数介绍详见sslmode。客户根据应用场景选择一种即可。 /* 设置sslmode为require */ urlProps.setProperty("sslmode", "require"); /* 设置sslmode为verify-ca */ urlProps.setProperty("sslmode", "verify-ca"); /* 设置sslmode为verify-full(Linux下验证) */ urlProps.setProperty("sslmode", "verify-full"); 加载驱动。 在代码运行工具(如IDE)中添加opengaussjdbc.jar包。 执行以下命令加载数据库驱动程序“com.huawei.opengauss.jdbc.Driver”。 Class.forName("com.huawei.opengauss.jdbc.Driver"); 创建数据库连接。 调用DriverManager.getConnection(String url, Properties info),进行数据库连接。 Connection conn = DriverManager.getConnection(sourceURL,urlProps);
  • OPERATOR_HISTORY_TABLE OPERATOR_HISTORY_TABLE系统视图显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统视图中的数据。 表1 OPERATOR_HISTORY_TABLE的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程id。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有DN上下盘的最小数据量(MB),默认为0。 max_spill_size integer 若发生下盘,所有DN上下盘的最大数据量(MB),默认为0。 average_spill_size integer 若发生下盘,所有DN上下盘的平均数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间(ms)。 max_cpu_time bigint 该算子在所有DN上的最大执行时间(ms)。 total_cpu_time bigint 该算子在所有DN上的总执行时间(ms)。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: Operator
  • 参数说明 index_name 要修改的索引名。 new_name 新的索引名。 取值范围:字符串,且符合标识符命名规范。 tablespace_name 表空间的名称。 取值范围:已存在的表空间。 storage_parameter 索引方法特定的参数名。ACTIVE_PAGES表示索引的页面数量,可能比实际的物理文件页面少,可以用于优化器调优。目前只对ustore的分区表 local索引生效,且会被vacuum、analyze更新(包括auto vacuum)。不建议用户手动设置该参数,该参数在分布式下无效。 value 索引方法特定的存储参数的新值。根据参数的不同,这可能是一个数字或单词。 new_index_partition_name 新索引分区名。 index_partition_name 索引分区名。 new_tablespace 新表空间。
  • 语法格式 重命名表索引的名称。 1 2 ALTER INDEX [ IF EXISTS ] index_name RENAME TO new_name; 修改表索引的所属空间。 1 2 ALTER INDEX [ IF EXISTS ] index_name SET TABLESPACE tablespace_name; 修改表索引的存储参数。 1 2 ALTER INDEX [ IF EXISTS ] index_name SET ( {storage_parameter = value} [, ... ] ); 重置表索引的存储参数。 1 2 ALTER INDEX [ IF EXISTS ] index_name RESET ( storage_parameter [, ... ] ) ; 设置表索引或索引分区不可用。 1 2 ALTER INDEX [ IF EXISTS ] index_name [ MODIFY PARTITION index_partition_name ] UNUSABLE; 重建表索引或索引分区。 1 2 ALTER INDEX index_name REBUILD [ PARTITION index_partition_name ]; 重命名索引分区。 1 2 ALTER INDEX [ IF EXISTS ] index_name RENAME PARTITION index_partition_name TO new_index_partition_name; 修改索引分区的所属表空间。 1 2 ALTER INDEX [ IF EXISTS ] index_name MOVE PARTITION index_partition_name TABLESPACE new_tablespace;
  • 功能描述 ALTER INDEX用于修改现有索引的定义。 它有几种子形式: IF EXISTS 如果指定的索引不存在,则发出一个notice而不是error。 RENAME TO 只改变索引的名称。对存储的数据没有影响。 SET TABLESPACE 这个选项会改变索引的表空间为指定表空间,并且把索引相关的数据文件移动到新的表空间里。 SET ( { STORAGE_PARAMETER = value } [, ...] ) 改变索引的一个或多个索引方法特定的存储参数。 需要注意的是索引内容不会被这个命令立即修改,根据参数的不同,可能需要使用REINDEX重建索引来获得期望的效果。 RESET ( { storage_parameter } [, ...] ) 重置索引的一个或多个索引方法特定的存储参数为缺省值。与SET一样,可能需要使用REINDEX来完全更新索引。 [ MODIFY PARTITION index_partition_name ] UNUSABLE 用于设置表或者索引分区上的索引不可用。 REBUILD [ PARTITION index_partition_name ] 用于重建表或者索引分区上的索引。 RENAME PARTITION 用于重命名索引分区 MOVE PARTITION 用于修改索引分区的所属表空间。
共100000条