华为云用户手册

  • SUMMARY_STAT_ALL_INDEXES 显示数据库各节点的每个索引的访问信息的汇总求和结果(其中timestamp类型字段不进行求和,仅取所有节点该字段的最新值),如表1所示。 表1 SUMMARY_STAT_ALL_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 last_updated timestamp with time zone 视图中该索引监控数据最后一次更新的时间。 父主题: Object
  • 注意事项 DROP TABLE删除表后,依赖该表的索引会被删除,而使用到该表的函数和存储过程将无法执行。删除分区表,会同时删除分区表中的所有分区。 表的所有者、表所在模式的所有者、被授予了表的DROP权限的用户或被授予DROP ANY TABLE权限的用户,有权删除指定表,三权分立关闭时,系统管理员默认拥有该权限。 DROP TABLE时,如果被指删除的表作为外键表引用了另一张表,会级联删除被引用表上的触发器,此时需要对被引用表加八级锁,可能造成业务的阻塞。
  • 参数说明 IF EXISTS 如果指定的表不存在,则发出一个notice而不是抛出一个error。 schema 模式名称。 table_name 表名称。 CASCADE | RESTRICT CASCADE:表示允许级联删除依赖于该表的对象(比如视图)。 RESTRICT:表示有依赖于该表的对象存在时,该索引无法被删除。此选项为缺省值。 PURGE 该参数表示即使开启回收站功能,使用DROP TABLE删除表时,也会直接物理删除表,而不是将其放入回收站中。
  • DBE_PLDEBUGGER.add_breakpoint debug端调试过程中,调用add_breakpoint增加新的断点,如表1所示。如果返回-1则说明指定的断点不合法,请参见DBE_PLDEBUGGER.info_code的canbreak字段确定合适的断点位置。进入内层函数前,外层函数无断点,则不支持在内层函数执行时,给外层函数添加断点。 表1 add_breakpoint入参和返回值列表 名称 类型 描述 funcoid IN text 函数ID。 lineno IN integer 行号。 breakpointno OUT integer 断点编号。 父主题: DBE_PLDEBUGGER Schema
  • GLOBAL_STATIO_ALL_INDEXES GLOBAL_STATIO_ALL_INDEXES视图包含各节点的数据库中的每个索引行,显示特定索引的I/O的统计,如表1所示。 表1 GLOBAL_STATIO_ALL_INDEXES字段 名称 类型 描述 node_name name 节点名称。 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read numeric 从索引中读取的磁盘块数。 idx_blks_hit numeric 索引命中缓存数。 last_updated timestamp with time zone 视图中该索引监控数据最后一次更新的时间。 父主题: Cache/IO
  • ecpg与Pro*C兼容性对比 ecpg是 GaussDB 提供的一种用于C语言程序的嵌入式SQL预处理器,与A数据库Pro*C预处理器在编译执行命令、语法、嵌入式语句等行为和语义上存在差异。 ecpg与Pro*C的相关使用差异对比: 目前ecpg不支持EXEC SQL CONTEXT ALLOCATE、EXEC SQL CONTEXT USE、EXEC SQL CONTEXT FREE。 ecpg当前不支持CONTEXT申请、使用、释放操作,ecpg有独立的内存管理机制。多线程模式下,ecpg在每个线程中独立地建立连接、执行SQL语句以及相关资源的释放。这一使用方式与Pro*C多线程程模式下每个线程各自进行CONTEXT相关申请与释放的处理逻辑一致。 目前ecpg不支持EXEC SQL COMMIT WORK RELEASE。 在ecpg中,当业务语句执行COMMIT之后,并没有RELEASE选项,需要通过调用EXEC SQL DISCONNECT、EXEC SQL CLOSE等命令来实现相关资源的释放。Pro*C中EXEC SQL COMMIT带有RELEASE选项。用于释放程序持有的所有连接、游标等资源信息。 目前ecpg不支持EXEC SQL ENABLE THREAD。 ecpg编译选项中开启宏定义,在main函数的.pgc文件中定义(define)ENABLE_THREAD_SAFETY。 目前ecpg不支持存储过程、Package、匿名块、闪回等特性语法。 父主题: 基于ecpg开发
  • 参数 表1 PQsetdbLogin参数 关键字 参数说明 pghost 要连接的主机名,详见连接参数描述的host字段。 pgport 主机服务器的端口号,详见连接参数描述的port字段。 pgoptions 添加命令行选项以在运行时发送到服务器,详见连接参数描述的options字段。 pgtty 忽略(该选项声明服务器日志的输出方向)。 dbName 要连接的数据库名,详见连接参数描述的dbname字段。 login 要连接的用户名,详见连接参数描述的user字段。 pwd 如果服务器要求口令认证,所用的口令,详见连接参数描述的password字段。
  • PG_STAT_XACT_ALL_TABLES PG_STAT_XACT_ALL_TABLES视图显示命名空间中所有普通表和toast表的事务状态信息。 表1 PG_STAT_XACT_ALL_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 该表的模式名。 relname name 表名。 seq_scan bigint 该表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 该表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(比如没有更新所需的单独索引)。 父主题: 其他系统视图
  • ADM_HIST_SQLTEXT ADM_HIST_SQLTEXT视图描述当前节点的执行语句的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在PG_CATA LOG 和SYS Schema下。 WDR Snapshot启动(即GUC参数enable_wdr_snapshot为on时)后,用户可以查看此视图中的数据。 表1 ADM_HIST_SQLTEXT字段 名称 类型 描述 dbid integer 数据库ID。 sql_id bigint 查询标识。 sql_text clob 查询对应文本。 command_type integer 暂不支持,值为0。 con_dbid integer 容器数据库ID,目前与dbid取值相同。 con_id integer 容器ID,目前不支持容器,值为0。 父主题: 其他系统视图
  • SUMMARY_STAT_XACT_USER_FUNCTIONS 显示数据库各节点,本事务内函数执行的统计信息的汇总求和结果,如表1所示。 表1 SUMMARY_STAT_XACT_USER_FUNCTIONS字段 名称 类型 描述 schemaname name 函数所在的Schema名。 funcname name 函数名称。 calls numeric 函数被调用的次数。 total_time double precision 此函数及其调用的所有其他函数所花费的总时间。 self_time double precision 在此函数本身中花费的时间(不包括它调用的其他函数)。 父主题: Object
  • 数据类型 数据类型是数据的一个基本属性,用于区分不同类型的数据。不同的数据类型所占的存储空间不同,能够进行的操作也不相同。数据库中的数据存储在数据表中。数据表中的每一列都定义了数据类型,用户存储数据时,须遵从这些数据类型的属性,否则可能会出错。 GaussDB支持某些数据类型间的隐式转换,具体转换关系请参见PG_CAST。 数值类型 货币类型 布尔类型 字符类型 二进制类型 日期/时间类型 几何类型 网络地址类型 位串类型 UUID类型 JSON/JSONB类型 HLL数据类型 范围类型 对象标识符类型 伪类型 XML类型 XMLTYPE类型 账本数据库使用的数据类型 SET类型 aclitem类型 数组类型 向量数据类型 父主题: SQL参考
  • DB4AI.PUBLISH_SNAPSHOT PUBLISH_SNAPSHOT是DB4AI特性用于发布快照的接口函数,如表1所示。通过语法PUBLISH SNAPSHOT调用。 表1 DB4AI.PUBLISH_SNAPSHOT入参和返回值列表 参数 类型 描述 i_schema IN NAME 快照存储的模式名字,默认值是当前用户或者PUBLIC。 i_name IN NAME 快照名称。 res OUT db4ai.snapshot_name 结果。 父主题: DB4AI Schema
  • ADM_PART_INDEXES ADM_PART_INDEXES视图显示数据库中所有分区表索引的信息(不包含分区表全局索引)。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_PART_INDEXES字段 名称 类型 描述 def_tablespace_name name 分区表索引的表空间名称。 index_owner character varying(64) 分区表索引的所有者名称。 index_name character varying(64) 分区表索引的名称。 partition_count bigint 分区表索引的索引分区的个数。 partitioning_key_count integer 分区表的分区键个数。 partitioning_type text 分区表的分区策略。 说明: 当前分区表策略支持范围见CREATE TABLE PARTITION。 schema character varying(64) 分区表索引所属模式的名称。 table_name character varying(64) 分区表索引所属的分区表名称。 subpartitioning_type text 二级分区表的分区策略。如果分区表是一级分区表,则显示NONE。 说明: 当前二级分区表策略支持范围见CREATE TABLE SUBPARTITION。 def_subpartition_count integer 默认创建二级分区的个数。二级分区表为1,一级分区表为0。 subpartitioning_key_count integer 分区表二级分区键的个数。 父主题: 分区表
  • GS_MASKING_POLICY_FILTERS GS_MASKING_POLICY_FILTERS系统表记录动态数据脱敏策略对应的用户过滤条件,当用户条件满足FILTER条件时,对应的脱敏策略才会生效。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY_FILTERS表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 filtertype name 过滤类型。目前值仅为logical_expr。 filterlabelname name 过滤范围。目前值仅为logical_expr。 policyoid oid 该条用户过滤条件所属的脱敏策略oid,对应GS_MASKING_POLICY中的oid。 modifydate timestamp without time zone 该条用户过滤条件创建或修改的最新时间戳。 logicaloperator text 过滤条件的波兰表达式。 父主题: 动态脱敏
  • hll_default_log2sparse 参数说明:该参数可以用来设置从Sparse模式到Full模式的默认阈值大小。 参数类型:整型 参数单位:无 取值范围:0~14。0表示跳过Explicit模式,取1-14表示在基数到达2hll_default_log2sparse时切换模式。 默认值:12 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:设置为默认值,可以根据实际业务需要进行调整。
  • hll_default_log2m 参数说明:该参数可以指定hll数据结构桶的个数。桶的个数会影响hll计算distinct值的精度,桶的个数越多,误差越小。误差范围为:[-1.04/2log2m*1/2,+1.04/2log2m*1/2]。 参数类型:整型 参数单位:无 取值范围:10~16。 默认值:14 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:设置为默认值,可以根据实际业务需要进行调整。
  • hll_default_log2explicit 参数说明:该参数可以用来设置从Explicit模式到Sparse模式的默认阈值大小。 参数类型:整型 参数单位:无 取值范围:0~12。0表示跳过Explicit模式,取1-12表示在基数到达2hll_default_log2explicit时切换模式。 默认值:10 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:设置为默认值,可以根据实际业务需要进行调整。
  • SNAPSHOT.TABLES_SNAP_TIMESTAMP TABLES_SNAP_TIMESTAMP表记录所有存储的WDR Snapshot中数据库、表对象以及WDR快照的开始和结束时间,WDR Snapshot在启动后(打开GUC参数enable_wdr_snapshot)会触发创建该表,如表1所示。 表1 TABLES_SNAP_TIMESTAMP表属性 名称 类型 描述 示例 snapshot_id bigint WDR快照序号。 1 node_name name WDR快照的表信息所属的节点名。 dn_6001 db_name text WDR Snapshot对应的database。 tpcc1000 tablename text WDR Snapshot对应的table。 snap_xc_statio_all_indexes start_ts timestamp WDR快照的开始时间。 2019-12-28 17:11:27.425849+08 end_ts timestamp WDR快照的结束时间。 2019-12-28 17:11:27.707398+08 父主题: WDR Snapshot原信息
  • SUMMARY_STATIO_ALL_SEQUEN CES SUMMARY_STATIO_ALL_SEQUENCES视图包含数据库内汇聚的数据库中每个序列的每一行,显示特定序列关于I/O的统计,如表1所示。 表1 SUMMARY_STATIO_ALL_SEQUENCES字段 名称 类型 描述 schemaname name 序列中模式名。 relname name 序列名。 blks_read numeric 从序列中读取的磁盘块数。 blks_hit numeric 序列中缓存命中数。 父主题: Cache/IO
  • walrcv_writer_crc_check_level 参数说明:支持流式容灾场景下,主备数据库内备机侧的xlog校验,默认仅在灾备数据库内开启。 参数类型:整型 参数单位:无 取值范围:0~3 0:关闭校验。 1:灾备数据库内校验生效。 2:主数据库内备机侧的校验生效。 3:主数据库内的备机和灾备数据库内节点全部生效。 默认值:1 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
  • standby_force_recycle_ratio 参数说明:开启极致RTO功能后,备机读相关文件的触发强制回收的比例。当base page文件总大小超过max_standby_base_page_size* standby_force_recycle_ratio,或者lsn info文件总大小超过max_standby_lsn_info_size* standby_force_recycle_ratio时,触发强制回收,会有查询被取消。当standby_force_recycle_ratio = 0时,不会启动强制回收,max_standby_base_page_size和max_standby_lsn_info_size也不会生效。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:双精度浮点类型,0.0~1.0。 默认值:0.8
  • standby_max_query_time 参数说明:开启极致RTO功能后,支持的备机上查询的最大时间,超过该时间会被取消。注:何时取消查询受回收线程的时间间隔参数standby_recycle_interval和查询取快照的时间影响,因此备机上查询的实际执行时间要大于该参数。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:整型,0~86400‬,单位是秒(s)。 默认值:600
  • hot_standby_feedback 参数说明:设置是否允许将备机上执行查询的结果反馈给主机,这可以避免查询冲突。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示允许将备机上执行查询的最小事务号反馈给主机。 off表示不允许将备机上执行查询的最小事务号反馈给主机。 默认值:off 当该参数为on时,主机的旧版本数据的清理会受限于备机正在读的事务,即主机只允许清理小于备机反馈回来的事务所作的更改。 所以,若该参数开启时,会影响主机的性能。若备机回放与查询冲突,出现查询报错,建议适当调大max_standby_streaming_delay。
  • max_standby_streaming_delay 参数说明:当开启双机热备模式时,如果备机正通过流复制接收WAL日志数据,这时进行查询就会产生冲突,这个参数就是设置备机取消查询之前所等待的时间。当参数值较大,或业务压力大时,概率出现等待事务回放落盘的报错。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 -1表示允许备机一直等待冲突的查询完成。在开启串行或并行回放的场景下,当检测到查询线程与回放线程已处于死锁状态时,仍会通过取消查询来避免阻塞回放。 取值范围:整型(毫秒),范围:-1~INT_MAX。 默认值:3s(即3000ms)
  • wal_receiver_status_interval 参数说明:设置WAL日志接收线程的状态通知给主机的最大时间间隔。 该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 取值范围:整型,0 ~ INT_MAX / 1000 ,单位为秒。 默认值:5s 当该参数设置为0时,表示关闭备机向主机反馈日志接收位置等信息,可能会导致主机事务提交阻塞、switchover操作失败等异常现象。正常业务场景,不建议将该参数设置为0。
  • hot_standby 参数说明:设置是否允许备机在恢复过程中连接和查询。 该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 如果此参数设置为on,wal_level级别必须设置为hot_standby或以上,否则将导致数据库无法启动。 在双机环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。 如果hot_standby参数曾经被关闭,且wal_level参数曾被设置低于hot_standby等级,那么,再次打开hot_standby参数之前,为了确保主备环境下备机上待回放的日志都可以支持备机查询功能,需要进行如下操作: 将主、备的wal_level参数调整到hot_standby等级或以上,并重启实例生效。 在主机上执行checkpoint操作,并通过查询pg_stat_get_wal_senders()系统函数,确认各个备机的receiver_replay_location追上主机当前的sender_flush_location,保证wal_level的调整同步到备机并生效,且备机不需要再回放之前低等级的日志。 将主、备的hot_standby参数打开(设为on),并重启实例生效。 备机读开启后,因备机回放与查询冲突,可能会出现查询被取消的报错,报错信息有: ERROR: canceling statement due to conflict with recovery ERROR: terminating connection due to conflict with recovery 在串行和并行回放备机读下,主机在进行在线重建索引时,备机读可能会报错,备机读请稍后重试。报错信息有: could not open relation with OID xxx during recovery delete object, please try again later Catalog is missing xxx attribute(s) for relid xxx cache lookup failed for index xxx, refilenode:xxx, name:"xxx" could not find pg_class entry for xxx 在极致RTO备机读的情况下,内存配置较小的虚拟机可能出现内存不足的报错,可通过开启GUC参数exrto_standby_read_opt(默认开启)有效降低内存和IO开销,解决此问题。 典型场景下的备机读性能:使用sysbench进行测试,主机执行100并发的update类型业务,主备机同时执行200并发的读类型业务,在IO和CPU不受限的条件下,串行回放备机读的性能不低于主机读业务性能的80%,极致RTO备机读的性能和串行回放备机读的性能相比劣化不超过10%。 取值范围:布尔型 on表示允许备机在恢复过程中连接和查询。 off表示不允许备机在恢复过程中连接和查询。 默认值:on
  • max_standby_archive_delay 参数说明:当开启双机热备模式时,如果备机正处理归档WAL日志数据,这时进行查询就会产生冲突,此参数就是设置备机取消查询之前所等待的时间。当前版本设置暂不生效,统一由参数max_standby_streaming_delay控制。 参数类型:整型 参数单位:毫秒 取值范围:-1 ~ 2147483647 -1表示允许备机一直等待冲突的查询完成。 默认值:3s(即3000ms) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议设置为默认值。
  • GS_WORKLOAD_RULE_STAT GS_WORKLOAD_RULE_STAT系统视图记录SQL限流规则相关的信息。只有具有sysadmin权限的用户才可以访问此系统视图。 表1 GS_WORKLOAD_RULE_STAT字段 名称 类型 描述 rule_id bigint 限流规则ID。 rule_name name 限流规则的名称,用于检索限流规则。 databases name[] 限流规则作用的数据库列表,为NULL表示对所有库生效。 rule_type text 限流规则类型,当前仅支持:“sqlid”、“select”、“insert”、“update”、“delete”、“merge”、“resource”,其他取值为非法值。 start_time timestamp with time zone 限流规则开始的时间,为NULL表示从现在开始生效。 end_time timestamp with time zone 限流规则结束的时间,为NULL表示一直生效。 max_workload bigint 限制规则设置的最大并发数。 option_val text[] 限流规则的参数值,包括:sqlid,关键字列表,资源限制情况。 详细请参见•gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val)接口说明。 is_valid boolean 限流规则是否生效,超时的限流规则会设为false。 validate_count bigint 限流规则拦截SQL的次数。 node_names text[] 预留字段,限流规则生效的节点名称列表,当前不生效。 user_names text[] 预留字段,限流规则生效的用户名称列表,当前不生效。 父主题: 其他系统视图
  • GLOBAL_SHARED_MEMORY_DETAIL 查询数据库中所有正常节点下的共享内存上下文的使用信息,如表1所示。 表1 GLOBAL_SHARED_MEMORY_DETAIL字段 名称 类型 描述 node_name name 节点名称。 contextname text 内存上下文的名称。 level smallint 内存上下文的级别。 parent text 上级内存上下文。 totalsize bigint 共享内存总大小(单位:字节)。 freesize bigint 共享内存剩余大小(单位:字节)。 usedsize bigint 共享内存使用大小(单位:字节)。 父主题: Memory
  • GLOBAL_STAT_SYS_INDEXES 显示数据库各节点pg_catalog、information_schema以及pg_toast模式中所有系统表的索引状态信息(不同节点数据不汇总求和),如表1所示。 表1 GLOBAL_STAT_SYS_INDEXES字段 名称 类型 描述 node_name name 节点名称。 relid oid 这个索引的表的OID。 indexrelid oid 索引的OID。 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 该索引上执行的索引扫描次数。 idx_tup_read bigint 该索引上扫描返回的索引项数。 idx_tup_fetch bigint 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: Object
共100000条