v5.0
- 关于MogDB
 - 快速入门
 - 特性描述
- 概览
 - 高性能
 - 高可用
 - 维护性
 - 兼容性
- 视图增加%rowtype属性
 - 聚合函数distinct性能优化
 - 聚合函数支持KEEP子句
 - 聚合函数支持场景扩展
 - 兼容支持MySQL别名支持单引号
 - 支持current_date/current_time关键字作为字段名
 - 自定义type数组
 - For Update支持外连接
 - MogDB支持Insert All特性
 - Oracle DBLink语法兼容
 - 创建PACKAGE/FUNCTION/PROCEDURE时去除TYPE类型转换提示
 - 支持MERGE INTO命中索引时使用Bypass方法
 - 支持增加存储过程及函数参数的nocopy属性
 - 支持在数组extend的参数中传入数组的count属性
 - 支持q quote转义字符
 - 支持两个date类型的数据相减返回numeric类型
 - 支持表函数table()
 - 支持PROCEDURE/FUNCTION/PACKAGE的end后的name和Oracle保持一致
 - 支持WHERE CURRENT OF写法
 - 支持包内常量作为函数或者过程入参的默认值
 - 支持PLPGSQL subtype
 - 支持无参数FUNCTION的同义词调用不加括号
 - 支持dbms_utility.format_error_backtrace
 - 支持PIVOT和UNPIVOT语法
 - mod函数兼容
 - 支持聚集函数嵌套
 - ORDER BY/GROUP BY场景兼容
 - 支持在建表后修改表日志属性
 - INSERT支持ON CONFLICT子句
 - 支持AUTHID CURRENT_USER
 - PBE模式支持存储过程out出参
 
 - 数据库安全
 - 企业级特性
 - 应用开发接口
 - AI能力
 - 中间件
 - 负载管理
 
 - 安装指南
 - 升级指南
 - 管理指南
 - 高可用指南
 - AI特性指南
 - 安全指南
 - 开发者指南
- 应用程序开发教程
- 开发规范
 - 基于JDBC开发
- JDBC包、驱动类和环境类
 - 开发流程
 - 加载驱动
 - 连接数据库
 - 连接数据库(以SSL方式)
 - 连接数据库(UDS方式)
 - 执行SQL语句
 - 处理结果集
 - 关闭连接
 - 日志管理
 - 示例:常用操作
 - 示例:重新执行应用SQL
 - 示例:通过本地文件导入导出数据
 - 示例:从MY向MogDB进行数据迁移
 - 示例:逻辑复制代码示例
 - 示例:不同场景下连接数据库参数配置
 - 示例:jdbc主备集群负载均衡
 - JDBC接口参考
- java.sql.Connection
 - java.sql.CallableStatement
 - java.sql.DatabaseMetaData
 - java.sql.Driver
 - java.sql.PreparedStatement
 - java.sql.ResultSet
 - java.sql.ResultSetMetaData
 - java.sql.Statement
 - javax.sql.ConnectionPoolDataSource
 - javax.sql.DataSource
 - javax.sql.PooledConnection
 - javax.naming.Context
 - javax.naming.spi.InitialContextFactory
 - CopyManager
 
 - JDBC常用参数参考
 - JDBC发布记录
 
 - 基于ODBC开发
 - 基于libpq开发
 - 基于Psycopg2开发
 - 基于.NET开发
 - 基于MogOCI开发
 - 调试
 
 - 存储过程
 - 用户自定义函数
 - PL/pgSQL-SQL过程语言
 - 定时任务
 - 自治事务
 - 逻辑复制
 - Extension
 - MySQL兼容性说明
- Dolphin Extension
- Dolphin概述
 - Dolphin安装
 - Dolphin限制
 - Dolphin语法介绍
- SQL参考
- 关键字
 - 数据类型
 - 函数和操作符
 - 表达式
 - DDL语法一览表
 - DML语法一览表
 - DCL语法一览表
 - SQL语法
- ALTER DATABASE
 - ALTER FUNCTION
 - ALTER PROCEDURE
 - ALTER SERVER
 - ALTER TABLE
 - ALTER TABLE PARTITION
 - ALTER TABLESPACE
 - ALTER VIEW
 - ANALYZE | ANALYSE
 - AST
 - CHECKSUM TABLE
 - CREATE DATABASE
 - CREATE FUNCTION
 - CREATE INDEX
 - CREATE PROCEDURE
 - CREATE SERVER
 - CREATE TABLE
 - CREATE TABLE AS
 - CREATE TABLE PARTITION
 - CREATE TABLESPACE
 - CREATE TRIGGER
 - CREATE VIEW
 - DESCRIBE TABLE
 - DO
 - DROP DATABASE
 - DROP INDEX
 - DROP TABLESPACE
 - EXECUTE
 - EXPLAIN
 - FLUSH BINARY LOGS
 - GRANT
 - GRANT/REVOKE PROXY
 - INSERT
 - KILL
 - LOAD DATA
 - OPTIMIZE TABLE
 - PREPARE
 - RENAME TABLE
 - RENAME USER
 - REVOKE
 - SELECT
 - SELECT HINT
 - SET CHARSET
 - SET PASSWORD
 - SHOW CHARACTER SET
 - SHOW COLLATION
 - SHOW COLUMNS
 - SHOW CREATE DATABASE
 - SHOW CREATE FUNCTION
 - SHOW CREATE PROCEDURE
 - SHOW CREATE TABLE
 - SHOW CREATE TRIGGER
 - SHOW CREATE VIEW
 - SHOW DATABASES
 - SHOW FUNCTION STATUS
 - SHOW GRANTS
 - SHOW INDEX
 - SHOW MASTER STATUS
 - SHOW PLUGINS
 - SHOW PRIVILEGES
 - SHOW PROCEDURE STATUS
 - SHOW PROCESSLIST
 - SHOW SLAVE HOSTS
 - SHOW STATUS
 - SHOW TABLES
 - SHOW TABLE STATUS
 - SHOW TRIGGERS
 - SHOW VARIABLES
 - SHOW WARNINGS/ERRORS
 - UPDATE
 - USE db_name
 
 
 - 系统视图
 - GUC参数说明
 - 重设参数
 - 存储过程
 - 标识符说明
 
 - SQL参考
 
 - MySQL语法兼容性评估工具
 
 - Dolphin Extension
 - 物化视图
 - 分区管理
 
 - 应用程序开发教程
 - 性能优化指南
 - 参考指南
- 系统表及系统视图
- 系统表和系统视图概述
 - 查看系统表
 - 系统表
- GS_ASP
 - GS_AUDITING_POLICY
 - GS_AUDITING_POLICY_ACCESS
 - GS_AUDITING_POLICY_FILTERS
 - GS_AUDITING_POLICY_PRIVILEGES
 - GS_CLIENT_GLOBAL_KEYS
 - GS_CLIENT_GLOBAL_KEYS_ARGS
 - GS_COLUMN_KEYS
 - GS_COLUMN_KEYS_ARGS
 - GS_DB_PRIVILEGE
 - GS_ENCRYPTED_COLUMNS
 - GS_ENCRYPTED_PROC
 - GS_GLOBAL_CHAIN
 - GS_GLOBAL_CONFIG
 - GS_MASKING_POLICY
 - GS_MASKING_POLICY_ACTIONS
 - GS_MASKING_POLICY_FILTERS
 - GS_MATVIEW
 - GS_MATVIEW_DEPENDENCY
 - GS_MODEL_WAREHOUSE
 - GS_OPT_MODEL
 - GS_PACKAGE
 - GS_POLICY_LABEL
 - GS_RECYCLEBIN
 - GS_TXN_SNAPSHOT
 - GS_UID
 - GS_WLM_EC_OPERATOR_INFO
 - GS_WLM_INSTANCE_HISTORY
 - GS_WLM_OPERATOR_INFO
 - GS_WLM_PLAN_ENCODING_TABLE
 - GS_WLM_PLAN_OPERATOR_INFO
 - GS_WLM_SESSION_QUERY_INFO_ALL
 - GS_WLM_USER_RESOURCE_HISTORY
 - PG_AGGREGATE
 - PG_AM
 - PG_AMOP
 - PG_AMPROC
 - PG_APP_WORKLOADGROUP_MAPPING
 - PG_ATTRDEF
 - PG_ATTRIBUTE
 - PG_AUTH_HISTORY
 - PG_AUTH_MEMBERS
 - PG_AUTHID
 - PG_CAST
 - PG_CLASS
 - PG_COLLATION
 - PG_CONSTRAINT
 - PG_CONVERSION
 - PG_DATABASE
 - PG_DB_ROLE_SETTING
 - PG_DEFAULT_ACL
 - PG_DEPEND
 - PG_DESCRIPTION
 - PG_DIRECTORY
 - PG_ENUM
 - PG_EVENT_TRIGGER
 - PG_EXTENSION
 - PG_EXTENSION_DATA_SOURCE
 - PG_FOREIGN_DATA_WRAPPER
 - PG_FOREIGN_SERVER
 - PG_FOREIGN_TABLE
 - PG_HASHBUCKET
 - PG_INDEX
 - PG_INHERITS
 - PG_JOB
 - PG_JOB_PROC
 - PG_LANGUAGE
 - PG_LARGEOBJECT
 - PG_LARGEOBJECT_METADATA
 - PG_NAMESPACE
 - PG_OBJECT
 - PG_OPCLASS
 - PG_OPERATOR
 - PG_OPFAMILY
 - PG_PARTITION
 - PG_PLTEMPLATE
 - PG_PROC
 - PG_PUBLICATION
 - PG_PUBLICATION_REL
 - PG_RANGE
 - PG_REPLICATION_ORIGIN
 - PG_RESOURCE_POOL
 - PG_REWRITE
 - PG_RLSPOLICY
 - PG_SECLABEL
 - PG_SET
 - PG_SHDEPEND
 - PG_SHDESCRIPTION
 - PG_SHSECLABEL
 - PG_STATISTIC
 - PG_STATISTIC_EXT
 - PG_SUBSCRIPTION
 - PG_SUBSCRIPTION_REL
 - PG_SYNONYM
 - PG_TABLESPACE
 - PG_TRIGGER
 - PG_TS_CONFIG
 - PG_TS_CONFIG_MAP
 - PG_TS_DICT
 - PG_TS_PARSER
 - PG_TS_TEMPLATE
 - PG_TYPE
 - PG_USER_MAPPING
 - PG_USER_STATUS
 - PG_WORKLOAD_GROUP
 - PGXC_CLASS
 - PGXC_GROUP
 - PGXC_NODE
 - PGXC_SLICE
 - PLAN_TABLE_DATA
 - STATEMENT_HISTORY
 
 - 系统视图
- GET_GLOBAL_PREPARED_XACTS(废弃)
 - GS_ASYNC_SUBMIT_SESSIONS_STATUS
 - GS_AUDITING
 - GS_AUDITING_ACCESS
 - GS_AUDITING_PRIVILEGE
 - GS_CLUSTER_RESOURCE_INFO
 - GS_COMPRESSION
 - GS_DB_PRIVILEGES
 - GS_FILE_STAT
 - GS_GSC_MEMORY_DETAIL
 - GS_INSTANCE_TIME
 - GS_LABELS
 - GS_LSC_MEMORY_DETAIL
 - GS_MASKING
 - GS_MATVIEWS
 - GS_OS_RUN_INFO
 - GS_REDO_STAT
 - GS_SESSION_CPU_STATISTICS
 - GS_SESSION_MEMORY
 - GS_SESSION_MEMORY_CONTEXT
 - GS_SESSION_MEMORY_DETAIL
 - GS_SESSION_MEMORY_STATISTICS
 - GS_SESSION_STAT
 - GS_SESSION_TIME
 - GS_SHARED_MEMORY_DETAIL
 - GS_SQL_COUNT
 - GS_STAT_SESSION_CU
 - GS_THREAD_MEMORY_CONTEXT
 - GS_TOTAL_MEMORY_DETAIL
 - GS_WLM_CGROUP_INFO
 - GS_WLM_EC_OPERATOR_STATISTICS
 - GS_WLM_OPERATOR_HISTORY
 - GS_WLM_OPERATOR_STATISTICS
 - GS_WLM_PLAN_OPERATOR_HISTORY
 - GS_WLM_REBUILD_USER_RESOURCE_POOL
 - GS_WLM_RESOURCE_POOL
 - GS_WLM_SESSION_HISTORY
 - GS_WLM_SESSION_INFO
 - GS_WLM_SESSION_INFO_ALL
 - GS_WLM_SESSION_STATISTICS
 - GS_WLM_USER_INFO
 - IOS_STATUS
 - MPP_TABLES
 - PG_AVAILABLE_EXTENSION_VERSIONS
 - PG_AVAILABLE_EXTENSIONS
 - PG_COMM_DELAY
 - PG_COMM_RECV_STREAM
 - PG_COMM_SEND_STREAM
 - PG_COMM_STATUS
 - PG_CONTROL_GROUP_CONFIG
 - PG_CURSORS
 - PG_EXT_STATS
 - PG_GET_INVALID_BACKENDS
 - PG_GET_SENDERS_CATCHUP_TIME
 - PG_GROUP
 - PG_GTT_ATTACHED_PIDS
 - PG_GTT_RELSTATS
 - PG_GTT_STATS
 - PG_INDEXES
 - PG_LOCKS
 - PG_NODE_ENV
 - PG_OS_THREADS
 - PG_PREPARED_STATEMENTS
 - PG_PREPARED_XACTS
 - PG_PUBLICATION_TABLES
 - PG_REPLICATION_ORIGIN_STATUS
 - PG_REPLICATION_SLOTS
 - PG_RLSPOLICIES
 - PG_ROLES
 - PG_RULES
 - PG_RUNNING_XACTS
 - PG_SECLABELS
 - PG_SESSION_IOSTAT
 - PG_SESSION_WLMSTAT
 - PG_SETTINGS
 - PG_SHADOW
 - PG_STAT_ACTIVITY
 - PG_STAT_ACTIVITY_NG
 - PG_STAT_ALL_INDEXES
 - PG_STAT_ALL_TABLES
 - PG_STAT_BAD_BLOCK
 - PG_STAT_BGWRITER
 - PG_STAT_DATABASE
 - PG_STAT_DATABASE_CONFLICTS
 - PG_STAT_REPLICATION
 - PG_STAT_SUBSCRIPTION
 - PG_STAT_SYS_INDEXES
 - PG_STAT_SYS_TABLES
 - PG_STAT_USER_FUNCTIONS
 - PG_STAT_USER_INDEXES
 - PG_STAT_USER_TABLES
 - PG_STAT_XACT_ALL_TABLES
 - PG_STAT_XACT_SYS_TABLES
 - PG_STAT_XACT_USER_FUNCTIONS
 - PG_STAT_XACT_USER_TABLES
 - PG_STATIO_ALL_INDEXES
 - PG_STATIO_ALL_SEQUENCES
 - PG_STATIO_ALL_TABLES
 - PG_STATIO_SYS_INDEXES
 - PG_STATIO_SYS_SEQUENCES
 - PG_STATIO_SYS_TABLES
 - PG_STATIO_USER_INDEXES
 - PG_STATIO_USER_SEQUENCES
 - PG_STATIO_USER_TABLES
 - PG_STATS
 - PG_TABLES
 - PG_TDE_INFO
 - PG_THREAD_WAIT_STATUS
 - PG_TIMEZONE_ABBREVS
 - PG_TIMEZONE_NAMES
 - PG_TOTAL_MEMORY_DETAIL
 - PG_TOTAL_USER_RESOURCE_INFO
 - PG_TOTAL_USER_RESOURCE_INFO_OID
 - PG_USER
 - PG_USER_MAPPINGS
 - PG_VARIABLE_INFO
 - PG_VIEWS
 - PG_WLM_STATISTICS
 - PGXC_PREPARED_XACTS
 - PLAN_TABLE
 - PATCH_INFORMATION_TABLE
 
 
 - 系统函数
- 逻辑操作符
 - 比较操作符
 - 字符处理函数和操作符
 - 二进制字符串函数和操作符
 - 位串函数和操作符
 - 模式匹配操作符
 - 数字操作函数和操作符
 - 时间和日期处理函数和操作符
 - 类型转换函数
 - 几何函数和操作符
 - 网络地址函数和操作符
 - 文本检索函数和操作符
 - JSON/JSONB函数和操作符
 - HLL函数和操作符
 - SEQUENCE函数
 - 数组函数和操作符
 - 范围函数和操作符
 - 聚集函数
 - 窗口函数(分析函数)
 - 安全函数
 - 账本数据库的函数
 - 密态等值的函数
 - 返回集合的函数
 - 条件表达式函数
 - 系统信息函数
 - 系统管理函数
 - 统计信息函数
 - 触发器函数
 - 事件触发器函数
 - HashFunc函数
 - 提示信息函数
 - 全局临时表函数
 - 故障注入系统函数
 - AI特性函数
 - 动态数据脱敏函数
 - 其他系统函数
 - 内部函数
 - Global SysCache特性函数
 - 数据损坏检测修复函数
 - XML类型函数
 - 废弃函数
 
 - 支持的数据类型
 - SQL语法
- ABORT
 - ALTER AGGREGATE
 - ALTER AUDIT POLICY
 - ALTER DATABASE
 - ALTER DATA SOURCE
 - ALTER DEFAULT PRIVILEGES
 - ALTER DIRECTORY
 - ALTER EVENT
 - ALTER EVENT TRIGGER
 - ALTER EXTENSION
 - ALTER FOREIGN DATA WRAPPER
 - ALTER FOREIGN TABLE
 - ALTER FUNCTION
 - ALTER GLOBAL CONFIGURATION
 - ALTER GROUP
 - ALTER INDEX
 - ALTER LANGUAGE
 - ALTER LARGE OBJECT
 - ALTER MASKING POLICY
 - ALTER MATERIALIZED VIEW
 - ALTER OPERATOR
 - ALTER PACKAGE
 - ALTER PROCEDURE
 - ALTER PUBLICATION
 - ALTER RESOURCE LABEL
 - ALTER RESOURCE POOL
 - ALTER ROLE
 - ALTER ROW LEVEL SECURITY POLICY
 - ALTER RULE
 - ALTER SCHEMA
 - ALTER SEQUENCE
 - ALTER SERVER
 - ALTER SESSION
 - ALTER SUBSCRIPTION
 - ALTER SYNONYM
 - ALTER SYSTEM KILL SESSION
 - ALTER SYSTEM SET
 - ALTER TABLE
 - ALTER TABLE PARTITION
 - ALTER TABLE SUBPARTITION
 - ALTER TABLESPACE
 - ALTER TEXT SEARCH CONFIGURATION
 - ALTER TEXT SEARCH DICTIONARY
 - ALTER TRIGGER
 - ALTER TYPE
 - ALTER USER
 - ALTER USER MAPPING
 - ALTER VIEW
 - ANALYZE | ANALYSE
 - BEGIN
 - CALL
 - CHECKPOINT
 - CLEAN CONNECTION
 - CLOSE
 - CLUSTER
 - COMMENT
 - COMMIT | END
 - COMMIT PREPARED
 - CONNECT BY
 - COPY
 - CREATE AGGREGATE
 - CREATE AUDIT POLICY
 - CREATE CAST
 - CREATE CLIENT MASTER KEY
 - CREATE COLUMN ENCRYPTION KEY
 - CREATE DATABASE
 - CREATE DATA SOURCE
 - CREATE DIRECTORY
 - CREATE EVENT
 - CREATE EVENT TRIGGER
 - CREATE EXTENSION
 - CREATE FOREIGN DATA WRAPPER
 - CREATE FOREIGN TABLE
 - CREATE FUNCTION
 - CREATE GROUP
 - CREATE INCREMENTAL MATERIALIZED VIEW
 - CREATE INDEX
 - CREATE LANGUAGE
 - CREATE MASKING POLICY
 - CREATE MATERIALIZED VIEW
 - CREATE MODEL
 - CREATE OPERATOR
 - CREATE PACKAGE
 - CREATE PROCEDURE
 - CREATE PUBLICATION
 - CREATE RESOURCE LABEL
 - CREATE RESOURCE POOL
 - CREATE ROLE
 - CREATE ROW LEVEL SECURITY POLICY
 - CREATE RULE
 - CREATE SCHEMA
 - CREATE SEQUENCE
 - CREATE SERVER
 - CREATE SUBSCRIPTION
 - CREATE SYNONYM
 - CREATE TABLE
 - CREATE TABLE AS
 - CREATE TABLE PARTITION
 - CREATE TABLESPACE
 - CREATE TABLE SUBPARTITION
 - CREATE TEXT SEARCH CONFIGURATION
 - CREATE TEXT SEARCH DICTIONARY
 - CREATE TRIGGER
 - CREATE TYPE
 - CREATE USER
 - CREATE USER MAPPING
 - CREATE VIEW
 - CREATE WEAK PASSWORD DICTIONARY
 - CURSOR
 - DEALLOCATE
 - DECLARE
 - DELETE
 - DELIMITER
 - DO
 - DROP AGGREGATE
 - DROP AUDIT POLICY
 - DROP CAST
 - DROP CLIENT MASTER KEY
 - DROP COLUMN ENCRYPTION KEY
 - DROP DATABASE
 - DROP DATA SOURCE
 - DROP DIRECTORY
 - DROP EVENT
 - DROP EVENT TRIGGER
 - DROP EXTENSION
 - DROP FOREIGN DATA WRAPPER
 - DROP FOREIGN TABLE
 - DROP FUNCTION
 - DROP GLOBAL CONFIGURATION
 - DROP GROUP
 - DROP INDEX
 - DROP LANGUAGE
 - DROP MASKING POLICY
 - DROP MATERIALIZED VIEW
 - DROP MODEL
 - DROP OPERATOR
 - DROP OWNED
 - DROP PACKAGE
 - DROP PROCEDURE
 - DROP PUBLICATION
 - DROP RESOURCE LABEL
 - DROP RESOURCE POOL
 - DROP ROLE
 - DROP ROW LEVEL SECURITY POLICY
 - DROP RULE
 - DROP SCHEMA
 - DROP SEQUENCE
 - DROP SERVER
 - DROP SUBSCRIPTION
 - DROP SYNONYM
 - DROP TABLE
 - DROP TABLESPACE
 - DROP TEXT SEARCH CONFIGURATION
 - DROP TEXT SEARCH DICTIONARY
 - DROP TRIGGER
 - DROP TYPE
 - DROP USER
 - DROP USER MAPPING
 - DROP VIEW
 - DROP WEAK PASSWORD DICTIONARY
 - EXECUTE
 - EXECUTE DIRECT
 - EXPLAIN
 - EXPLAIN PLAN
 - FETCH
 - GRANT
 - INSERT
 - LOCK
 - MERGE INTO
 - MOVE
 - PREDICT BY
 - PREPARE
 - PREPARE TRANSACTION
 - PURGE
 - REASSIGN OWNED
 - REFRESH INCREMENTAL MATERIALIZED VIEW
 - REFRESH MATERIALIZED VIEW
 - REINDEX
 - RELEASE SAVEPOINT
 - RESET
 - REVOKE
 - ROLLBACK
 - ROLLBACK PREPARED
 - ROLLBACK TO SAVEPOINT
 - SAVEPOINT
 - SELECT
 - SELECT INTO
 - SET
 - SET CONSTRAINTS
 - SET ROLE
 - SET SESSION AUTHORIZATION
 - SET TRANSACTION
 - SHOW
 - SHOW EVENTS
 - SHRINK
 - SHUTDOWN
 - SNAPSHOT
 - START TRANSACTION
 - TIMECAPSULE TABLE
 - TRUNCATE
 - UPDATE
 - VACUUM
 - VALUES
 
 - SQL参考
 - GUC参数说明
 - Schema
- Information Schema
 - DBE_PERF
- OS
 - Instance
 - Memory
 - File
 - Object
- STAT_USER_TABLES
 - SUMMARY_STAT_USER_TABLES
 - GLOBAL_STAT_USER_TABLES
 - STAT_USER_INDEXES
 - SUMMARY_STAT_USER_INDEXES
 - GLOBAL_STAT_USER_INDEXES
 - STAT_SYS_TABLES
 - SUMMARY_STAT_SYS_TABLES
 - GLOBAL_STAT_SYS_TABLES
 - STAT_SYS_INDEXES
 - SUMMARY_STAT_SYS_INDEXES
 - GLOBAL_STAT_SYS_INDEXES
 - STAT_ALL_TABLES
 - SUMMARY_STAT_ALL_TABLES
 - GLOBAL_STAT_ALL_TABLES
 - STAT_ALL_INDEXES
 - SUMMARY_STAT_ALL_INDEXES
 - GLOBAL_STAT_ALL_INDEXES
 - STAT_DATABASE
 - SUMMARY_STAT_DATABASE
 - GLOBAL_STAT_DATABASE
 - STAT_DATABASE_CONFLICTS
 - SUMMARY_STAT_DATABASE_CONFLICTS
 - GLOBAL_STAT_DATABASE_CONFLICTS
 - STAT_XACT_ALL_TABLES
 - SUMMARY_STAT_XACT_ALL_TABLES
 - GLOBAL_STAT_XACT_ALL_TABLES
 - STAT_XACT_SYS_TABLES
 - SUMMARY_STAT_XACT_SYS_TABLES
 - GLOBAL_STAT_XACT_SYS_TABLES
 - STAT_XACT_USER_TABLES
 - SUMMARY_STAT_XACT_USER_TABLES
 - GLOBAL_STAT_XACT_USER_TABLES
 - STAT_XACT_USER_FUNCTIONS
 - SUMMARY_STAT_XACT_USER_FUNCTIONS
 - GLOBAL_STAT_XACT_USER_FUNCTIONS
 - STAT_BAD_BLOCK
 - SUMMARY_STAT_BAD_BLOCK
 - GLOBAL_STAT_BAD_BLOCK
 - STAT_USER_FUNCTIONS
 - SUMMARY_STAT_USER_FUNCTIONS
 - GLOBAL_STAT_USER_FUNCTIONS
 
 - Workload
 - Session/Thread
- SESSION_STAT
 - GLOBAL_SESSION_STAT
 - SESSION_TIME
 - GLOBAL_SESSION_TIME
 - SESSION_MEMORY
 - GLOBAL_SESSION_MEMORY
 - SESSION_MEMORY_DETAIL
 - GLOBAL_SESSION_MEMORY_DETAIL
 - SESSION_STAT_ACTIVITY
 - GLOBAL_SESSION_STAT_ACTIVITY
 - THREAD_WAIT_STATUS
 - GLOBAL_THREAD_WAIT_STATUS
 - LOCAL_THREADPOOL_STATUS
 - GLOBAL_THREADPOOL_STATUS
 - SESSION_CPU_RUNTIME
 - SESSION_MEMORY_RUNTIME
 - STATEMENT_IOSTAT_COMPLEX_RUNTIME
 - LOCAL_ACTIVE_SESSION
 
 - Transaction
 - Query
- STATEMENT
 - SUMMARY_STATEMENT
 - STATEMENT_COUNT
 - GLOBAL_STATEMENT_COUNT
 - SUMMARY_STATEMENT_COUNT
 - GLOBAL_STATEMENT_COMPLEX_HISTORY
 - GLOBAL_STATEMENT_COMPLEX_HISTORY_TABLE
 - GLOBAL_STATEMENT_COMPLEX_RUNTIME
 - STATEMENT_RESPONSETIME_PERCENTILE
 - STATEMENT_COMPLEX_RUNTIME
 - STATEMENT_COMPLEX_HISTORY_TABLE
 - STATEMENT_COMPLEX_HISTORY
 - STATEMENT_WLMSTAT_COMPLEX_RUNTIME
 - STATEMENT_HISTORY
 
 - Cache/IO
- STATIO_USER_TABLES
 - SUMMARY_STATIO_USER_TABLES
 - GLOBAL_STATIO_USER_TABLES
 - STATIO_USER_INDEXES
 - SUMMARY_STATIO_USER_INDEXES
 - GLOBAL_STATIO_USER_INDEXES
 - STATIO_USER_SEQUENCES
 - SUMMARY_STATIO_USER_SEQUENCES
 - GLOBAL_STATIO_USER_SEQUENCES
 - STATIO_SYS_TABLES
 - SUMMARY_STATIO_SYS_TABLES
 - GLOBAL_STATIO_SYS_TABLES
 - STATIO_SYS_INDEXES
 - SUMMARY_STATIO_SYS_INDEXES
 - GLOBAL_STATIO_SYS_INDEXES
 - STATIO_SYS_SEQUENCES
 - SUMMARY_STATIO_SYS_SEQUENCES
 - GLOBAL_STATIO_SYS_SEQUENCES
 - STATIO_ALL_TABLES
 - SUMMARY_STATIO_ALL_TABLES
 - GLOBAL_STATIO_ALL_TABLES
 - STATIO_ALL_INDEXES
 - SUMMARY_STATIO_ALL_INDEXES
 - GLOBAL_STATIO_ALL_INDEXES
 - STATIO_ALL_SEQUENCES
 - SUMMARY_STATIO_ALL_SEQUENCES
 - GLOBAL_STATIO_ALL_SEQUENCES
 - GLOBAL_STAT_DB_CU
 - GLOBAL_STAT_SESSION_CU
 
 - Utility
- REPLICATION_STAT
 - GLOBAL_REPLICATION_STAT
 - REPLICATION_SLOTS
 - GLOBAL_REPLICATION_SLOTS
 - BGWRITER_STAT
 - GLOBAL_BGWRITER_STAT
 - GLOBAL_CKPT_STATUS
 - GLOBAL_DOUBLE_WRITE_STATUS
 - GLOBAL_PAGEWRITER_STATUS
 - GLOBAL_RECORD_RESET_TIME
 - GLOBAL_REDO_STATUS
 - GLOBAL_RECOVERY_STATUS
 - CLASS_VITAL_INFO
 - USER_LOGIN
 - SUMMARY_USER_LOGIN
 - GLOBAL_GET_BGWRITER_STATUS
 - GLOBAL_SINGLE_FLUSH_DW_STATUS
 - GLOBAL_CANDIDATE_STATUS
 
 - Lock
 - Wait Events
 - Configuration
 - Operator
 - Workload Manager
 - Global Plancache
 - RTO
 
 - DBE_PLDEBUGGER Schema
- DBE_PLDEBUGGER.turn_on
 - DBE_PLDEBUGGER.turn_off
 - DBE_PLDEBUGGER.local_debug_server_info
 - DBE_PLDEBUGGER.attach
 - DBE_PLDEBUGGER.info_locals
 - DBE_PLDEBUGGER.next
 - DBE_PLDEBUGGER.continue
 - DBE_PLDEBUGGER.abort
 - DBE_PLDEBUGGER.print_var
 - DBE_PLDEBUGGER.info_code
 - DBE_PLDEBUGGER.step
 - DBE_PLDEBUGGER.add_breakpoint
 - DBE_PLDEBUGGER.delete_breakpoint
 - DBE_PLDEBUGGER.info_breakpoints
 - DBE_PLDEBUGGER.backtrace
 - DBE_PLDEBUGGER.disable_breakpoint
 - DBE_PLDEBUGGER.enable_breakpoint
 - DBE_PLDEBUGGER.finish
 - DBE_PLDEBUGGER.set_var
 
 - DB4AI Schema
 - DBE_PLDEVELOPER
 - DBE_SQL_UTIL Schema
 
 - 工具参考
- 工具一览表
 - 客户端工具
 - 服务端工具
 - 系统内部使用的工具
- dsscmd
 - dssserver
 - mogdb
 - gs_backup
 - gs_basebackup
 - gs_ctl
 - gs_initdb
 - gs_install
 - gs_postuninstall
 - gs_preinstall
 - gs_sshexkey
 - gs_tar
 - gs_uninstall
 - gs_upgradectl
 - gs_expansion
 - gs_dropnode
 - gs_probackup
 - gstrace
 - kdb5_util
 - kadmin.local
 - kinit
 - klist
 - krb5kdc
 - kdestroy
 - pg_config
 - pg_controldata
 - pg_recvlogical
 - pg_resetxlog
 - pg_archivecleanup
 - pssh
 - pscp
 - transfer.py
 
 - FAQ
 - MogDB可运行脚本功能说明
 - gs_collector工具支持收集的系统表和视图列表
 
 - 数据库报错信息
- SQL标准错误码说明
 - 第三方库错误码说明
 - GAUSS-00001 - GAUSS-00100
 - GAUSS-00101 - GAUSS-00200
 - GAUSS 00201 - GAUSS 00300
 - GAUSS 00301 - GAUSS 00400
 - GAUSS 00401 - GAUSS 00500
 - GAUSS 00501 - GAUSS 00600
 - GAUSS 00601 - GAUSS 00700
 - GAUSS 00701 - GAUSS 00800
 - GAUSS 00801 - GAUSS 00900
 - GAUSS 00901 - GAUSS 01000
 - GAUSS 01001 - GAUSS 01100
 - GAUSS 01101 - GAUSS 01200
 - GAUSS 01201 - GAUSS 01300
 - GAUSS 01301 - GAUSS 01400
 - GAUSS 01401 - GAUSS 01500
 - GAUSS 01501 - GAUSS 01600
 - GAUSS 01601 - GAUSS 01700
 - GAUSS 01701 - GAUSS 01800
 - GAUSS 01801 - GAUSS 01900
 - GAUSS 01901 - GAUSS 02000
 - GAUSS 02001 - GAUSS 02100
 - GAUSS 02101 - GAUSS 02200
 - GAUSS 02201 - GAUSS 02300
 - GAUSS 02301 - GAUSS 02400
 - GAUSS 02401 - GAUSS 02500
 - GAUSS 02501 - GAUSS 02600
 - GAUSS 02601 - GAUSS 02700
 - GAUSS 02701 - GAUSS 02800
 - GAUSS 02801 - GAUSS 02900
 - GAUSS 02901 - GAUSS 03000
 - GAUSS 03001 - GAUSS 03100
 - GAUSS 03101 - GAUSS 03200
 - GAUSS 03201 - GAUSS 03300
 - GAUSS 03301 - GAUSS 03400
 - GAUSS 03401 - GAUSS 03500
 - GAUSS 03501 - GAUSS 03600
 - GAUSS 03601 - GAUSS 03700
 - GAUSS 03701 - GAUSS 03800
 - GAUSS 03801 - GAUSS 03900
 - GAUSS 03901 - GAUSS 04000
 - GAUSS 04001 - GAUSS 04100
 - GAUSS 04101 - GAUSS 04200
 - GAUSS 04201 - GAUSS 04300
 - GAUSS 04301 - GAUSS 04400
 - GAUSS 04401 - GAUSS 04500
 - GAUSS 04501 - GAUSS 04600
 - GAUSS 04601 - GAUSS 04700
 - GAUSS 04701 - GAUSS 04800
 - GAUSS 04801 - GAUSS 04900
 - GAUSS 04901 - GAUSS 05000
 - GAUSS 05001 - GAUSS 05100
 - GAUSS 05101 - GAUSS 05200
 - GAUSS 05201 - GAUSS 05300
 - GAUSS 05301 - GAUSS 05400
 - GAUSS 05401 - GAUSS 05500
 - GAUSS 05501 - GAUSS 05600
 - GAUSS 05601 - GAUSS 05700
 - GAUSS 05701 - GAUSS 05800
 - GAUSS 05801 - GAUSS 05900
 - GAUSS 05901 - GAUSS 06000
 - GAUSS 06001 - GAUSS 06100
 - GAUSS 06101 - GAUSS 06200
 - GAUSS 06201 - GAUSS 06300
 - GAUSS 06301 - GAUSS 06400
 - GAUSS 06401 - GAUSS 06500
 - GAUSS 06501 - GAUSS 06600
 - GAUSS 06601 - GAUSS 06700
 - GAUSS 06701 - GAUSS 06800
 - GAUSS 06801 - GAUSS 06900
 - GAUSS 06901 - GAUSS 07000
 - GAUSS 07001 - GAUSS 07100
 - GAUSS 07101 - GAUSS 07200
 - GAUSS 07201 - GAUSS 07300
 - GAUSS 07301 - GAUSS 07400
 - GAUSS 07401 - GAUSS 07500
 - GAUSS 50000 - GAUSS 50999
 - GAUSS 51000 - GAUSS 51999
 - GAUSS 52000 - GAUSS 52999
 - GAUSS 53000 - GAUSS 53699
 
 - 错误日志信息参考
 
 - 系统表及系统视图
 - 故障诊断指南
 - 源码解析
 - 常见问题解答 (FAQs)
 - 术语表
 - 通信矩阵
 - Mogeaver
 
gstrace
功能介绍
gstrace是MogDB提供的用来跟踪内核代码执行路径、记录内核数据结构、分析代码性能的工具。gstrace允许用户指定一个或多个模块和函数进行追踪。Trace的有限点位和数据在版本中被固化,无法动态添加和删除。
gstrace作为一款功能强大的工具,具备了在生产环境下进行追踪观测的能力,可以帮助数据库使用者导出SQL执行细节,并支持追踪分析各种模块。通过使用gstrace,数据库使用者可以全面了解系统的性能瓶颈和潜在问题,从而优化SQL代码性能,提升系统稳定性。
gstrace支持调用追踪如下模块,来提高故障诊断效率:
- walwriter模块、 pagewriter模块和checkpointer模块;
 - 一个或多个sessions或threads;
 - 轻量级锁数据;
 - DCF模块;
 
警告:
- 对内核dump指定内存变量的数据用于诊断分析,不存在直接指定任意寄存器或者内存地址的行为。读取的内存地址均是在开发阶段硬编码,没有任意地读取或者修改寄存器或内存的操作。
 - Trace点可能涉及敏感数据,收集trace信息前需要同用户协商,授权和许可后方可收集。
 - MogDB不会在敏感信息上打点,不会TRACE和用户相关的数据。
 - Trace仅用于诊断目的,开启trace将对性能产生一定影响,影响的大小视负载的高低,trace的模块而不同。
 - Trace工具的权限为0700,仅限于数据库用户读、写和执行。
 
说明: 如果进程异常终止,/dev/shm/ 目录下将会有gstrace_trace_cfg_*残留,可以手动清除。
语法
gstrace [start|stop|config|dump|detailcodepath|analyze|analyze_sqltrace|dump_usess| analyze_usess|dump_lwlock|analyze_lwlock]
[-m<mask>][-p <port>][-s <BUFFER_SIZE>] [-f <DUMP_FILE>] [-o <OUTPUT_FILE>]
[-t <STEP_SIZE>][ -q <COMP_FUNC_PAIR>(,<COMP_FUNC_PAIR>)*]
[-sid <SESSION_ID>(,<SESSION_ID>)*][-tid <THREAD_ID >(,<THREAD_ID>)*][-t <session|thread> ]参数说明
表 1 gstrace参数说明
| 参数 | 说明 | 
|---|---|
| start | 开始记录trace。 | 
| stop | 停止trace,释放存储信息的共享内存trace buffer。注意:trace buffer中已捕获trace信息会丢失。 | 
| config | 显示trace的配置信息。 | 
| dump | 将共享内存中的trace信息写入指定文件。若没有启动trace将报错。 | 
| detail | 将dump出来的二进制文件解析成文本文件,显示trace点的线程、时间信息。 | 
| codepath | 提取dump文件中的函数调用信息,按照调用栈的方式显示。 | 
| analyze | 统计各个函数的执行次数、总耗时、平均耗时、最长耗时、最短耗时。 | 
| dump_lwlock | 表示导出轻量级锁数据信息,采用原始二进制格式。 | 
| analyze_lwlock | 表示分析并生成可阅读文件,采用文本可阅读格式。 | 
| -p PORT | 指定启动trace功能的实例侦听的端口号。 | 
| -f DUMP_FILE | 指定dump导出的trace文件。 | 
| -o OUTPUT_FILE | 指定写入的文件。 | 
| -q COMP_FUNC_PAIR | 指定哪些模块、函数需要追踪。参数不得为空。 使用语法格式及描述: <COMP_FUNC_PAIRS> -> <COMP_FUNC_PAIR>[,<COMP_FUNC_PAIR>]* - COMP_FUNC_PAIRS由一组及以上的模块与函数组合组成 <COMP_FUNC_PAIR> -> <COMP_NAME>.<FUNC_NAMES> - COMP_FUNC_PAIR代表一组模块与函数组合 - COMP_NAME 代表一个模块名 <FUNC_NAMES> -> ALL|[<FUNC_NAME>[&<FUNC_NAME>]*] - FUNC_NAMES 可由用户指定为ALL 或者一个及以上的函数名。由于FUNC_NAMES一定是与COMP_NAME组合,因此,ALL代表追踪以COMP_NAME为名的模块的所有函数;而如果用户指定的是一个及以上的函数名,则是追踪以COMP_NAME为名的模块中的这几个指定FUNC_NAME对应的函数名 - FUNC_NAME 代表一个函数 示例: - “access.StartTransaction”:追踪一个模块及一个对应函数 - “executer.ExecutorStart&ExecInitExpr”: 追踪一个模块及多个对应函数 - “executer.ExecutorStart,tcop.PortalStart&PortalRun”: 追踪多个模块及多个对应函数 - “executer.ALL,access.ALL”:使用ALL关键字追踪所有executor和access两个模块中的全部函数 注意:如果需要追踪所有模块及函数,不使用-q参数即可。举例:gstrace start -p 8000  | 
| -sid | 指定一个或多个具体需要追踪的sessions的id(此处session ids可从pg_stat_activity表中获取)。多个session id 之间使用逗号分隔,最多可指定8个。-sid不能和-tid同时使用。 | 
| -tid | 指定一个或多个具体需要追踪的thread的id。多个thread id 之间使用逗号分隔,最多可指定8个。-tid不能和-sid同时使用。 | 
| -t STEP_SIZE | 指定分片分析的时间跨度(秒),可选。将生成单独的{OUTPUT_FILE}.step文件。 | 
| -m MASK | 指定哪些模块、函数需要追踪,如果参数为空,则追踪添加trace接口的所有模块的所有函数。 格式:[comp…][ALL].[func…][ALL] 描述: - comp 是模块列表,使用‘,’分隔,例如:executer,mogdb。也可以使用序号,例如:executer,2。 - func 是function列表,使用‘,’ 分隔。 例如:sql_execute_ddl, sql_execute_dcl。也可以使用序号指代模块中第几个function,例如:2。 - 设置成ALL表示所有模块或所有function被trace。 示例: - executer,mogdb.ALL :所有定义定义在executer和mogdb模块下的function被trace。 - executer,mogdb.sql_execute_ddl :定义在executer 下的Function sql_execute_ddl被trace. mogdb模块被忽略,因为下面没有该function 。 - executer,mogdb.1 :定义在模块executer和mogdb下的第一个function被trace。 ALL.1,2 :定义在所有模块下的第一,二个function被trace。  | 
| -s BUFFER_SIZE | 指定用于trace功能的共享内存大小,默认为1G。如果指定的BUFFER_SIZE小于最小值2048,系统将自动调整为最小值。如果指定的BUFFER_SIZE不是2^N^(二的N次方),则向下对齐2^N^;例如:指定BUFFER_SIZE=3072,由于2^11^<3072<2^12^,系统将调整为2048。 | 
示例
- 
基本功能示例
--启动trace gstrace start -p 8000 --停止trace gstrace stop -p 8000 --查看trace配置 gstrace config -p 8000 --dump trace gstrace dump -p 8000 -o /data/8000.dump --解析dump detail信息 gstrace detail -f /data/8000.dump -o /data/8000.detail --解析dump codepath gstrace codepath -f /data/8000.dump -o /data/8000.codepath --分析全局性能 gstrace analyze -f /data/8000.dump -o /data/8000.perf --分析分片性能 gstrace analyze -f /data/8000.dump -o /data/8000.perf -t 1 - 
SQL trace功能示例
示例1:追踪全部sqltrace信息
--1. 启动数据库,端口号为26000 gsql -d postgres -p 26000 --2. 启动TPCC模拟负载 runBenchmark.sh props.opengauss.1000w.local --3. 启动gstrace,并指定追踪模块为sqltrace gstrace start -p 26000 -q sqltrace.ALL --4. 将sqltrace写入指定dump文件sqltrace.dump gstrace dump -p 26000 -o /home/mogdbuser/sqltrace.dump --5. 停止追踪。 gstrace stop -p 26000 --6. 解析dump信息,并输出到指定文件sqltrace.txt gstrace analyze_sqltrace -f /home/mogdbuser/sqltrace.dump -o /home/mogdbuser/sqltrace.txt --7. 解析dump信息,并将解析内容按session id分别生成文件,并输出到指定文件路径 gstrace analyze_sqltrace -f /home/mogdbuser/sqltrace.dump -o /home/mogdbuser/sqltracebysession/ -t session --8. 解析dump信息,并将解析内容按thread id分别生成文件,并输出到指定文件路径 gstrace analyze_sqltrace -f /home/mogdbuser/sqltrace.dump -o /home/mogdbuser/sqltracebysession/ -t thread示例1:解析结果文件内容

示例2:只追踪指定session信息
--1. 启动数据库,端口号为26000 gsql -d postgres -p 26000 --2. 获取当前的某session id gsql -c "select pg_current_sessionid();" --3. 启动gstrace,并指定追踪模块为sqltrace,及前一步获取的session id,记为session_num gstrace start -p 26000 -q sqltrace.ALL -sid session_num --4. 将sqltrace写入指定dump文件sqltrace.dump gstrace dump -p 26000 -o /home/mogdbuser/sqltrace.dump --5. 停止trace gstrace stop -p 26000 --6. 解析dump信息,并输出到指定文件sqltrace.txt gstrace analyze_sqltrace -f /home/mogdbuser/sqltrace.dump -o /home/mogdbuser/sqltrace.txt示例2:解析结果文件内容

示例3:只追踪指定thread信息
--1. 启动数据库,端口号为26000 gsql -d postgres -p 26000 --2. 执行sql语句 create table t_trace_thread(i int); insert into t_trace_thread select generate_series(1,100000000); --3. 查询上一步执行的sql的thread id select lwtid from pg_thread_wait_status where query_id in (select query_id from pg_stat_activity where query='insert into t_trace_thread select generate_series(1,100000000);'); --4. 启动gstrace,并指定追踪模块为sqltrace,及前一步获取的thread id,记为thread_num gstrace start -p 26000 -q sqltrace.ALL -tid thread_num --5. 将sqltrace写入指定dump文件sqltrace.dump gstrace dump -p 26000 -o /home/mogdbuser/sqltrace.dump --6. 停止追踪 gstrace stop -p 26000 --7. 解析dump信息,并输出到指定文件sqltrace.txt gstrace analyze_sqltrace -f /home/mogdbuser/sqltrace.dump -o /home/mogdbuser/sqltrace.txt示例3:解析结果文件内容

 - 
导出并分析轻量级锁数据
--1. 启动数据库 gsql -d postgres -p 26000 --2. 导出获得二进制lwlock文件 gstrace dump_lwlock -p 5549 -o /home/mogdbuser/dump_lwlock.bin --3. 创建可阅读json版本lwlock信息文件 gstrace analyze_lwlock -f /home/mogdbuser/dump_lwlock.bin -o /home/mogdbuser/analyze_lwlock.json --4. 阅读分析json版本信息文件 - 
调用追踪DCF模块
--1. 按DCF配置三个节点,node1(主),node2,node3 --a. 分别在三个节点上安装数据库 --b. 配置白名单:在pg_hba.conf里添加白名单,示例如下: host all all 172.20.10.6/32 host all all 172.20.10.7/32 host all all 172.20.10.8/32 --c.分别在三个节点的postgresql.conf配置文件里添加如下内容配置DCF参数,例如: --节点1: port=21000 dcf_node_id = 1 dcf_ssl=off dcf_data_path = '/opengauss/data/dcf_data' dcf_log_path= '/opengauss/data/dcf_log' dcf_config='[{"stream_id":1,"node_id":1,"ip":"172.20.10.6","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"172.20.10.7","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"172.20.10.8","port":21000,"role":"FOLLOWER"}]' replconninfo1 = 'localhost=172.20.10.6 localport=21001 localheartbeatport=21005 remotehost=172.20.10.7 remoteport=21001 remoteheartbeatport=21005' replconninfo2 = 'localhost=172.20.10.6 localport=21001 localheartbeatport=21005 remotehost=172.20.10.8 remoteport=21001 remoteheartbeatport=21005' --节点2: port=21000 dcf_node_id = 2 dcf_ssl=off dcf_data_path = '/opengauss/data/dcf_data' dcf_log_path= '/opengauss/data/dcf_log' dcf_config='[{"stream_id":1,"node_id":1,"ip":"172.20.10.6","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"172.20.10.7","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"172.20.10.8","port":21000,"role":"FOLLOWER"}]' replconninfo1 = 'localhost=172.20.10.7 localport=21001 localheartbeatport=21005 remotehost=172.20.10.6 remoteport=21001 remoteheartbeatport=21005' replconninfo2 = 'localhost=172.20.10.7 localport=21001 localheartbeatport=21005 remotehost=172.20.10.8 remoteport=21001 remoteheartbeatport=21005' --节点3: port=21000 dcf_node_id = 3 dcf_ssl=off dcf_data_path = '/opengauss/data/dcf_data' dcf_log_path= '/opengauss/data/dcf_log' dcf_config='[{"stream_id":1,"node_id":1,"ip":"172.20.10.6","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"172.20.10.7","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"172.20.10.8","port":21000,"role":"FOLLOWER"}]' replconninfo1 = 'localhost=172.20.10.8 localport=21001 localheartbeatport=21005 remotehost=172.20.10.7 remoteport=21001 remoteheartbeatport=21005' replconninfo2 = 'localhost=172.20.10.8 localport=21001 localheartbeatport=21005 remotehost=172.20.10.6 remoteport=21001 remoteheartbeatport=21005' --2. 设置GUC参数enable_dcf = on,启动数据库 set enable_dcf = on gsql -d postgres -p 26000 --3. 三个node分别启动gstrace,指定追踪dcf模块的所有函数。 gstrace start -p port1_num -q dcf.ALL -f dump_file_1 gstrace start -p port2_num -q dcf.ALL -f dump_file_2 gstrace start -p port3_num -q dcf.ALL -f dump_file_3 --4. 执行会调用DCF功能模块的相关操作,例如数据库主备切换。 gs_ctl switchover -D $PGDATA2 --5. 停止追踪 gstrace stop -p port 1 _num gstrace stop -p port 2 _num gstrace stop -p port 3 _num --6. 解析dump detail信息 gstrace detail -f dump_file1 -o detail_file gstrace detail -f dump_file2 -o detail_file gstrace detail -f dump_file3 -o detail_file --7. 解析dump codepath信息 gstrace codepath -f dump1_file -o codepath_file gstrace codepath -f dump2_file -o codepath_file gstrace codepath -f dump3_file -o codepath_file --8. 解析dump analyze信息 gstrace analyze -f dump1_file -o analyze_file gstrace analyze -f dump2_file -o analyze_file gstrace analyze -f dump3_file -o analyze_file- 
dump detail解析结果文件内容
node 1

node 2

node 3

 - 
dump codepath解析结果文件内容
node 1

node 2

node 3

 - 
dump analyze解析结果文件内容
node 1

node 2

node 3

 
 -