华为云用户手册

  • uncontrolled_memory_context 参数说明:启用检查内存上下文是否超过给定限制的功能时,设置不受此功能约束的内存上下文。仅适用于DEBUG版本。 查询该参数时,会在参数值的最前面添加标题含义字符串“MmgrMemoryController white list:”。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • huge_pages 参数说明:数据库共享内存的申请启用静态内存大页设置。 要启用静态内存大页功能,需要提前在操作系统内核中设置足够数量的静态内存大页资源以供申请,相关参数为vm.nr_hugepages和vm.nr_overcommit_hugepages,会被设置在/etc/sysctl.conf文件中。 参数类型:字符串 参数单位:无 取值范围: on:表示启用静态内存大页申请,如果申请不到内存大页资源,则数据库启动失败。 off:表示不启用静态内存大页申请,申请普通共享内存。 try:尝试申请静态内存大页资源,如果申请失败,就申请普通共享内存。 默认值:try 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • page_missing_dirty_check 参数说明:页面漏置脏校验的功能开关,检测被修改页面是否忘记置脏。page_missing_dirty_check受控于page_version_check,如果page_version_check设置为off,则page_missing_dirty_check设置为on时也不生效。 参数类型:布尔型 参数单位:无 取值范围: on:表示进行页面漏置脏校验。 off:表示不进行页面漏置脏校验。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议在测试场景中开启此开关,能够最大限度在非生产环境中排查出漏置脏代码BUG;在现网时默认关闭页面漏置脏,避免带来额外开销,进而影响性能。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 参数类型:整型 参数单位:kB 取值范围:2097152 ~ 2147483647 默认值:请参见“典型场景设置”。 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值2097152,表示max_process_memory为2097152kB;带单位取值2GB,表示max_process_memory为2GB。取值如果要带单位,必须为kB、MB、GB。 设置建议:该参数目的是尽可能保证OS的可靠性,不会因数据库内存膨胀导致节点OOM。DN上该数值需要根据OS物理内存及单节点部署主DN个数决定,建议计算公式如下:(物理内存大小 – vm.min_free_kbytes)* 0.7 / (n+主DN个数)。这个公式中提到vm.min_free_kbytes,其含义是预留OS内存供内核使用,通常用作OS内核中通信收发内存分配,至少为5%内存,即max_process_memory = 物理内存 * 0.665 / (n+主DN个数)。其中,当集群规模小于256时,n=1;当集群规模大于256且小于512时,n=2;当集群规模超过512时,n=3;独立部署时,n=0。CN上该数值内存可设置与DN数值一样。 设置不当的风险与影响:若该值设置不合理,比如大于服务器物理内存时,可能导致操作系统OOM问题。 典型场景设置: 以下典型场景设置是针对主推的规格经过专门的测试调优之后,给出的最优出口值配置,具体配置信息如表1所示。 分布式独立部署(单节点1C或1D) 表1 分布式独立部署设置 资源配置 cn推荐值 dn推荐值 64C/512G 360GB 360GB 60C/480G 360GB 360GB 32C/256G 192GB 192GB 16C/128G 96GB 96GB 8C/32G 20GB 20GB 8C/64G 40GB 40GB 4C/32G 20GB 20GB 4C/16G 10GB 10GB
  • enable_memory_limit 参数说明:设置是否启用逻辑内存管理模块。 由于存在固定开销,即shared_buffers和元数据(大约200MB),若max_process_memory减去固定开销小于2GB, GaussDB 会强制把enable_memory_limit设置为off。其中元数据是GaussDB内部使用的内存,和部分并发参数,如max_connections,thread_pool_attr,max_prepared_transactions等参数相关。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用逻辑内存管理模块。 off:表示不启用逻辑内存管理模块。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:当该值为off时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存过多,可能导致操作系统OOM问题。
  • memorypool_size 参数说明:设置内存池大小。 参数类型:整型 参数单位:kB 取值范围:131072 ~ 1073741823 默认值:524288(即512MB) 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值131072,表示memorypool_size为131072kB;带单位取值128MB,表示memorypool_size为128MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 注意事项 本语法属于全密态数据库特有语法。 连接数据库时,在数据库驱动侧,需开启密态等值查询特性连接参数,才可执行本语法。 主密钥由外部密钥管理者提供,本语法仅处理密钥来源、密钥ID等信息,已支持的外部密钥管理者包括: 华为云密钥管理服务huawei_kms。 用户密码派生密钥或直接提供密钥user_token。 在使用本语法前,请参考《特性指南》中“设置密态等值查询”章节,在数据库驱动侧,为外部密钥管理者设置环境变量。
  • 参数说明 client_master_key_name 该参数作为密钥对象名,在同一命名空间下,需满足命名唯一性约束。 取值范围:字符串,需符合标识符命名规范。 KEY_STORE 外部密钥管理者。取值见表1。 当KEY_STORE为user_token时,无需用户提供KEY_PATH参数。 KEY_PATH 由外部密钥管理者管理某个的密钥,不同密钥管理者格式不同。取值为字符串,详见表1。字符串由单引号或双引号包含,如果字符串长度超过64,则只能使用单引号包含。 ALGORITHM 密钥用于何种加密算法。取值见表1。 表1 针对不同密钥管理者的参数值 KEY_STORE KEY_PATH ALGORITHM huawei_kms 格式:‘{KmsApiUrl}/{密钥ID}' 参考:'https://kms.{项目}.myhuaweicloud.com/v1.0/{项目ID}/kms/{密钥ID}' 示例:'https://kms.cn-north-4.myhuaweicloud.com/v1.0/00000000000000000000000000000000/kms/00000000-0000-0000-0000-000000000000' AES_256 SM4 user_token 不需用户提供KEY_PATH AES_256_CBC AES_256_GCM SM4
  • GS_STAT_PROGRESS_VACUUM 用于查看当前VACUUM的进度。字段描述如下: 表1 GS_STAT_PROGRESS_VACUUM字段 参数类型 参数 描述 输入参数 pid VACUUM线程的线程pid。 输出参数 dataname 正在清理的数据库名称。 输出参数 relid 正在清理表的OID。 输出参数 relname 正在清理的表名称。 输出参数 phase 当前VACUUM所处的阶段。 输出参数 detail 清理进度详情,包含总页面数、已扫描页面数、已清理页面数和已清理索引数。 运行结果如下: gaussdb=# select * from GS_STAT_PROGRESS_VACUUM(140123447490304); pid | dataname | relid | relname | phase | detail -----------------+----------+-------+---------+---------------+--------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- 140123447490304 | postgres | 24602 | t1 | scanning heap | vacuum db "postgres" starts at 2025-02-09 13:34:24.497618-05, vacuumed 12/240 relations, current r elation "t1"; heap: scanned 32369/73216 blocks, skipped 0 blocks; info: found 0 dead tuples, already run 357s, delay 356s. (1 row) 父主题: VACUUM
  • 语法格式 修改用户的权限等信息。 1 2 3 4 5 6 7 ALTER USER user_name [ [ WITH ] option [ ... ] ]; ALTER USER user_name RENAME TO new_name; ALTER USER user_name [ IN DATABASE database_name ] SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT}; ALTER USER user_name [ IN DATABASE database_name ] RESET {configuration_parameter|ALL}; 其中option子句为。 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 { CREATEDB | NOCREATEDB } | { CREATEROLE | NOCREATEROLE } | { INHERIT | NOINHERIT } | { AUDITADMIN | NOAUDITADMIN } | { SYSADMIN | NOSYSADMIN } | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | { USEFT | NOUSEFT } | { LOG IN | NOLOGIN } | { REPLICATION | NOREPLICATION } | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [EXPIRED] | DISABLE | EXPIRED } | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE } | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | ACCOUNT { LOCK | UNLOCK } | PGUSER 修改用户名。 1 2 ALTER USER user_name RENAME TO new_name;
  • 示例 --创建用户jim,登录密码为********。 gaussdb=# CREATE USER jim PASSWORD '********'; --创建数据库。 gaussdb=# CREATE DATABASE testdb1; --修改用户jim的登录密码。 gaussdb=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********'; --锁定jim账户。 gaussdb=# ALTER USER jim ACCOUNT LOCK; --解锁jim账户。 gaussdb=# ALTER USER jim ACCOUNT UNLOCK; --修改用户名。 gaussdb=# ALTER USER jim RENAME TO lisa; --删除用户。 gaussdb=# DROP USER lisa CASCADE;
  • OS_THREADS 提供当前节点下所有线程的状态信息,如表1所示。 表1 OS_THREADS字段 名称 类型 描述 node_name text 当前节点的名称。 pid bigint 当前节点进程中正在运行的线程号。 lwpid integer 与pid对应的轻量级线程号。 thread_name text 与pid对应的线程名称。 creation_time timestamp with time zone 与pid对应的线程创建的时间。 dbid oid 线程所属的数据库id。 父主题: OS
  • TRANSACTIONS_PREPARED_XA CTS 显示当前准备好进行两阶段提交的事务的信息,如表1所示。 表1 TRANSACTIONS_PREPARED_XACTS字段 名称 类型 描述 transaction xid 预备事务的数字事务标识。 gid text 赋予该事务的全局事务标识。 prepared timestamp with time zone 事务准备好提交的时间。 owner name 执行该事务的用户的名称。 database name 执行该事务所在的数据库名。 父主题: Transaction
  • V$SYSSTAT V$SYSSTAT视图显示自数据库实例启动那刻起就开始累计的全实例的资源使用情况。默认只有初始用户或监控管理员可以访问,其它用户需授予MONADMIN权限才可访问。该视图同时存在于PG_CATALOG和SYS Schema下。在ARM环境下,需先开启内存资源管理功能,详细操作请联系管理员处理。具体字段信息如表1所示。 表1 V$SYSSTAT字段 名称 类型 描述 statistic# numeric 统计编号。 name character varying(64) 统计名称。 class numeric 暂不支持,值为NULL。 value numeric 统计值。 stat_id numeric 暂不支持,值为NULL。 con_id numeric 暂不支持,值为0。 父主题: 其他系统视图
  • javax.naming.Context javax.naming.Context是连接配置的上下文接口。 表1 对javax.naming.Context的支持情况 方法名 返回值类型 支持JDBC4 bind(Name name, Object obj) void Yes bind(String name, Object obj) void Yes lookup(Name name) Object Yes lookup(String name) Object Yes rebind(Name name, Object obj) void Yes rebind(String name, Object obj) void Yes rename(Name oldName, Name newName) void Yes rename(String oldName, String newName) void Yes unbind(Name name) void Yes unbind(String name) void Yes 父主题: JDBC接口参考
  • 命名SQL描述符区域 一个命名SQL描述符区域由一个头部以及一个或多个条目描述符区域构成。头部包含与整个描述区域相关的信息,而条目描述符区域则描述结果行中的某一列。 在使用SQL描述符区域之前,需要分配一个SQL描述符区域: EXEC SQL ALLOCATE DESCRIPTOR identifier; 当不再需要这个描述符区域时,应及时释放: EXEC SQL DEALLOCATE DESCRIPTOR identifier; 要使用一个描述符区域,需要使用INTO子句声明: EXEC SQL FETCH NEXT FROM mycursor INTO SQL DESCRIPTOR mydesc; 如果结果集为空,该描述符区域仍会包含查询的元数据。 对于还没有执行的预备查询,可以使用DESCRIBE得到其结果集的元数据: EXEC SQL BEGIN DECLARE SECTION; char *sql_stmt = "SELECT * FROM table1"; EXEC SQL END DECLARE SECTION; EXEC SQL PREPARE stmt1 FROM :sql_stmt; EXEC SQL DESCRIBE stmt1 INTO SQL DESCRIPTOR mydesc; 在DESCRIBE和FETCH语句中,INTO和USING关键词的使用相似:它们产生结果集以及一个描述符区域的元数据。 从头部检索一个描述符区域的值并且将其存储到一个宿主变量中: EXEC SQL GET DESCRIPTOR name :hostvar = field; 当前只定义了一个头部描述符区域COUNT,它存放描述符区域的条目(即结果集中包含多少列),宿主变量为一个整数类型,需从条目描述符区域中得到一个具体值: EXEC SQL GET DESCRIPTOR name VALUE num :hostvar = field; num可以是一个字符整数或者一个包含整数的宿主变量。可能的类型如下: CARDINALITY(整数):结果集中的行数 DATA:实际的数据项(这个范围的实际数据类型取决于查询) DATETIME_INTERVAL_CODE(整数):当TYPE是9时,DATETIME_INTERVAL_CODE将具有以下值之一:1表示DATE,2表示TIME,3表示TIMESTAMP,4表示TIME WITH TIME ZONE,5表示TIMESTAMP WITH TIME ZONE INDICATOR(整数):指示符(表示一个空值或者一个值截断) LENGTH(整数):以字符计的数据长度 NAME(string):列名 OCTET_LENGTH(整数):以字节计的数据字符表达的长度 PRECISION(整数):精度(用于类型numeric) RETURNED_LENGTH(整数):以字符计的数据长度 RETURNED_OCTET_LENGTH(整数):以字节计的数据字符表达的长度 SCALE(整数):比例(用于类型numeric) TYPE(整数):列的数据类型的数字编码 要检索字段数值并且把它存储到一个宿主变量里,使用如下命令: EXEC SQL GET DESCRIPTOR mydesc VALUE num :hostvar = field num可以是一个字符整数或者一个包含整数的宿主变量。可能的字段有: DATA 实际数据项(这个字段的数据类型依赖于这个查询) NAME(string) 字段名称 手动建立一个描述符区域为一个查询或游标提供输入参数,使用如下命令: EXEC SQL SET DESCRIPTOR name VALUE numfield = :hostvar; 在一个FETCH语句中检索多行记录且用数组类型的宿主变量来存储数据,示例如下: EXEC SQL BEGIN DECLARE SECTION; int id[5]; EXEC SQL END DECLARE SECTION; EXEC SQL FETCH 5 FROM mycursor INTO SQL DESCRIPTOR mydesc; EXEC SQL GET DESCRIPTOR mydesc VALUE 1 :id = DATA; 父主题: SQL描述符区域
  • 客户端连接的字符集和字符序 含有字符集属性的数据在服务端和客户端之间会自动转换编码。服务端接收到客户端发送的SQL语句后,会将其由客户端字符集client_encoding向数据库字符集server_encoding转换编码。查询结果数据发送到客户端之前也会将数据向客户端字符集client_encoding转换编码。 系统参数说明 server_encoding 创建数据库时指定的字符集,详见CREATE DATABASE章节。 client_encoding 客户端的字符集,可以通过SET NAMES语句修改,详见SET章节。 character_set_connection SQL语句中未指定字符集的字符串常量的默认字符集。 collation_connection SQL语句中未指定字符序的字符串常量的默认字符序。 character_set_results 返回结果的字符集。 对于一个非字符类型对象转换为字符类型的表达式,其结果的字符集和字符序为character_set_connection和collation_connection。 字符类型的绑定参数的字符集和字符默认为系统参数character_set_connection和collation_connection设置的值。 字符数据转换编码的过程中会校验字符的编码,如果不符合,将会提示异常,返回ERROR信息。 父主题: 字符集与字符序
  • GS_SPM_SQL_BASELINE GS_SPM_SQL_BASELINE是SPM计划管理特性下的一个系统视图,当前该特性在分布式下不支持。该视图用于查看当前用户的baseline信息,普通用户以上权限均可以访问该视图。 表1 GS_SPM_SQL_BASELINE字段 名称 类型 描述 sql_namespace oid Schema的oid。 sql_hash bigint 当前Schema中SQL的唯一标识。 plan_hash bigint 当前SQL中的plan的唯一标识。 outline text outline文本,可固定当前计划的一组Hint。 status text 计划的状态。取值范围: UNACC:表示未接受的计划。 ACC:表示已经接受的计划。 FIXED:一种特殊的ACC状态的计划,计划的匹配优先级高于ACC状态的计划。 gplan boolean 当前outline对应的计划是否是gplan。 cost double precision 计划的总代价。 sql_text text SQL的文本串。 param_num integer SQL的参数数量。 source text baseline的来源。 creation_time timestamp with time zone baseline的创建时间。 modification_time timestamp with time zone baseline的修改时间。 jump_intercept_cnt bigint 当前baseline拦截计划跳变次数。 invalid boolean 当前baseline是否无效。 父主题: SPM计划管理
  • GV_INSTANCE GV_INSTANCE视图显示当前数据库实例的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。具体字段信息如表1所示。 表1 GV_INSTANCE字段 名称 类型 描述 inst_id oid 当前数据库oid。 instance_number oid 当前数据库oid。 instance_name character varying(16) 当前数据库名。 host_name character varying(64) 暂不支持,值为NULL。 version character varying(17) 暂不支持,值为NULL。 version_legacy character varying(17) 暂不支持,值为NULL。 version_full character varying(17) 暂不支持,值为NULL。 startup_time date 暂不支持,值为NULL。 status character varying(12) 暂不支持,值为NULL。 parallel character varying(3) 暂不支持,值为NULL。 thread# numeric 暂不支持,值为NULL。 archiver character varying(7) 暂不支持,值为NULL。 log_switch_wait character varying(15) 暂不支持,值为NULL。 logins character varying(10) 暂不支持,值为NULL。 shutdown_pending character varying(3) 暂不支持,值为NULL。 database_status character varying(17) 暂不支持,值为NULL。 instance_role character varying(18) 暂不支持,值为NULL。 active_state character varying(9) 暂不支持,值为NULL。 blocked character varying(3) 暂不支持,值为NULL。 con_id numeric 暂不支持,值为NULL。 instance_mode character varying(11) 暂不支持,值为NULL。 edition character varying(7) 暂不支持,值为NULL。 family character varying(80) 暂不支持,值为NULL。 database_type character varying(15) 暂不支持,值为NULL。 父主题: 其他系统视图
  • 如何评估当前表/库空间膨胀比 方法一:如果条件允许,可以通过 INSERT INTO SELECT 将表的数据全量导入到新表,根据新旧表的大小估算空间膨胀比。示例如下: gaussdb=# create table t4(like t3); CREATE TABLE gaussdb=# insert into t4 select * from t3; INSERT 0 85376 gaussdb=# select pg_table_size('t3'::regclass) / pg_table_size('t4'::regclass); ?column? ------------------ 7.87027797576622 (1 row) 方法二:使用 \d 查看表结构,估算元组的平均长度,再乘以活元组数来估算表的占用空间。膨胀比 ≈ 表大小 / (活跃行数 * 单行平均长度)。单行平均长度 ≈ 各列长度之和 + 行指针长度(4B) + 元组头长度(24B)。活跃行数可以使用 COUNT(*) 或函数 pg_stat_get_live_tuples 获取。 示例如下: gaussdb=# select pg_table_size('t3'::regclass); pg_table_size --------------- 90456064 (1 row) gaussdb=# \d t3; Table "public.t3" Column | Type | Modifiers --------+----------------+----------- a | integer | b | character(100) | gaussdb=# select count(1) from t3; count ------- 85376 (1 row) 以上示例中,各列长度之和为104B(100B + 4B),有效行数为85376条,有效空间 ≈ 85376 * (104 + 4 + 24) = 11269632。膨胀比 ≈ 90456064 / 11269632 = 8,即空间膨胀了8倍,与方法一的结果近似相等。 父主题: 常见问题
  • FILE_REDO_IOSTAT 本节点Redo(WAL)相关的统计信息,如表1所示。 表1 FILE_REDO_IOSTAT字段 名称 类型 描述 phywrts bigint 向wal buffer中写的次数。 phyblkwrt bigint 向wal buffer中写的block的块数。 writetim bigint 向xLog文件中写操作的时间(单位:微秒)。 avgiotim bigint 平均写xLog的时间(writetim/phywrts,单位:微秒)。 lstiotim bigint 最后一次写xLog的时间(单位:微秒)。 miniotim bigint 最小的写xLog时间(单位:微秒)。 maxiowtm bigint 最大的写xLog时间(单位:微秒)。 父主题: File
  • MY_SCHEDULER_PROG RAM _ARGS MY_SCHEDULER_PROGRAM_ARG视图显示当前用户拥有的程序的有关参数信息。该视图所有用户可访问,仅可查看当前用户所属信息。该视图同时存在于PG_CATALOG和SYS Schema下。具体字段信息如表1所示。 表1 MY_SCHEDULER_PROGRAM_ARGS字段 名称 类型 描述 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。 父主题: 其他系统视图
  • COMM_STATUS COMM_STATUS视图展示单个DN的TCP代理通信库状态,如表1所示。 表1 COMM_STATUS字段 名称 类型 描述 node_name text 节点名称。 rxpck_rate integer 节点通信库接收速率,单位Byte/s。 txpck_rate integer 节点通信库发送速率,单位Byte/s。 rxkbyte_rate bigint bigint节点通信库接收速率,单位KByte/s。 txkbyte_rate bigint bigint节点通信库发送速率,单位KByte/s。 buffer bigint cmailbox的buffer大小。 memkbyte_libcomm bigint libcomm线程通信内存大小,单位Byte。 memkbyte_libpq bigint libpq线程通信内存大小,单位Byte。 used_pm integer postmaster线程实时使用率。 used_sflow integer gs_sender_flow_controller线程实时使用率。 used_rflow integer gs_receiver_flow_controller线程实时使用率。 used_rloop integer 多个gs_receivers_loop线程中高的实时使用率。 stream integer 当前使用的逻辑连接总数。 父主题: Comm
  • STREAMING_CONT_QUERY STREAMING_CONT_QUERY系统表存储所有CONTVIEW对象的元数据信息。 表1 STREAMING_CONT_QUERY字段 名称 类型 描述 id integer CONTVIEW对象唯一的标识符,不可重复。 type "char" 标识CONTVIEW的类型。 'r':表示该CONTVIEW是基于行存存储模型。 relid oid CONTVIEW对象的标识。 defrelid oid CONTVIEW对应的持续计算规则VIEW的标识。 active boolean 标识CONTVIEW是否处于持续计算状态。 t(true):表示是。 f(false):表示不是。 streamrelid oid CONTVIEW对应的STREAM的标识。 matrelid oid CONTVIEW对应物化表的标识。 lookupidxid oid CONTVIEW对应GROUP LOOK UP INDEX的标识,此字段内部使用,仅行存具有。 step_factor smallint 标识CONTVIEW的步进模式。主要取值为0(无重叠窗口)和1(滑动窗口,步长为1)。 ttl integer CONTVIEW设置的ttl_interval参数值。 ttl_attno smallint CONTVIEW设置的TTL功能对应时间列的字段编号。 dictrelid oid CONTVIEW对应字典表的标识。 grpnum smallint CONTVIEW持续计算规则中维度列的个数,此字段内部使用。 grpidx int2vector CONTVIEW持续计算规则中维度列在TARGET LIST的索引,此字段内部使用。 父主题: 其他系统表
  • report_application_error() 描述:PL执行过程中,可以使用此函数来抛ERROR。 返回值类型:void 表1 report_application_error参数说明 参数 类型 说明 是否必选 log text error消息的内容。 是 code int4 error消息对应的error code,范围为:-20999 ~ -20000。 否 示例 gaussdb=# CREATE OR REPLACE FUNCTION GET_RESULT_UNKNOWN( gaussdb(# IN context_id int, /*context_id*/ gaussdb(# IN col_type text /*col_type*/ gaussdb(# )RETURNS INTEGER gaussdb-# AS $$ gaussdb$# BEGIN gaussdb$# if col_type is NULL then gaussdb$# PG_CATALOG.REPORT_APPLICATION_ERROR('invalid input for the third parameter col_type should not be null'); gaussdb$# end if; gaussdb$# PG_CATALOG.REPORT_APPLICATION_ERROR('UnSupport data type for column_value(context: '||context_id||', '||PG_CATALOG.QUOTE_LITERAL(col_type)||')'); gaussdb$# return -1; gaussdb$# END; gaussdb$# $$ LANGUAGE plpgsql; CREATE FUNCTION gaussdb=# CALL GET_RESULT_UNKNOWN(NULL, NULL); ERROR: invalid input for the third parameter col_type should not be null CONTEXT: SQL statement "CALL pg_catalog.report_application_error('invalid input for the third parameter col_type should not be null')" PL/pgSQL function get_result_unknown(integer,text) line 4 at PERFORM
  • GS_COLUMN_KEYS GS_COLUMN_KEYS系统表记录密态等值特性中列加密密钥相关信息,每条记录对应一个列加密密钥。 表1 GS_COLUMN_KEYS字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 column_key_name name 列加密密钥(cek)名称。 column_key_distributed_id oid 根据加密密钥(cek)全称 域名 哈希值得到的id。 global_key_id oid 外键。客户端加密主密钥(cmk)的OID。 key_namespace oid 包含此列加密密钥(cek)的命名空间OID。 key_owner oid 列加密密钥(cek)的所有者。 create_date timestamp without time zone 创建列加密密钥的时间。 key_acl aclitem[] 创建该列加密密钥时所拥有的访问权限。 父主题: 密态等值查询
  • SUMMARY_STAT_SYS_INDEXES 显示集群内所有节点pg_catalog、information_schema以及pg_toast模式中所有系统表的索引状态统计信息(在CN节点使用,对每个节点内系统表的索引状态信息汇总求和),如表1所示。 表1 SUMMARY_STAT_SYS_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: Object
  • 示例 修改PACKAGE的所有者。 --创建数据库。 gaussdb=# CREATE DATABASE test DBCOMPATIBILITY 'ORA'; gaussdb=# \c test --创建PACKAGE。 test=# CREATE OR REPLACE PACKAGE test_pkg AS pkg_var int := 1; PROCEDURE test_pkg_proc(var int); END test_pkg; / test=# CREATE OR REPLACE PACKAGE BODY test_pkg AS PROCEDURE test_pkg_proc(var int) AS BEGIN pkg_var := 1; END; END test_pkg; / --创建用户。 test=# CREATE ROLE test PASSWORD '********'; --修改包的所有者。 test=# ALTER PACKAGE test_pkg OWNER TO test; --查询test_pkg的所有者。 test=# SELECT t1.pkgname,t2.rolname FROM gs_package t1, gs_roles t2 WHERE t1.pkgname = 'test_pkg' AND t1.pkgowner = t2.oid; pkgname | rolname ----------+--------- test_pkg | test (1 row) --删除。 test=# DROP PACKAGE test_pkg; test=# DROP ROLE test; --切换至默认数据库(根据实际情况修改数据库名)。 test=# \c postgres gaussdb=# DROP DATABASE test;
  • 注意事项 目前仅支持ALTER PACKAGE OWNER功能,系统管理员默认拥有该权限,有以下权限约束: 当前用户必须是该package的所有者或者系统管理员,且该用户是新所有者角色的成员。 当打开三权分立时,即使是系统管理员,也必须拥有用户组权限才能修改package的owner,DEFINER类型package不允许修改所有者。 只有初始化用户才能修改package的owner为初始化用户。 当关闭三权分立时,仅系统管理员以上权限可以修改package所有者,但不允许修改所有者为运维管理员。 不允许系统管理员将DEFINER类型的package的所有者改为初始用户或运维管理员。
  • 参数说明 pool_name 资源池名称。 资源池名称为已创建的资源池。 取值范围:字符串,要符合标识符命名规范。 group_name 控制组名称。 设置控制组名称时,语法可以使用双引号,也可以使用单引号。 group_name对大小写敏感。 不指定group_name时,默认指定的字符串为 "Medium",代表指定DefaultClass控制组的"Medium" Timeshare控制组。 若数据库管理员指定自定义Class组下的Workload控制组,如control_group的字符串为:"class1:workload1";代表此资源池指定到class1控制组下的workload1控制组。也可同时指定Workload控制组的层次,如control_group的字符串为:"class1:workload1:1"。 若数据库用户指定Timeshare控制组代表的字符串,即"Rush"、"High"、"Medium"或"Low"其中一种,如control_group的字符串为"High";代表资源池指定到DefaultClass控制组下的"High" Timeshare控制组。 多租户场景下,组资源池关联的控制组为class级别,业务资源池关联Workload控制组。且不允许在各种资源池间相互切换。 取值范围:已创建的控制组。 dop 资源池最大并发度,语句执行时能够创建的最多线程数量。 取值范围:数值型,1~2147483647‬。 memory_size 资源池最大使用内存。 取值范围:字符串,内容范围1KB~2047GB,单位大小写敏感。 mem_percent 资源池可用内存占全部内存或者组用户内存使用的比例。 在多租户场景下,组用户和业务用户的mem_percent范围为1-100的整数,默认为20。 在普通场景下,普通用户的mem_percent范围为0-100的整数,默认值为0。 mem_percent和memory_limit同时指定时,只有mem_percent起作用。 io_limits 资源池每秒可触发IO次数上限,0表示不限制IO次数。 以万次为单位计数。 取值范围:数值型,0~2147483647 io_priority IO利用率高达90%时,重消耗IO作业进行IO资源管控时关联的优先级等级。 包括三档可选:Low、Medium和High。不控制时可设置为None,默认为None。 取值范围:枚举型,可选项为:None、Low、Medium和High。 io_limits和io_priority的设置都仅对复杂作业有效。包括批量导入(INSERT INTO SELECT, COPY FROM, CREATE TABLE AS等),单DN数据量大约超过500MB的复杂查询和VACUUM FULL等操作。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全