华为云用户手册

  • GTM模式 为适应不同的并发和一致性要求, GaussDB 提供了两种不同的GTM模式,GTM-Lite,GTM-Free。两种模式之间的主要区别是中心事务管理节点GTM的压力和事务处理流程不同,其中GTM-Lite模式下,中心事务处理节点的压力得到减轻,事务处理流程进一步优化,GTM的性能和并发瓶颈得到减轻,在保证一致性的情况下,事务处理能力得到更大限度的提升;在GTM-Free模式下,中心事务管理节点不再参与事务管理,消除了GTM单点瓶颈,可达到更高的事务处理性能,但是在一致性方面,支持所有事务运行完,保证读的外部一致性,不支持分布式事务强一致性读,不支持insert into select * from等依赖于查询结果的事务一致性。 当前版本暂不支持两种模式之间的相互切换,建议使用安装时默认的GTM模式,支持升级前后GTM模式不变化。 相关的GUC参数包括enable_gtm_free和gtm_option,可通过gsql执行show语句查询当前GTM模式: SHOW enable_gtm_free;SHOW gtm_option; 具体模式判断方法如下。 GTM-Lite模式:enable_gtm_free=off 且 gtm_option=1; GTM-Free模式:enable_gtm_free=on 或 gtm_option=2。 GTM-lite模式下,GaussDB支持分布式事务强一致和完整的语法功能。GTM-FREE模式下,由于采用了分布式事务最终一致的执行和并发控制机制,因此约束了部分语法的使用场景和使用方式。如果业务确有使用被限制语法的需求,那么在明确了解最终一致性行为的基础之上,需要对业务进行一定程度的改造。主要涉及的约束语法和改造建议如下: 总体原则:所有用户表必须指定分布键(DISTRIBUTE BY),且选择合理: 考虑数据分布均匀。 尽量选择查询中的关联条件作为分布键,保证关联查询不会引起DN节点之间的数据流动。 考虑将表的主键作为分布键。 SELECT: 表查询时,WHERE条件应包含所有分布键字段等值查询条件。 避免在SELECT目标列中使用子查询,可能导致计划无法下推到DN执行,影响执行性能。 DML: 默认不支持跨节点事务,如果所执行的DML语句包含跨节点事务,会报错处理,具体分为两种场景: 如果用户语句在数据库内部被拆分成多条独立语句执行,会报错:INSERT/UPDATE/DELETE/MERGE contains multiple remote queries under GTM-free mode Unsupport DML two phase commit under gtm free mode. modify your SQL to generate light-proxy or fast-query-shipping plan。这时,需要修改语句,来单节点执行。 举例: insert into t select * from b where b.c = xx; 假设t表和b表的分布键不同,且上述where条件只会过滤出一条数据。在不打开enable_stream_operator的情况下, 上面的查询在数据内部会被拆分成两条独立语句串行执行:首先执行select * from b where b.c = xx从某个DN节点抽取到目标记录;然后再执行insert into t语句,将抽取的目标记录下发到另一个节点DN节点完成插入。在gtm-free模式下,这样的语句执行方式会返回上述报错。类似的,create table as select * from、带子查询的delete/join/insert等语句,也可能会出现类似报错。 业务改造方案:在业务执行之前,需要加上set enable_stream_operator=on命令,打开流算子,使得业务语句可以被整体下推执行。 如果同一个用户语句在数据库内部涉及多节点执行,会报错:Your SQL needs more than one datanode to be involved in。这时,建议对语句进行修改,使得能够单节点执行。 举例: insert into t values(3,3),(1,1); 假设(3,3)和(1,1)被分布在不同的DN节点上,那么上述语句在数据库内部的执行过程会涉及两个DN节点。在gtm-free模式下,这样的语句执行方式会返回上述报错。 业务改造方式:对于上述语句,如果业务确有需要在多个节点上执行,需要在语句中添加一个hint来避免报错,如下: insert /*+ multinode */ into t values(3,3),(1,1); 类似的,对delete和update语句也有类似约束,一般建议用户在delete和update语句的where条件中加上分布键等值过滤条件。 建议开发阶段在jdbc连接串内设置application_type=perfect_sharding_type,这样所有跨节点读写操作的SQL都会报错,用来提示开发人员尽早优化语句。
  • 示例 -- 准备数据CREATE TABLE t1(c1 int, c2 int);INSERT INTO t1 VALUES(1, 1);INSERT INTO t1 VALUES(2, 2);-- 创建增量物化视图openGauss=# CREATE INCREMENTAL MATERIALIZED VIEW mv AS SELECT * FROM t1;CREATE MATERIALIZED VIEW-- 插入数据openGauss=# INSERT INTO t1 VALUES(3, 3);INSERT 0 1-- 增量刷新物化视图openGauss=# REFRESH INCREMENTAL MATERIALIZED VIEW mv;REFRESH MATERIALIZED VIEW-- 查询物化视图结果openGauss=# SELECT * FROM mv; c1 | c2 ----+---- 1 | 1 2 | 2 3 | 3(3 rows)-- 插入数据openGauss=# INSERT INTO t1 VALUES(4, 4);INSERT 0 1-- 全量刷新物化视图openGauss=# REFRESH MATERIALIZED VIEW mv;REFRESH MATERIALIZED VIEW-- 查询物化视图结果openGauss=# select * from mv; c1 | c2 ----+---- 1 | 1 2 | 2 3 | 3 4 | 4(4 rows)-- 删除物化视图openGauss=# DROP MATERIALIZED VIEW mv;DROP MATERIALIZED VIEW
  • 语法格式 创建增量物化视图 CREATE INCREMENTAL MATERIALIZED VIEW [ view_name ] AS { query_block }; 全量刷新物化视图 REFRESH MATERIALIZED VIEW [ view_name ]; 增量刷新物化视图 REFRESH INCREMENTAL MATERIALIZED VIEW [ view_name ]; 删除物化视图 DROP MATERIALIZED VIEW [ view_name ]; 查询物化视图 SELECT * FROM [ view_name ];
  • 示例 -- 准备数据CREATE TABLE t1(c1 int, c2 int);INSERT INTO t1 VALUES(1, 1);INSERT INTO t1 VALUES(2, 2);-- 创建全量物化视图openGauss=# CREATE MATERIALIZED VIEW mv AS select count(*) from t1;CREATE MATERIALIZED VIEW-- 查询物化视图结果openGauss=# SELECT * FROM mv; count ------- 2(1 row)-- 再次向物化视图中基表插入数据openGauss=# INSERT INTO t1 VALUES(3, 3);-- 对全量物化视图做全量刷新openGauss=# REFRESH MATERIALIZED VIEW mv;REFRESH MATERIALIZED VIEW-- 查询物化视图结果openGauss=# SELECT * FROM mv; count ------- 3(1 row)-- 删除物化视图openGauss=# DROP MATERIALIZED VIEW mv;DROP MATERIALIZED VIEW
  • OPERATOR_EC_HISTORY OPERATOR_EC_HISTORY视图显示的是当前用户在当前CN上执行EC(Extension Connector)作业结束后的算子相关记录。此视图查询数据的记录会被定时清理,清理周期为3分钟。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 当GUC参数enable_resource_record为“on”时,视图中的记录每隔3分钟被转储到系统表GS_WLM_EC_OPERATOR_INFO中一次,同时视图中的记录被删除; 当GUC参数enable_resource_record为“off”时,记录在视图中的存留时间达到超期时间(超期时间为3分钟)后会被删除。记录的数据同GS_WLM_EC_OPERATOR_INFO的字段。 父主题: Operator
  • 语法格式 创建全量物化视图 CREATE MATERIALIZED VIEW [ view_name ] AS { query_block }; 全量刷新物化视图 REFRESH MATERIALIZED VIEW [ view_name ]; 删除物化视图 DROP MATERIALIZED VIEW [ view_name ]; 查询物化视图 SELECT * FROM [ view_name ];
  • LOCKS LOCKS视图用于查看各打开事务所持有的锁信息。 表1 LOCKS字段 名称 类型 描述 locktype text 被锁定对象的类型:relation,extend,page,tuple,transactionid,virtualxid,object,userlock,advisory。 database oid 被锁定对象所在数据库的OID: 如果被锁定的对象是共享对象,则OID为0。 如果是一个事务ID,则为NULL。 relation oid 关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。 page integer 关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。 tuple smallint 页面里边的行编号,如果对象不是行,则为NULL。 bucket integer 哈希桶号。 virtualxid text 事务的虚拟ID,如果对象不是一个虚拟事务ID,则为NULL。 transactionid xid 事务的ID,如果对象不是一个事务ID,则为NULL。 classid oid 包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。 objid oid 对象在其系统表内的OID,如果对象不是普通数据库对象,则为NULL。 objsubid smallint 对于表的一个字段,这是字段编号;对于其他对象类型,这个字段是零;如果这个对象不是普通数据库对象,则为NULL。 virtualtransaction text 持有此锁或者在等待此锁的事务的虚拟ID。 pid bigint 持有或者等待这个锁的服务器线程的逻辑ID。如果锁是被一个预备事务持有的,则为NULL。 sessionid bigint 持有或者等待这个锁的会话ID。如果锁是被一个预备事务持有的,则为NULL。 mode text 这个线程持有的或者是期望的锁模式。 granted boolean 如果锁是持有锁,则为TRUE。 如果锁是等待锁,则为FALSE。 fastpath boolean 如果通过fast-path获得锁,则为TRUE;如果通过主要的锁表获得,则为FALSE。 locktag text 会话等待锁信息,可通过locktag_decode()函数解析。 global_sessionid text 全局会话ID。 父主题: Lock
  • Replication stat 表2 Replication stat报表主要内容 列名称 描述 Thread Id 线程的PID。 Usesys Id 用户系统ID。 Usename 用户名称。 Application Name 应用程序。 Client Addr 客户端地址。 Client Hostname 客户端主机名。 Client Port 客户端端口。 Backend Start 程序起始时间。 State 日志复制状态。 Sender Sent Location 发送端发送日志位置。 Receiver Write Location 接收端write日志位置。 Receiver Flush Location 接收端flush日志位置。 Receiver Replay Location 接收端replay日志位置。 Sync Priority 同步优先级。 Sync State 同步状态。
  • SQL Statistics SQL Statistics列名称及描述如下表所示。 表1 SQL Statistics报表主要内容 列名称 描述 Unique SQL Id 归一化的SQL ID。 Node Name 节点名称。 User Name 用户名称。 Tuples Read 访问的元组数量。 Calls 调用次数。 Min Elapse Time(us) 最小执行时间(us)。 Max Elapse Time(us) 最大执行时间(us)。 Total Elapse Time(us) 总执行时间(us)。 Avg Elapse Time(us) 平均执行时间(us)。 Returned Rows SELECT返回行数。 Tuples Affected Insert/Update/Delete行数。 Logical Read Buffer逻辑读次数。 Physical Read Buffer物理读次数。 CPU Time(us) CPU时间(us)。 Data IO Time(us) IO上的时间花费(us)。 Sort Count 排序执行的次数。 Sort Time(us) 排序执行的时间(us)。 Sort Mem Used(KB) 排序过程中使用的work memory大小(KB)。 Sort Spill Count 排序过程中,若发生落盘,写文件的次数。 Sort Spill Size(KB) 排序过程中,若发生落盘,使用的文件大小(KB)。 Hash Count hash执行的次数。 Hash Time(us) hash执行的时间(us)。 Hash Mem Used(KB) hash过程中使用的work memory大小(KB)。 Hash Spill Count hash过程中,若发生落盘,写文件的次数。 Hash Spill Size(KB) hash过程中,若发生落盘,使用的文件大小(KB)。 SQL Text 归一化SQL字符串。 父主题: 查看WDR报告
  • User table IO activity 表1 User table IO activity表格字段 列名称 描述 DB Name Database名称。 Schema Name Schema名称。 Table Name Table名称。 %Heap Blks Hit Ratio 此表的Buffer Pool命中率。 Heap Blks Read 该表中读取的磁盘块数。 Heap Blks Hit 此表缓存命中数。 Idx Blks Read 表中所有索引读取的磁盘块数。 Idx Blks Hit 表中所有索引命中缓存数。 Toast Blks Read 此表的TOAST表读取的磁盘块数(如果存在)。 Toast Blks Hit 此表的TOAST表命中缓冲区数(如果存在)。 Tidx Blks Read 此表的TOAST表索引读取的磁盘块数(如果存在)。 Tidx Blks Hit 此表的TOAST表索引命中缓冲区数(如果存在)。
  • User index IO activity 表2 User index IO activity表格字段 列名称 描述 DB Name Database名称。 Schema Name Schema名称。 Table Name Table名称。 Index Name Index名称。 %Idx Blks Hit Ratio Index的命中率。 Idx Blks Read 所有索引读取的磁盘块数。 Idx Blks Hit 所有索引命中缓存数。
  • Configuration settings Configuration settings列名称及描述如下表所示。 表1 Configuration settings报表主要内容 列名称 描述 Name GUC参数名称。 Abstract GUC参数描述。 Type 数据类型。 Curent Value 当前值。 Min Value 合法最小值。 Max Value 合法最大值。 Category GUC参数类别。 Enum Values 如果是枚举值,列举所有枚举值。 Default Value 数据库启动时参数默认值。 Reset Value 数据库重置时参数默认值。 父主题: 查看WDR报告
  • Wait Events Wait Events列名称及描述如下表所示。 表1 Wait Events报表主要内容 列名称 描述 Type Wait Event类别名称: STATUS。 LWLOCK_EVENT。 LOCK_EVENT。 IO_EVENT。 Event Wait Event名称。 Total Wait Time (us) 总Wait时间(us)。 Waits 总Wait次数。 Failed Waits Wait失败次数。 Avg Wait Time (us) 平均Wait时间(us)。 Max Wait Time (us) 最大Wait时间(us)。 父主题: 查看WDR报告
  • WAIT_EVENT_INFO WAIT_EVENT_INFO视图显示wait event的具体信息。 表1 WAIT_EVENT_INFO字段 名称 类型 描述 module text event所属的模块名。 type text event类型。 event text event名称。 表2 Wait Events事件信息列表 模块分类 事件分类 事件 说明 Lock 等待事件 acquire lock 等待加锁,要么加锁成功,要么加锁等待超时。 SharedMemory LWLOCK事件 ShmemIndexLock 用于保护共享内存中的主索引哈希表 Shared buffer LWLOCK事件 BufMappingLock 用于保护对共享缓冲映射表的操作。 Lmgr LWLOCK事件 LockMgrLock 用于保护常规锁结构信息。 LWLock 等待事件 acquire lwlock 等待获取轻量级锁 I/O 等待事件 wait io 等待IO完成 COMM 等待事件 wait cmd 等待完成读取网络通信包 COMM 等待事件 wait pooler get conn 等待pooler完成获取连接 COMM 等待事件 wait pooler abort conn 等待pooler完成终止连接 COMM 等待事件 wait pooler clean conn 等待pooler完成清理连接 COMM 等待事件 get conn 获取到其他节点的连接 COMM 等待事件 set cmd 在连接上执行SET/RESET/TRANSACTION BLOCK LEVEL COMM 等待事件 cancel query 取消某连接上正在执行的SQL语句 COMM 等待事件 stop query 停止某连接上正在执行的查询 COMM 等待事件 wait node 等待接收与某节点的连接上的数据 COMM 等待事件 flush data 等待向网络中的其他节点发送数据 COMM 等待事件 stream get conn 初始化stream flow时,等待建立到consumer nodes的连接。 COMM 等待事件 wait producer ready 初始化stream flow时,等待每个producer都准备好。 Stream 等待事件 synchronize quit steam plan结束时,等待stream线程组内的线程统一退出。 Stream 等待事件 wait stream group destroy steam plan结束时,等待销毁stream node group。 Transaction 等待事件 wait transaction sync 等待事务同步 Transaction 等待事件 wait data sync 等待完成数据页到备机的同步 Transaction 等待事件 wait data sync queue 等待把行存的数据页或列存的CU放入同步队列 Transaction LWLOCK事件 OidGenLock 用于避免不同线程产生相同的OID。 Transaction LWLOCK事件 XidGenLock 用于避免两个事务获得相同的xid。 Transaction LWLOCK事件 ProcArrayLock 用于避免并发访问或修改ProcArray共享数组。 Transaction LWLOCK事件 SubtransControlLock 用于避免并发访问或者修改子事务控制数据结构 Transaction LWLOCK事件 MultiXactGenLock 用于串行分配唯一MultiXactid Transaction LWLOCK事件 TwoPhaseStateLock 用于避免并发访问或者修改两阶段信息共享数组 Transaction LWLOCK事件 SerializableXactHashLock 用于避免对于可串行事务共享结构的写写并发和读写并发 Transaction LWLOCK事件 SerializableFinishedListLock 用于避免对于已完成可串行事务共享链表的写写并发和读写并发 Transaction LWLOCK事件 SerializablePredicateLockListLock 用于保护对于可串行事务持有的锁链表 Transaction LWLOCK事件 PredicateLockMgrLock 用于保护可串行事务锁结构信息。 Transaction LWLOCK事件 OldSerXid SLRU lwlock 保护old xids的slru buffer Transaction LWLOCK事件 OldSerXidLock 用于保护记录冲突可串行事务的结构 Transaction LOCK事件 transactionid 对事务ID加锁 Transaction LOCK事件 virtualxid 对虚拟事务ID加锁 Checkpoint LWLOCK事件 CheckpointLock 用于避免多个checkpoint并发执行 Checkpoint LWLOCK事件 CheckpointerCommLock 用于向checkpointer发起文件刷盘请求场景,需要串行的向请求队列插入请求结构。 Analyze LWLOCK事件 AutoanalyzeLock 用于获取和释放允许执行Autoanalyze的任务资源。 Vacuum LWLOCK事件 BtreeVacuumLock 用于防止vacuum清理btree中还在使用的页面。 Vacuum LWLOCK事件 AutovacuumLock 用于串行化访问autovacuum worker数组 Vacuum LWLOCK事件 AutovacuumScheduleLock 用于串行化分配需要vacuum的table Auto vacuum LWLOCK事件 AutovacuumLock 用于保护autovacuum shmem struct Auto vacuum LWLOCK事件 AutovacuumScheduleLock 用于保护auto vacuum worker信息 Auto analyze LWLOCK事件 AutoanalyzeLock 用于保护autoAnalyzeFreeProcess变量,保证最多有10个auto analyze线程同时运行。 WAL 等待事件 wait wal sync 等待特定LSN的wal log完成到备机的同步 WAL I/O事件 WALBootstrapSync 将初始化的WAL文件持久化到磁盘。在数据库初始化发生。 WAL I/O事件 WALBootstrapWrite 写入初始化的WAL文件。在数据库初始化发生。 WAL I/O事件 WALCopyRead 读取已存在的WAL文件并进行复制时产生的读操作。在执行归档恢复完后发生。 WAL I/O事件 WALCopySync 将复制的WAL文件持久化到磁盘。在执行归档恢复完后发生。 WAL I/O事件 WALCopyWrite 读取已存在WAL文件并进行复制时产生的写操作。在执行归档恢复完后发生。 WAL I/O事件 WALInitSync 将新初始化的WAL文件持久化磁盘。在日志回收或写日志时发生。 WAL I/O事件 WALInitWrite 将新创建的WAL文件初始化为0。在日志回收或写日志时发生。 WAL I/O事件 WALRead 从xlog日志读取数据。两阶段文件redo相关的操作产生。 WAL I/O事件 WALSyncMethodAssign 将当前打开的所有WAL文件持久化到磁盘。 WAL I/O事件 WALWrite 写入WAL文件。 WAL I/O事件 LOG CTRL_SLEEP 统计流控发生了多少次、日志流控的睡眠时间。 WAL LWLOCK事件 RcvWriteLock 防止并发调用WalDataRcvWrite。 WAL LWLOCK事件 WALBufMappingLock 初始化Xlogbufer的下一个page时需要加x锁。 WAL LWLOCK事件 WALInsertLock 用于防止多个程序同时向同一个xlog缓冲区写。 WAL LWLOCK事件 WALWriteLock 用于避免并发刷写wal日志。 Relation LWLOCK事件 SInvalReadLock 用于避免与清理失效消息并发执行。 Relation LWLOCK事件 SinvalWriteLock 用于避免与其它写失效消息、清理失效消息并发执行。 Relation LWLOCK事件 RelCacheInitLock 用于失效消息场景对init文件进行操作时加锁。 Relation LWLOCK事件 TablespaceCreateLock 用于确定tablespace是否已经存在。 Relation LWLOCK事件 RelfilenodeReuseLock 避免错误地取消已重用的列属性文件的链接。 Relation LOCK事件 relation 对表加锁。 Relation LOCK事件 extend 对表扩展空间时加锁。 Relation LOCK事件 partition 对分区表加锁。 Relation LOCK事件 partition_seq 对分区表的分区加锁。 WLM 等待事件 wait active statement WLM等待active statement。 WLM 等待事件 wait memory WLM 等待空余内存。 DDL/DCL 等待事件 create index 等待index创建成功。 DDL/DCL 等待事件 analyze 等待analyze完成。 DDL/DCL 等待事件 vacuum 等待vacuum 完成。 DDL/DCL LWLOCK事件 DelayDDLLock 防止并发ddl。 DDL/DCL 等待事件 vacuum full 等待vacuum full操作 完成。 Executor 等待事件 Sort 等待tuple 排序完成。 Executor 等待事件 Sort - write file 归并排序时内存受限,将排序完的数据暂时写入文件。 Executor 等待事件 Material 等待将tuple物化。 Executor 等待事件 Material - write file 等待将物化的tuple写入文件。 Executor 等待事件 HashJoin - build hash 执行hashJoin时,等待hashtable建立完成。 Executor 等待事件 HashJoin - write file 执行hashJoin时,等待将tuple的hash结果写到磁盘。 Executor 等待事件 HashAgg - build hash 执行hashagg时,等待hashtable建立完成。 Executor 等待事件 HashAgg - write file 执行hashagg时,等待将tuple的hash结果写到磁盘。 Executor 等待事件 HashSetop - build hash 通过hash方式执行OP操作时,等待建立hash表。 Executor 等待事件 HashSetop - write file 通过hash方式执行OP操作时,等待将tuple的hash结果写到磁盘。 Executor 等待事件 wait sync consumer next step 等待stream consumer进行下一步处理。 Executor 等待事件 wait sync producer next step 等待stream producer进行下一步处理。 GTM 等待事件 gtm connect 等待与gtm连接 GTM 等待事件 gtm reset xmin 等待gtm重新设置xmin完成 GTM 等待事件 gtm get xmin 等待从gtm获取xmin GTM 等待事件 gtm get gxid 启动事务时等待从gtm获取gxid GTM 等待事件 gtm get csn 事务提交时等待从gtm获取 CS N GTM 等待事件 gtm get snapshot 事务启动时等待从gtm获取快照 GTM 等待事件 gtm begin trans 等待GTM开启事务 GTM 等待事件 gtm commit trans 等待GTM提交事务 GTM 等待事件 gtm rollback trans 等待GTM回滚事务 GTM 等待事件 gtm start preprare trans 两阶段提交时,等待GTM完成一阶段。 GTM 等待事件 gtm prepare trans 两阶段提交时,等待GTM完成第二阶段。 GTM 等待事件 gtm open sequence 等待gtm创建sequence。 GTM 等待事件 gtm close sequence 等待gtm完成alter sequence操作。 GTM 等待事件 gtm set sequence val 等待gtm设置sequence的值 GTM 等待事件 gtm drop sequence 等待gtm删除sequence GTM 等待事件 gtm rename sequence 等待gtm重命名sequence GTM LWLOCK事件 GTMHostInfoLock 用于保护gtm的信息 Temp File I/O事件 BufFileRead 从临时文件中读取数据到指定buffer Temp File I/O事件 BufFileWrite 向临时文件中写入指定buffer中的内容 Pg_control I/O事件 ControlFileRead 读取pg_control文件。主要在数据库启动、执行checkpoint和主备校验过程中发生。 Pg_control I/O事件 ControlFileSync 将pg_control文件持久化到磁盘。数据库初始化时发生。 Pg_control I/O事件 ControlFileSyncUpdate 将pg_control文件持久化到磁盘。主要在数据库启动、执行checkpoint和主备校验过程中发生。 Pg_control I/O事件 ControlFileWrite 写入pg_control文件。数据库初始化时发生。 Pg_control I/O事件 ControlFileWriteUpdate 更新pg_control文件。主要在数据库启动、执行checkpoint和主备校验过程中发生。 Pg_control LWLOCK事件 ControlFileLock 用于避免pg_control文件的读写并发、写写并发。 文件操作 I/O事件 CopyFileRead copy文件时读取文件内容 文件操作 I/O事件 CopyFileWrite copy文件时写入文件内容 文件操作 I/O事件 DataFileExtend 扩展文件时向文件写入内容 表数据文件 I/O事件 DataFileImmediateSync 将表数据文件立即持久化到磁盘 表数据文件 I/O事件 DataFilePrefetch 异步读取表数据文件 表数据文件 I/O事件 DataFileRead 同步读取表数据文件 表数据文件 I/O事件 DataFileSync 将表数据文件持久化磁盘 表数据文件 I/O事件 DataFileTruncate 表数据文件truncate 表数据文件 I/O事件 DataFileWrite 向表数据文件写入内容 表数据文件 LWLOCK事件 SyncScanLock 用于确定heap扫描时某个relfilenode的起始位置 表数据文件 LWLOCK事件 RelationMappingLock 用于等待更新系统表到存储位置之间映射的文件 元数据 LWLOCK事件 MetaCacheSweepLock 用于元数据循环淘汰 postmaster.pid I/O事件 LockFileAddToDataDirRead 读取"postmaster.pid"文件 postmaster.pid I/O事件 LockFileAddToDataDirSync 将"postmaster.pid"内容持久化到磁盘 postmaster.pid I/O事件 LockFileAddToDataDirWrite 将pid信息写到"postmaster.pid"文件 Pid File I/O事件 LockFileCreateRead 读取LockFile文件"%s.lock" Pid File I/O事件 LockFileCreateSync 将LockFile文件"%s.lock"内容持久化到磁盘 Pid File I/O事件 LockFileCreateWRITE 将pid信息写到LockFile文件"%s.lock" 系统表映射文件 I/O事件 RelationMapRead 读取系统表到存储位置之间的映射文件 系统表映射文件 I/O事件 RelationMapSync 将系统表到存储位置之间的映射文件持久化到磁盘 系统表映射文件 I/O事件 RelationMapWrite 写入系统表到存储位置之间的映射文件 Streaming replication I/O事件 ReplicationSlotRead 读取流复制槽文件。重新启动时发生 Streaming replication I/O事件 ReplicationSlotRestoreSync 将流复制槽文件持久化到文件 Streaming replication I/O事件 ReplicationSlotSync checkpoint时将流复制槽临时文件持久化到磁盘 Streaming replication I/O事件 ReplicationSlotWrite checkpoint时写流复制槽临时文件 Streaming replication LWLOCK事件 ReplicationSlotAllocationLock 方式分配同一个复制槽 Streaming replication LWLOCK事件 ReplicationSlotControlLock 检测复制槽名称冲突,识别出具体可分配的复制槽,需要ReplicationSlotControlLock锁。 Clog I/O事件 SLRUFlushSync 将pg_clog文件持久化到磁盘。主要在执行checkpoint和数据库停机时发生 Clog I/O事件 SLRURead 读取pg_clog文件 Clog I/O事件 SLRUSync 将脏页写入文件pg_clog并持久化到磁盘。主要在执行checkpoint和数据库停机时发生。 Clog I/O事件 SLRUWrite 写入pg_clog文件 Clog LWLOCK事件 CLogControlLock 用于避免并发访问或者修改Clog控制数据结构 Clog LWLOCK事件 MultiXactOffsetControlLock 用于避免对pg_multixact/offset的写写并发和读写并发 Clog LWLOCK事件 MultiXactMemberControlLock 用于避免对pg_multixact/members的写写并发和读写并发 timelinehistory I/O事件 TimelineHistoryRead 读取timelinehistory文件。在数据库启动时发生。 timelinehistory I/O事件 TimelineHistorySync 将timelinehistory文件持久化到磁盘。在数据库启动时发生。 timelinehistory I/O事件 TimelineHistoryWrite 写入timelinehistory文件 pg_twophase I/O事件 TwophaseFileRead 读取pg_twophase文件。在两阶段事务提交、两阶段事务恢复时发生。 pg_twophase I/O事件 TwophaseFileSync 将pg_twophase文件持久化到磁盘。在两阶段事务提交、两阶段事务恢复时发生。 pg_twophase I/O事件 TwophaseFileWrite 写入pg_twophase文件。在两阶段事务提交、两阶段事务恢复时发生。 Cluster LWLOCK事件 NodeTableLock 用于保护存放CN和DN节点信息的共享结构 Concurrency LWLOCK事件 PoolerLock 用于保证两个线程不会同时从连接池里取到相同的连接 Concurrency LWLOCK事件 AsyncCtlLock 用于避免并发访问或者修改共享通知状态 Concurrency LWLOCK事件 AsyncQueueLock 用于避免并发访问或者修改共享通知信息队列 Double write I/O事件 DoubleWriteFileWrite Double write过程中将页面写到Double write文件中 Double write I/O事件 DoubleWriteFileRead 发生半写进行恢复时读取Double write文件 Statistics file LWLOCK事件 FileStatLock 用于保护存储统计文件信息的数据结构 Master-slave replication LWLOCK事件 SyncRepLock 用于在主备复制时保护xlog同步信息。 Master-slave replication LWLOCK事件 ReplicationSlotAllocationLock 用于主备复制时保护主机端的流复制槽的分配。 Master-slave replication LWLOCK事件 ReplicationSlotControlLock 用于主备复制时避免并发更新流复制槽状态。 Master-slave replication LWLOCK事件 LsnXlogChkFileLock 用于串行更新特定结构中记录的主备机的xlogflush位置点 Master-slave replication LWLOCK事件 DataSyncRepLock 用于在主备复制时保护数据页同步信息。 Column store LWLOCK事件 CStoreColspaceCacheLock 用于保护列存表的CU空间分配。 Column store LWLOCK事件 CacheSlotMappingLock 用于保护CUCache全局信息。 Column store LWLOCK事件 CStoreCUCacheSweepLock 用于列存CUCache循环淘汰。 Column store LOCK事件 cstore_freespace 对列存空闲空间加锁 Speed up the cluster LWLOCK事件 dummyServerInfoCacheLock 用于保护缓存加速集群(由于规格变更,当前版本已经不再支持本特性,请不要使用)连接信息的全局哈希表。 Speed up the cluster LWLOCK事件 RPNumberLock 用于加速集群(由于规格变更,当前版本已经不再支持本特性,请不要使用)的DN对正在执行计划的任务线程的计数。 Speed up the cluster LWLOCK事件 ClusterRPLock 用于加速集群(由于规格变更,当前版本已经不再支持本特性,请不要使用)的CCN中维护的集群负载数据的并发存取控制。 Speed up the cluster LWLOCK事件 SearchServerLibLock 用于GPU加速场景初始化加载特定动态库时,对读文件操作进行加锁。 Resource manage LWLOCK事件 ResourcePoolHashLock 用于避免并发访问或者修改资源池哈希表。 Resource manage LWLOCK事件 WorkloadStatHashLock 用于避免并发访问或者修改包含CN侧的SQL请求构成的哈希表。 Resource manage LWLOCK事件 WorkloadIoStatHashLock 用于避免并发访问或者修改用于统计当前DN的IO信息的哈希表。 Resource manage LWLOCK事件 WorkloadCGroupHashLock 用于避免并发访问或者修改cgroup信息构成的哈希表。 Resource manage LWLOCK事件 WorkloadUserInfoLock 用于避免并发访问或修改负载管理(当前特性是实验室特性,使用时请联系华为工程师提供技术支持)的用户信息哈希表。 Resource manage LWLOCK事件 WorkloadRecordLock 用于避免并发访问或修改在内存自适应管理时对CN收到请求构成的哈希表。 Resource manage LWLOCK事件 WorkloadIOUtilLock 用于保护记录iostat,CPU等负载信息的结构。 Resource manage LWLOCK事件 WorkloadNodeGroupLock 用于避免并发访问或者修改内存中的nodegroup信息构成的哈希表。 OBS LWLOCK事件 OBSGetPathLock 用于避免对obs路径的写写并发和读写并发。 OBS LWLOCK事件 OBSRuntimeLock 用于获取环境变量,如GASSHOME。 LLVM LWLOCK事件 LLVMDumpIRLock 用于导出动态生成函数所对应的汇编语言。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 LLVM LWLOCK事件 LLVMParseIRLock 用于在查询开始处从IR文件中编译并解析已写好的IR函数。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 MPP is compatible with ORACLE scheduled task function LWLOCK事件 JobShmemLock 用于MPP兼容ORACLE定时任务功能中保护定时读取的全局变量。 Operator history information statistics LWLOCK事件 OperatorRealTLock 用于避免并发访问或者修改记录算子级实时数据的全局结构。 Operator history information statistics LWLOCK事件 OperatorHistLock 用于避免并发访问或者修改记录算子级历史数据的全局结构。 query history information statistics LWLOCK事件 SessionRealTLock 用于避免并发访问或者修改记录query级实时数据的全局结构。 query history information statistics LWLOCK事件 SessionHistLock 用于避免并发访问或者修改记录query级历史数据的全局结构。 query history information statistics LWLOCK事件 WaitCountHashLock 用于保护用户语句计数功能场景中的共享结构。 barrier LWLOCK事件 BarrierLock 用于保证当前只有一个线程在创建Barrier。 CSN LWLOCK事件 CSNBufMappingLock 保护csn页面 instrumentation LWLOCK事件 UniqueSQLMappingLock 用于保护uniquesql hash table instrumentation LWLOCK事件 InstrUserLock 用于保护InstrUserHTAB。 instrumentation LWLOCK事件 PercentileLock 用于保护全局PercentileBuffer instrumentation LWLOCK事件 InstrWorkloadLock 保护全局instr workload xact info hash table Pgproc LWLOCK事件 Pgproc lwlock 用于保护pgproc Async buffer LWLOCK事件 AsyncCtlLock 保护Async buffer MultiXact LWLOCK事件 MultiXactOffset lwlock 保护MultiXact offet的slru buffer MultiXact LWLOCK事件 MultiXactMemberlwlock 保护MultiXact member的slrubuffer CBM LWLOCK事件 CBMParseXlogLock Cbm 解析xlog时的保护锁 BadBlock LWLOCK事件 BadBlockStatHashLock 用于保护global_bad_block_stat hash表 Page LOCK事件 page 对表页面加锁 Tuple LOCK事件 tuple 对页面上的tuple加锁 object LOCK事件 object 加对象锁 user LOCK事件 userlock 加用户锁 advisor LOCK事件 advisory 加advisory锁 ODBC LWLOCK事件 ExtensionConnectorLibLock 用于初始化ODBC连接场景,在加载与卸载特定动态库时进行加锁。 父主题: Wait Events
  • Time Model Time Model名称及描述如下表所示。 表1 Time Model报表主要内容 名称 描述 DB_TIME 所有线程端到端的墙上时间(WALL TIME)消耗总和(单位:微秒)。 EXECUTION_TIME 消耗在执行器上的时间总和(单位:微秒)。 PL_EXECUTION_TIME 消耗在PL/SQL执行上的时间总和(单位:微秒)。 CPU_TIME 所有线程CPU时间消耗总和(单位:微秒)。 PLAN_TIME 消耗在执行计划生成上的时间总和(单位:微秒)。 REWRITE_TIME 消耗在查询重写上的时间总和(单位:微秒)。 PL_COMPILATION_TIME 消耗在SQL编译上的时间总和(单位:微秒)。 PARSE_TIME 消耗在SQL解析上的时间总和(单位:微秒)。 NET_SEND_TIME 消耗在网络发送上的时间总和(单位:微秒)。 DATA_IO_TIME 消耗在数据读写上的时间总和(单位:微秒)。 父主题: 查看WDR报告
  • Host CPU Host CPU列名称及描述如下表所示。 表1 Host CPU报表主要内容 列名称 描述 Cpus CPU数量。 Cores CPU核数。 Sockets CPU Sockets数量。 Load Average Begin 开始snapshot的Load Average值。 Load Average End 结束snapshot的Load Average值。 %User 用户态在CPU时间上的占比。 %System 内核态在CPU时间上的占比。 %WIO Wait IO在CPU时间上的占比。 %Idle 空闲时间在CPU时间上的占比。 父主题: 查看WDR报告
  • Load Profile Load Profile指标名称及描述如下表所示。 表1 Load Profile报表主要内容 指标名称 描述 DB Time(us) 作业运行的elapse time总和。 CPU Time(us) 作业运行的CPU时间总和。 Redo size(blocks) 产生的WAL的大小(块数)。 Logical read (blocks) 表或者索引文件的逻辑读(块数)。 Physical read (blocks) 表或者索引的物理读(块数)。 Physical write (blocks) 表或者索引的物理写(块数)。 Read IO requests 表或者索引的读次数。 Write IO requests 表或者索引的写次数。 Read IO (MB) 表或者索引的读大小(MB)。 Write IO (MB) 表或者索引的写大小(MB)。 Logons 登录次数。 Executes (SQL) SQL执行次数。 Rollbacks 回滚事务数。 Transactions 事务数。 SQL response time P95(us) 95%的SQL的响应时间。 SQL response time P80(us) 80%的SQL的响应时间。 父主题: 查看WDR报告
  • Memory Statistics Memory Statistics指标名称及描述如下表所示。 表1 Memory Statistics报表主要内容 指标名称 描述 shared_used_memory 已经使用共享内存大小(MB)。 max_shared_memory 最大共享内存(MB)。 process_used_memory 进程已经使用内存(MB)。 max_process_memory 最大进程内存(MB)。 父主题: 查看WDR报告
  • SNAPSHOT.TABLES_SNAP_TIMESTAMP TABLES_SNAP_TIMESTAMP表记录所有存储的WDR snapshot中数据库,表对象,数据采集的开始,结束时间。只有初始化用户或监控管理员用户有权限查看,WDR Snapshot在启动后(打开参数enable_wdr_snapshot),会触发创建该表。 表1 TABLES_SNAP_TIMESTAMP表属性 名称 类型 描述 示例 snapshot_id bigint WDR快照序号。 1 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原信息
  • Top 10 Events by Total Wait Time Top 10 Events by Total Wait Time列名称及描述如下表所示。 表1 Top 10 Events by Total Wait Time报表主要内容 列名称 描述 Event Wait Event名称。 Waits wait次数。 Total Wait Time(us) 总wait时间(微秒)。 Avg Wait Time(us) 平均wait时间(微秒)。 Tpye Wait Event类别。 父主题: 查看WDR报告
  • Wait Classes by Total Wait Time Wait Classes by Total Wait Time列名称及描述如下表所示。 表1 Wait Classes by Total Wait Time报表主要内容 列名称 描述 Tpye Wait Event类别名称: STATUS。 LWLOCK_EVENT。 LOCK_EVENT。 IO_EVENT。 Waits Wait次数。 Total Wait Time(us) 总Wait时间(微秒)。 Avg Wait Time(us) 平均Wait时间(微秒)。 父主题: 查看WDR报告
  • 操作步骤 执行如下命令新建报告文件。 touch /home/om/wdrTestNode.html 执行以下命令连接postgres数据库。 gsql -d postgres -p 端口号 -r 执行如下命令查询已经生成的快照,以获取快照的snapshot_id。 select * from snapshot.snapshot; (可选)在CCN上执行如下命令手动创建快照。数据库中只有一个快照或者需要查看在当前时间段数据库的监控数据,可以选择手动执行快照操作,该命令需要用户具有sysadmin权限。 select create_wdr_snapshot(); 执行“cm_ctl query -Cdvi”,回显中“Central Coordinator State”下显示的信息即为CCN信息。 执行如下步骤生成性能报告。 执行如下命令生成格式化性能报告文件。 \a \t \o /home/om/wdrTestNode.html 上述命令涉及参数说明如下: \a:切换非对齐模式。 \t:切换输出的字段名的信息和行计数脚注。 \o:把所有的查询结果发送至服务器文件里。 服务器文件路径:生成性能报告文件存放路径。用户需要拥有此路径的读写权限。 执行如下命令将查询到的信息写入性能报告中。 select generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring); 命令中涉及的参数说明如下。 表1 generate_wdr_report函数参数说明 参数 说明 取值范围 begin_snap_id 查询时间段开始的snapshot的id(表snapshot.snaoshot中的snapshot_id)。 - end_snap_id 查询时间段结束snapshot的id。默认end_snap_id大于begin_snap_id(表snapshot.snaoshot中的snapshot_id)。 - report_type 指定生成report的类型。例如,summary/detail/all。 summary:汇总数据。 detail:明细数据。 all:包含summary和detail。 report_scope 指定生成report的范围,可以为cluster或者node。 cluster:数据库级别的信息。 node:节点级别的信息。 node_name 在report_scope指定为node时,需要把该参数指定为对应节点的名称。(节点名称可以执行select * from pg_node_env;查询)。 在report_scope为cluster时,该值可以省略或者指定为空或NULL。 node:GaussDB中的节点名称。 cluster:省略/空/NULL。 用于生成报告的两个快照应满足以下条件: 两次快照之间不能有节点重启。 两次快照之间不能有主备倒换。 两次快照之间不能对性能指标进行reset操作。 两次快照之间不能有drop database操作。 生成的WDR中如果存在负数时,说明该指标不能反映数据库的表现。 生成报告的时间与性能快照中的性能数据量有关系,一般在分钟级可以完成。如果超过5分钟没有完成,请尝试收集snapshot schema下的表(首先考虑snap_global_statio_all_tables,snap_global_statio_all_indexes)的统计信息ANALYZE | ANALYSE,然后再次运行报告生成。或者设置会话级语句超时时间set statement_timeout=*,主动终止报告生成。 生成报告时,尽量设置客户端的字符集与openGauss数据库的字符集保持一致(可以通过set client_encoding to *去设置客户端字符集)。 执行如下命令关闭输出选项及格式化输出命令。 \o \a \t 在/home/om/下根据需要查看WDR报告。
  • 示例 --创建报告文件touch /home/om/wdrTestNode.html--连接数据库gsql -d postgres -p 端口号 -r--查询已经生成的快照。openGauss=# select * from snapshot.snapshot; snapshot_id | start_ts | end_ts -------------+-------------------------------+------------------------------- 1 | 2020-09-07 10:20:36.763244+08 | 2020-09-07 10:20:42.166511+08 2 | 2020-09-07 10:21:13.416352+08 | 2020-09-07 10:21:19.470911+08(2 rows)--生成格式化性能报告wdrTestNode.html。openGauss=# \a \t \o /home/om/wdrTestNode.htmlOutput format is unaligned.Showing only tuples.--向性能报告wdrTestNode.html中写入数据。openGauss=# select generate_wdr_report(1, 2, 'all', 'node', 'dn_6001_6002_6003');--关闭性能报告wdrTestNode.html。openGauss=# \o--生成格式化性能报告wdrTestCluster.html。openGauss=# \o /home/om/wdrTestCluster.html--向格式化性能报告wdrTestCluster.html中写入数据。openGauss=# select generate_wdr_report(1, 2, 'all', 'cluster');--关闭性能报告wdrTestCluster.html。openGauss=# \o \a \tOutput format is aligned.Tuples only is off.
  • 查看WDR报告 WDR报表主要内容如下表所示。 表1 WDR报表主要内容 项目 描述 Database Stat 数据库维度性能统计信息:事务,读写,行活动,写冲突,死锁等。 集群范围报表,仅cluster模式下可查看此报表。 Load Profile 集群维度的性能统计信息:CPU时间,DB时间,逻辑读/物理读,IO性能,登入登出,负载强度,负载性能表现等。 集群范围报表,仅cluster模式下可查看此报表。 Instance Efficiency Percentages 集群级或者节点缓冲命中率。 集群、节点范围报表,cluster模式和node模式下均可查看此报表。 Top 10 Events by Total Wait Time 最消耗时间的事件。 节点范围报表,仅node模式下可查看此报表。 Wait Classes by Total Wait Time 最消耗时间的等待时间分类。 节点范围报表,仅node模式下可查看此报表。 Host CPU 主机CPU消耗。 节点范围报表,仅node模式下可查看此报表。 IO Profile 集群或者节点维度的IO的使用情况。 集群、节点范围报表,cluster模式和node模式下均可查看此报表。 Memory Statistics 内核内存使用分布。 节点范围报表,仅node模式下可查看此报表。 Time Model 节点范围的语句的时间分布信息。 节点范围报表,仅node模式下可查看此报表。 SQL Statistics SQL语句各个维度性能统计:端到端时间,行活动,缓存命中,CPU消耗,时间消耗细分。 集群、节点范围报表,cluster模式和node模式下均可查看此报表。 Wait Events 节点级别的等待事件的统计信息。 节点范围报表,仅node模式下可查看此报表。 Cache IO Stats 用户的表、索引的IO的统计信息。 集群、节点范围报表,cluster模式和node模式下均可查看此报表。 Utility status 复制槽和后台checkpoint的状态信息。 节点范围报表,仅node模式下可查看此报表。 Object stats 表、索引维度的性能统计信息。 集群、节点范围报表,cluster模式和node模式下均可查看此报表。 Configuration settings 节点配置。 节点范围报表,仅node模式下可查看此报表。 SQL Detail SQL语句文本详情。 集群、节点范围报表,cluster模式和node模式下均可查看此报表。 Database Stat Load Profile Instance Efficiency Percentages Top 10 Events by Total Wait Time Wait Classes by Total Wait Time Host CPU IO Profile Memory Statistics Time Model SQL Statistics Wait Events Cache IO Stats Utility status Object stats Configuration settings SQL Detail 父主题: WDR Snapshot Schema
  • LOCAL_PLANCACHE_STATUS LOCAL_PLANCACHE_STATUS视图显示当前节点的GPC(当前特性是实验室特性,使用时请联系华为工程师提供技术支持)全局计划缓存状态信息。 表1 LOCAL_PLANCACHE_STATUS字段 名称 类型 描述 nodename text 所属节点名称。 query text 查询语句text。 refcount integer 被引用次数。 valid bool 是否合法。 databaseid oid 所属数据库id。 schema_name text 所属schema。 params_num integer 参数数量。 func_id oid 该plancache所在存储过程oid,如果不属于存储过程则为0。 父主题: Global Plancache
  • GLOBAL_WLM_WORKLOAD_RUNTIME 显示当前用户在每个CN上执行作业时在CN上的状态信息。需要有监控管理员权限才可以访问。 表1 GLOBAL_WAL_WORKLOAD_RUNTIME字段 名称 类型 描述 node_name text 作业执行所在的CN的名称。 thread_id bigint 后端线程ID。 processid integer 线程的lwpid。 time_stamp bigint 语句执行的开始时间。 username name 登录到该后端的用户名。 memory integer 语句所需的内存大小。 active_points integer 语句在资源池上消耗的资源点数。 max_points integer 资源在资源池上的最大资源数。 priority integer 作业的优先级。 resource_pool text 作业所在资源池。 status text 作业执行的状态,包括: pending: 阻塞状态。 running:执行状态。 finished:结束状态。 aborted:终止状态。 unkown:未知状态。 control_group name 作业所使用的Cgroups。 enqueue text 作业的排队信息,包括: GLOBAL:全局排队。 RESPOOL:资源池排队。 ACTIVE:不排队。 query text 正在执行的语句。 node_group text 逻辑集群(当前特性是实验室特性,使用时请联系华为工程师提供技术支持)名称。 父主题: Workload Manager
  • SNAPSHOT.SNAPSHOT SNAPSHOT表记录当前系统中存储的WDR快照数据的索引信息,开始,结束时间。只有初始化用户或监控管理员用户有权限查看。只可在系统库中查询到结果,用户库中无法查询,WDR Snapshot在启动后(打开参数enable_wdr_snapshot),会触发创建该表。 表1 SNAPSHOT表属性 名称 类型 描述 示例 snapshot_id bigint WDR快照序号。 1 start_ts timestamp WDR快照的开始时间。 2019-12-28 17:11:27.423742+08 end_ts timestamp WDR快照的结束时间。 2019-12-28 17:11:43.67726+08 父主题: WDR Snapshot原信息
  • global_streaming_hadr_rto_and_rpo_stat global_streaming_hadr_rto_and_rpo_stat视图显示流式容灾的主集群和备集群日志流控信息(只可在主集群的CN使用,DN以及备集群上均不可获取到统计信息)。 表1 global_streaming_hadr_rto_and_rpo_stat参数说明 参数 类型 描述 hadr_sender_node_name text 节点的名称,包含主集群和备集群首备。 hadr_receiver_node_name text 备集群首备名称。 current_rto int 流控的信息,当前主备集群的日志rto时间(单位:秒)。 target_rto int 流控的信息,目标主备集群间的rto时间(单位:秒)。 current_rpo int 流控的信息,当前主备集群的日志rpo时间(单位:秒)。 target_rpo int 流控的信息,目标主备集群间的rpo时间(单位:秒)。 rto_sleep_time int RTO流控信息,为了达到目标RTO,预期主机walsender所需要的睡眠时间(单位:微秒)。 rpo_sleep_time int RPO流控信息,为了达到目标RPO,预期主机xlogInsert所需要的睡眠时间(单位:微妙)。 父主题: RTO & RPO
  • LOCAL_PREPARE_STATEMENT_STATUS(废弃) LOCAL_PREPARE_STATEMENT_STATUS视图显示当前节点的GPC(当前特性是实验室特性,使用时请联系华为工程师提供技术支持)全局计划缓存状态对应的prepare statement信息。 表1 LOCAL_PREPARE_STATEMENT_STATUS字段 名称 类型 描述 nodename text 所属节点名称。 cn_sess_id bigint 其来自的cn的sessionid。 cn_node_id integer 其来自的cn的node_id。 cn_time_line integer 其来自的cn的重启次数。 statement_name text 其statement name。 refcount integer 其对应的plancache的被引用次数。 is_shared bool 其对应plancache是否共享。 query text 对应的query语句。 父主题: Global Plancache
  • global_rto_status global_rto_status视图显示关于主机和备机的日志流控信息(本节点除外、DN上不可使用)。 表1 global_rto_status字段 参数 类型 描述 node_name text 节点的名称,包含主机和备机。 rto_info text 流控的信息,包含了备机当前的日志流控时间(单位:秒),备机通过GUC参数设置的预期流控时间(单位:秒),为了达到这个预期主机所需要的睡眠时间(单位:微秒)。 父主题: RTO & RPO
共100000条