- 关于MogDB
 - 快速入门
- MogDB实训平台
 - 容器化安装
 - 单节点安装
 - 访问数据库
- 使用命令行访问MogDB
 - 使用图形工具访问MogDB
 - 使用中间件访问MogDB
 - 使用编程语言访问MogDB
 
 - 使用样本数据集Mogila
 
 - 特性描述
- 概览
 - 高性能
 - 高可用
 - 维护性
 - 数据库安全
 - 企业级特性
 - 应用开发接口
 - AI能力
- AI4DB:数据库自治运维
 - DB4AI:数据库驱动AI
 - AI in DB:数据库内AI功能
 
 - 中间件
 
 - 安装指南
 - 管理指南
 - AI特性指南
- AI特性概述
 - AI4DB:数据库自治运维
 - DB4AI:数据库驱动AI
 - AI in DB:数据库内AI功能
 
 - 安全指南
 - 开发者指南
- 应用程序开发教程
- 开发规范
 - 基于JDBC开发
- 概述
 - JDBC包、驱动类和环境类
 - 开发流程
 - 加载驱动
 - 连接数据库
 - 连接数据库(以SSL方式)
 - 执行SQL语句
 - 处理结果集
 - 关闭连接
 - 日志管理
 - 示例:常用操作
 - 示例:重新执行应用SQL
 - 示例:通过本地文件导入导出数据
 - 示例:从MY向MogDB进行数据迁移
 - 示例:逻辑复制代码示例
 - 示例:不同场景下连接数据库参数配置
 - 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
 
 
 - 基于ODBC开发
 - 基于libpq开发
- libpq使用依赖的头文件
 - 开发流程
 - 示例
 - 链接参数
 - libpq接口参考
- 数据库连接控制函数
 - 数据库执行语句函数
 - 异步命令处理
 - 取消正在处理的查询
 
 
 - 基于Psycopg开发
 - 调试
 
 - 存储过程
 - 用户自定义函数
 - PL/pgSQL-SQL过程语言
 - 定时任务
 - 自治事务
 - 逻辑复制
 - Foreign Data Wrapper
 - 物化视图
 - 分区管理
 
 - 应用程序开发教程
 - 性能优化指南
 - 参考指南
- 系统表及系统视图
- 系统表和系统视图概述
 - 系统表
- 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_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_RLSPOLICY
 - PG_SECLABEL
 - PG_SHDEPEND
 - PG_SHDESCRIPTION
 - PG_SHSECLABEL
 - PG_STATISTIC
 - PG_STATISTIC_EXT
 - PG_SUBSCRIPTION
 - 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
 
 - 系统视图
- DV_SESSION_LONGOPS
 - DV_SESSIONS
 - GET_GLOBAL_PREPARED_XACTS(废弃)
 - GS_AUDITING
 - GS_AUDITING_ACCESS
 - GS_AUDITING_PRIVILEGE
 - GS_ASYNC_SUBMIT_SESSIONS_STATUS
 - GS_CLUSTER_RESOURCE_INFO
 - 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_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
 - GS_WRITE_TERM_LOG
 - 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
 
 
 - 系统函数
- 逻辑操作符
 - 比较操作符
 - 字符处理函数和操作符
 - 二进制字符串函数和操作符
 - 位串函数和操作符
 - 模式匹配操作符
 - 数字操作函数和操作符
 - 时间和日期处理函数和操作符
 - 类型转换函数
 - 几何函数和操作符
 - 网络地址函数和操作符
 - 文本检索函数和操作符
 - JSON/JSONB函数和操作符
 - HLL函数和操作符
 - SEQUENCE函数
 - 数组函数和操作符
 - 范围函数和操作符
 - 聚集函数
 - 窗口函数(分析函数)
 - 安全函数
 - 账本数据库的函数
 - 密态等值的函数
 - 返回集合的函数
 - 条件表达式函数
 - 系统信息函数
 - 系统管理函数
 - 统计信息函数
 - 触发器函数
 - HashFunc函数
 - 提示信息函数
 - 全局临时表函数
 - 故障注入系统函数
 - AI特性函数
 - 动态数据脱敏函数
 - 其他系统函数
 - 内部函数
 - Global SysCache特性函数
 - 数据损坏检测修复函数
 - 废弃函数
 
 - 支持的数据类型
 - SQL语法
- ABORT
 - ALTER AGGREGATE
 - ALTER AUDIT POLICY
 - ALTER DATABASE
 - ALTER DATA SOURCE
 - ALTER DEFAULT PRIVILEGES
 - ALTER DIRECTORY
 - ALTER EXTENSION
 - ALTER FOREIGN TABLE
 - ALTER FUNCTION
 - ALTER GLOBAL CONFIGURATION
 - ALTER GROUP
 - ALTER INDEX
 - ALTER LANGUAGE
 - ALTER LARGE OBJECT
 - ALTER MASKING POLICY
 - ALTER MATERIALIZED VIEW
 - 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 EXTENSION
 - 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 TABLE SUBPARTITION
 - CREATE TABLESPACE
 - 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
 - DO
 - DROP AGGREGATE
 - DROP AUDIT POLICY
 - DROP CAST
 - DROP CLIENT MASTER KEY
 - DROP COLUMN ENCRYPTION KEY
 - DROP DATABASE
 - DROP DATA SOURCE
 - DROP DIRECTORY
 - DROP EXTENSION
 - 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
 - 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_USER_COMPLEX_HISTORY
 - 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 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
 
 - 工具参考
- 工具一览表
 - 客户端工具
 - 服务端工具
 - 系统内部使用的工具
- mogdb
 - gs_backup
 - gs_basebackup
 - gs_ctl
 - gs_initdb
 - gs_install
 - gs_install_plugin
 - gs_install_plugin_local
 - 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 07480
 - GAUSS 50000 - GAUSS 50999
 - GAUSS 51000 - GAUSS 51999
 - GAUSS 52000 - GAUSS 52999
 - GAUSS 53000 - GAUSS 53699
 
 - 错误日志信息参考
 
 - 系统表及系统视图
 - 故障诊断指南
- 常见故障定位手段
 - 常见故障定位案例
- core问题定位
 - 权限/会话/数据类型问题定位
 - 服务/高可用/并发问题定位
 - 表/分区表问题定位
 - 文件系统/磁盘/内存问题定位
 - SQL问题定位
 - 索引问题定位
 
 
 - 源码解析
 - 常见问题解答 (FAQs)
 - 术语表
 - Mogeaver
 
使用准备
前提条件与使用事项
- 数据库状态正常、客户端能够正常连接、且要求数据库内导入数据,以便调优程序可以执行benchmark测试调优效果。
 - 使用本工具需要指定登录到数据库的用户身份,要求该登录到数据库上的用户具有足够的权限,以便可以获得充足的数据库状态信息。
 - 使用登录到数据库宿主机上的Linux用户,需要将$GAUSSHOME/bin添加到PATH环境变量中,即能够直接运行gsql、gs_guc、gs_ctl等数据库运维工具。
 - 本工具支持以三种模式运行,其中tune和train模式要求用户配置好benchmark运行环境,并导入数据,本工具将会通过迭代运行benchmark来判断修改后的参数是否有性能提升。
 - recommend模式建议在数据库正在执行workload的过程中执行,以便获得更准确的实时workload信息。
 - 本工具默认带有TPC-C、TPC-H、TPC-DS以及sysbench的benchmark运行脚本样例,如果用户使用上述benchmark对数据库系统进行压力测试,则可以对上述配置文件进行适度修改或配置。如果需要适配用户自己的业务场景,需要您参照benchmark目录中的template.py文件编写驱动您自定义benchmark的脚本文件。
 
原理简介
调优程序是一个独立于数据库内核之外的工具,需要提供数据库及其所在实例的用户名和登录密码信息,以便控制数据库执行benchmark进行性能测试;在启动调优程序前,要求用户测试环境交互正常,能够正常跑通benchmark测试脚本、能够正常连接数据库。
说明: 如果需要调优的参数中,包含重启数据库后才能使修改生效的参数,那么在调优过程中数据库将会重启多次。如果用户的数据库正在执行作业,请慎用train与tune模式。
调优程序X-Tuner包含三种运行模式,分别是:
- recommend:通过用户指定的用户名等信息登录到数据库环境中,获取当前正在运行的workload特征信息,根据上述特征信息生成参数推荐报告。报告当前数据库中不合理的参数配置和潜在风险等;输出根据当前正在运行的workload行为和特征;输出推荐的参数配置。该模式是秒级的,不涉及数据库的重启操作,其他模式可能需要反复重启数据库。
 - train:通过用户提供的benchmark信息,不断地进行参数修改和benchmark的执行。通过反复的迭代过程,训练强化学习模型,以便用户在后面通过tune模式加载该模型进行调优。
 - tune:使用优化算法进行数据库参数的调优,当前支持两大类算法,一种是深度强化学习,另一种是全局搜索算法(全局优化算法)。深度强化学习模式要求先运行train模式,生成训练后的调优模型,而使用全局搜索算法则不需要提前进行训练,可以直接进行搜索调优。
 
须知: 如果在tune模式下,使用深度强化学习算法,要求必须有一个训练好的模型,且要求训练该模型时的参数与进行调优时的参数列表(包括max与min)必须一致。
图 1 X-Tuner 结构图

X-Tuner 的整体架构如图1 X-Tuner 结构图所示,系统可以分为:
- DB侧:通过DB_Agent 模块对数据库实例进行抽象,通过该模块可以获取数据库内部的状态信息、当前数据库参数、以及设置数据库参数等。DB侧包括登录数据库环境使用的SSH连接。
 - 算法侧:用于调优的算法包,包括全局搜索算法(如贝叶斯优化、粒子群算法等)和深度强化学习(如DDPG);
 - X-Tuner 主体逻辑模块:通过Enviroment模块进行封装,每一个step 就是一次调优过程。整个调优过程通过多个step进行迭代;
 - benchmark:由用户指定的benchmark性能测试脚本,用于运行benchmark作业,通过跑分结果反映数据库系统性能优劣。
 
说明: 应确保benchmark脚本跑分结果越大表示性能越好。 例如TPC-H这种衡量SQL语句整体执行时长的benchmark,可以通过取总体执行时间的相反数作为benchmark的输出分数。
X-Tuner的运行和安装方法
执行下述命令即可获取xtuner功能帮助
gs_dbmind component xtuner --help用户可据此给定不同的命令行执行相应的功能。
X-Tuner的配置文件说明
X-Tuner在运行前需要加载配置文件,用户可以通过**--help**命令查看默认加载的配置文件绝对路径:
...
 -x TUNER_CONFIG_FILE, --tuner-config-file TUNER_CONFIG_FILE
                        This is the path of the core configuration file of the
                        X-Tuner. You can specify the path of the new
                        configuration file. The default path is /path/to/xtuner/xtuner.conf.
                        You can modify the configuration file to control the
                        tuning process.
...修改配置文件的配置项可以指引X-Tuner 执行不同的动作,用户可以根据自己的不同需求来修改配置文件的内容,配置文件的配置项说明详见命令参考页面中的表2。如果需要修改配置文件的加载路径,则可以通过选**-x**命令行选项来指定。
Benchmark的选择与配置
Benchmark的驱动脚本存放路径为X-Tuner目录(即**$GAUSSHOME**/bin/dbmind/components/xtuner,下同)的子目录benchmark中。X-Tuner自带常用的benchmark驱动脚本,例如基于时间周期的探测脚本(默认)、TPC-C、TPC-H等。X-Tuner通过调用benchmark/init.py文件中**get_benchmark_instance()**命令来加载不同的benchmark驱动脚本,获取benchmark驱动实例。其中,benchmark驱动脚本的格式说明如下:
- 驱动脚本文件名:表示benchmark的名字,该名字用于表示驱动脚本的唯一性,可通过在X-Tuner 的配置文件中的配置项benchmark_script来指定选择加载哪个benchmark驱动脚本。
 - 驱动脚本内容三要素:path变量、cmd变量以及run函数。
 
下面分别介绍驱动脚本的内容三要素:
- 
path 变量:表示benchmark脚本的存放地址,可以直接在驱动脚本中修改,也可以通过配置文件的 benchmark_path 配置项来指定。
 - 
cmd 变量:表示执行benchmark 脚本需要运行的命令,可以直接在驱动脚本中修改,也可以通过配置文件的 benchmark_cmd 配置项来指定。cmd中的文本允许使用占位符,用于获取某些运行cmd命令时的必要信息,使用示例参见TPC-H驱动脚本示例。这些占位符包括:
- {host}:数据库宿主机的IP地址
 - {port}:数据库实例的侦听端口号
 - {user}:登录数据库系统上的用户名
 - {password}:与登录数据库系统上的用户相匹配的密码
 - {db}:正在进行调优的数据库名
 
 - 
run函数:该函数的函数签名为:
def run(remote_server, local_host) -> float:其中,返回数据类型为float,表示benchmark执行后的评估分数值,要求该值越大表示性能越好,例如使用TPC-C跑分结果tpmC即可作为返回值,TPC-H的全部SQL语句执行总时间的相反数(取相反数后可保证返回值越大则性能越好)也可作为返回值。
remote_server 变量是X-Tuner 程序传递给脚本使用的远端主机(数据库宿主机)的shell命令接口,local_host 变量是X-Tuner 程序传递给脚本使用的本地主机(运行X-Tuner脚本的主机)的shell命令接口。上述shell命令接口提供的方法包括:
exec_command_sync(command, timeout) 功能:该方法用于在主机上执行shell命令。 参数列表: command 必选,数据类型可以是str, 以及元素为str类型的list或tuple; timeout 可选,表示命令执行的超时时长,单位是秒。 返回值: 返回二元组 (stdout, stderr),stdout表示标准输出流结果,stderr表示标准错误流结果,数据类型均为str.exit_status 功能:该属性表示最近一条shell命令执行后的退出状态码(exit status code)。 说明:一般情况,退出状态码为0表示执行正常,非0表示存在错误。 
Benchmark驱动脚本示例说明
- 
TPC-C 驱动脚本
from tuner.exceptions import ExecutionError # WARN: You need to download the benchmark-sql test tool to the system, # replace the PostgreSQL JDBC driver with the openGauss driver, # and configure the benchmark-sql configuration file. # The program starts the test by running the following command: path = '/path/to/benchmarksql/run' # TPC-C测试脚本benchmark-sql 的存放路径 cmd = "./runBenchmark.sh props.gs" # 自定义一个名为 props.gs 的benchmark-sql测试配置文件 def run(remote_server, local_host): # 切换到 TPC-C 脚本目录下,清除历史错误日志,然后运行测试命令。 # 此处最好等待几秒钟,因为benchmark-sql 测试脚本生成最终测试报告是通过一个shell脚本实现的,整个过程会有延迟, # 为了保证能够获取到最终的tpmC数值报告,我们这里选择等待3秒钟。 stdout, stderr = remote_server.exec_command_sync(['cd %s' % path, 'rm -rf benchmarksql-error.log', cmd, 'sleep 3']) # 如果标准错误流中有数据,则报异常退出。 if len(stderr) > 0: raise ExecutionError(stderr) # 寻找最终tpmC结果 tpmC = None split_string = stdout.split() # 对标准输出流结果进行分词。 for i, st in enumerate(split_string): # 在5.0版本的benchmark-sql中,tpmC最终测试结果数值在 ‘(NewOrders)’关键字的后两位,正常情况下,找到该字段后直接返回即可。 if "(NewOrders)" in st: tpmC = split_string[i + 2] break stdout, stderr = remote_server.exec_command_sync( "cat %s/benchmarksql-error.log" % path) nb_err = stdout.count("ERROR:") # 判断整个benchmark运行过程中,是否有报错,记录报错的错误数 return float(tpmC) - 10 * nb_err # 这里将报错的错误数作为一个惩罚项,惩罚系数为10,越高的惩罚系数表示越看中报错的数量. - 
TPC-H驱动脚本
import time from tuner.exceptions import ExecutionError # WARN: You need to import data into the database and SQL statements in the following path will be executed. # The program automatically collects the total execution duration of these SQL statements. path = '/path/to/tpch/queries' # 存放TPC-H测试用的SQL脚本目录 cmd = "gsql -U {user} -W {password} -d {db} -p {port} -f {file}" # 需要运行TPC-H测试脚本的命令,一般使用'gsql -f 脚本文件' 来运行 def run(remote_server, local_host): # 遍历当前目录下所有的测试用例文件名 find_file_cmd = "find . -type f -name '*.sql'" stdout, stderr = remote_server.exec_command_sync(['cd %s' % path, find_file_cmd]) if len(stderr) > 0: raise ExecutionError(stderr) files = stdout.strip().split('\n') time_start = time.time() for file in files: # 使用 file 变量替换 {file},然后执行该命令行。 perform_cmd = cmd.format(file=file) stdout, stderr = remote_server.exec_command_sync(['cd %s' % path, perform_cmd]) if len(stderr) > 0: print(stderr) # 代价为全部测试用例的执行总时长 cost = time.time() - time_start # 取相反数,适配run 函数的定义:返回结果越大表示性能越好。 return - cost