- 关于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
gs_probackup
背景信息
gs_probackup是一个用于管理MogDB数据库备份和恢复的工具。它对MogDB实例进行定期备份,以便在数据库出现故障时能够恢复服务器。
- 可用于备份单机数据库,也可对主机或者主节点数据库备机进行备份,为物理备份。
- 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。
- 支持增量备份、定期备份和远程备份。
- 可设置备份的留存策略。
前提条件
- 可以正常连接MogDB数据库。
- 若要使用PTRACK增量备份,需在postgresql.conf中手动添加参数“enable_cbm_tracking = on”。
- 为了防止xlog在传输结束前被清理,请适当调高postgresql.conf文件中wal_keep_segments的值。
限制说明
- 备份必须由运行数据库服务器的用户执行。
- 备份和恢复的数据库服务器的主版本号必须相同。
- 如果要通过ssh在远程模式下备份数据库,需要在本地和远程主机安装相同主版本的数据库,并通过ssh-copy-id remote_user@remote_host命令设置本地主机备份用户和远程主机数据库用户的无密码ssh连接。
- 远程模式下只能执行add-instance、backup、restore子命令。
- 使用restore子命令前,应先停止mogdb进程。
- 当存在用户自定义表空间时,备份的时候要加上--external-dirs 参数,否则,该表空间不会被备份。
- 当备份的规模比较大时,为了防止备份过程中timeout发生,请适当调整postgresql.conf文件的参数 session_timeout、wal_sender_timeout。并且在备份的命令行参数中适当调整参数--rw-timeout的值。
- 恢复时,使用-T选项把备份中的外部目录重定向到新目录时,请同时指定参数--external-mapping。
- 当使用远程备份时,请确保远程机器和备份机器的时钟同步,以防止使用--recovery-target-time恢复的场合,启动mogdb时有可能会失败。
- 当远程备份有效时(remote-proto=ssh),请确保-h和--remote-host指定的是同一台机器。当远程备份无效时,如果指定了-h选项,请确保-h指定的是本机地址或本机主机名。
- 当前暂不支持备份逻辑复制槽。
命令说明
-
打印gs_probackup版本。
gs_probackup -V|--version gs_probackup version
-
显示gs_probackup命令的摘要信息。如果指定了gs_probackup的子命令,则显示可用于此子命令的参数的详细信息。
gs_probackup -?|--help gs_probackup help [command]
-
初始化备份路径_backup-path_中的备份目录,该目录将存储已备份的内容。如果备份路径_backup-path_已存在,则_backup-path_必须为空目录。
gs_probackup init -B backup-path [--help]
-
在备份路径_backup-path_内初始化一个新的备份实例,并生成pg_probackup.conf配置文件,该文件保存了指定数据目录_pgdata-path_的gs_probackup设置。
gs_probackup add-instance -B backup-path -D pgdata-path --instance=instance_name [-E external-directories-paths] [remote_options] [--help]
-
在备份路径_backup-path_内删除指定实例相关的备份内容。
gs_probackup del-instance -B backup-path --instance=instance_name [--help]
-
将指定的连接、压缩、日志等相关设置添加到pg_probackup.conf配置文件中,或修改已设置的值。不推荐手动编辑pg_probackup.conf配置文件。
gs_probackup set-config -B backup-path --instance=instance_name [-D pgdata-path] [-E external-directories-paths] [--archive-timeout=timeout] [--retention-redundancy=retention-redundancy] [--retention-window=retention-window] [--wal-depth=wal-depth] [--compress-algorithm=compress-algorithm] [--compress-level=compress-level] [-d dbname] [-h hostname] [-p port] [-U username] [logging_options] [remote_options] [--help]
-
将备份相关设置添加到backup.control配置文件中,或修改已设置的值。
gs_probackup set-backup -B backup-path --instance=instance_name -i backup-id [--note=text] [pinning_options] [--help]
-
显示位于备份目录中的pg_probackup.conf配置文件的内容。可以通过指定--format=json选项,以json格式显示。默认情况下,显示为纯文本格式。
gs_probackup show-config -B backup-path --instance=instance_name [--format=plain|json] [--help]
-
显示备份目录的内容。如果指定了instance_name和backup_id,则显示该备份的详细信息。可以通过指定--format=json选项,以json格式显示。默认情况下,备份目录的内容显示为纯文本格式。
gs_probackup show -B backup-path [--instance=instance_name [-i backup-id]] [--archive] [--format=plain|json] [--help]
-
创建指定实例的备份。
gs_probackup backup -B backup-path --instance=instance_name -b backup-mode [-D pgdata-path] [-C] [-S slot-name] [--temp-slot] [--backup-pg-log] [-j threads_num] [--progress] [--no-validate] [--skip-block-validation] [-E external-directories-paths] [--no-sync] [--note=text] [--archive-timeout=timeout] [-t rwtimeout] [logging_options] [retention_options] [compression_options] [connection_options] [remote_options] [pinning_options] [--help]
-
从备份目录_backup-path_中的备份副本恢复指定实例。如果指定了恢复目标选项,gs_probackup将查找最近的备份并将其还原到指定的恢复目标。否则,使用最近一次备份。
gs_probackup restore -B backup-path --instance=instance_name [-D pgdata-path] [-i backup_id] [-j threads_num] [--progress] [--force] [--no-sync] [--no-validate] [--skip-block-validation] [--external-mapping=OLDDIR=NEWDIR] [-T OLDDIR=NEWDIR] [--skip-external-dirs] [-I incremental_mode] [recovery_options] [remote_options] [logging_options] [--help]
-
将指定的增量备份与其父完全备份之间的所有增量备份合并到父完全备份。父完全备份将接收所有合并的数据,而已合并的增量备份将作为冗余被删除。
gs_probackup merge -B backup-path --instance=instance_name -i backup_id [-j threads_num] [--progress] [logging_options] [--help]
-
删除指定备份,或删除不满足当前保留策略的备份。
gs_probackup delete -B backup-path --instance=instance_name [-i backup-id | --delete-expired | --merge-expired | --status=backup_status] [--delete-wal] [-j threads_num] [--progress] [--retention-redundancy=retention-redundancy] [--retention-window=retention-window] [--wal-depth=wal-depth] [--dry-run] [logging_options] [--help]
-
验证恢复数据库所需的所有文件是否存在且未损坏。如果未指定_instance_name_,gs_probackup将验证备份目录中的所有可用备份。如果指定_instance_name_而不指定任何附加选项,gs_probackup将验证此备份实例的所有可用备份。如果指定了_instance_name_并且指定_backup-id_或恢复目标相关选项,gs_probackup将检查是否可以使用这些选项恢复数据库。
gs_probackup validate -B backup-path [--instance=instance_name] [-i backup-id] [-j threads_num] [--progress] [--skip-block-validation] [--recovery-target-time=time | --recovery-target-xid=xid | --recovery-target-lsn=lsn | --recovery-target-name=target-name] [--recovery-target-inclusive=boolean] [logging_options] [--help]
参数说明
通用参数
-
command
gs_probackup除version和help以外的子命令:init、add-instance、del-instance、set-config、set-backup、show-config、show、backup、restore、merge、delete、validate。
-
-?, --help
显示gs_probackup命令行参数的帮助信息,然后退出。
子命令中只能使用-help,不能使用-?。
-
-V, --version
打印gs_probackup版本,然后退出。
-
-B backup-path, --backup-path=backup-path
备份的路径。
系统环境变量:$BACKUP_PATH
-
-D pgdata-path, --pgdata=pgdata-path
数据目录的路径。
系统环境变量:$PGDATA
-
--instance=instance_name
实例名。
-
-i backup-id, --backup-id=backup-id
备份的唯一标识。
-
--format=format
指定显示备份信息的格式,支持plain和json格式。
默认值:plain
-
--status=backup_status
删除指定状态的所有备份,包含以下状态:
- OK:备份已完成且有效。
- DONE:备份已完成但未经过验证。
- RUNNING:备份正在进行中。
- MERGING:备份正在合并中。
- DELETING:备份正在删除中。
- CORRUPT:部分备份文件已损坏。
- ERROR:由于意外错误,备份失败。
- ORPHAN:由于其父备份之一已损坏或丢失,备份无效。
-
-j threads_num, --threads=threads_num
设置备份、还原、合并进程的并行线程数。
-
--archive
显示WAL归档信息。
-
--progress
显示进度。
-
--note=text
给备份添加note。
备份相关参数
-
-b backup-mode, --backup-mode=backup-mode
指定备份模式,支持FULL和PTRACK。
FULL:创建全量备份,全量备份包含所有数据文件。
PTRACK:创建PTRACK增量备份。
-
-C, --smooth-checkpoint
将检查点在一段时间内展开。默认情况下,gs_probackup会尝试尽快完成检查点。
-
-S slot-name, --slot=slot-name
指定WAL流处理的复制slot。
-
--temp-slot
在备份的实例中为WAL流处理创建一个临时物理复制slot,它确保在备份过程中,所有所需的WAL段仍然是可用的。
默认的slot名为pg_probackup_slot,可通过选项--slot/-S更改。
-
--backup-pg-log
将日志目录包含到备份中。此目录通常包含日志消息。默认情况下包含日志目录,但不包含日志文件。如果修改了默认的日志路径,需要备份日志文件时可使用-E参数进行备份,使用方法见下文。
-
-E external-directories-paths, --external-dirs=external-directories-paths
将指定的目录包含到备份中。此选项对于备份位于数据目录外部的脚本、sql转储和配置文件很有用。如果要备份多个外部目录,请在Unix上用冒号分隔它们的路径。
例如:-E /tmp/dir1:/tmp/dir2
-
--skip-block-validation
关闭块级校验,加快备份速度。
-
--no-validate
在完成备份后跳过自动验证。
-
--no-sync
不将备份文件同步到磁盘。
-
--archive-timeout=timeout
以秒为单位设置流式处理的超时时间。
默认值:300
-
-t rwtimeout
以秒为单位的连接的超时时间。
默认值: 120
恢复相关参数
-
-I, --incremental-mode=none|checksum|lsn
若PGDATA中可用的有效页没有修改,则重新使用它们。
默认值:none
-
--external-mapping=OLDDIR=NEWDIR
在恢复时,将包含在备份中的外部目录从_OLDDIR_重新定位到_NEWDIR_目录。_OLDDIR_和_NEWDIR_都必须是绝对路径。如果路径中包含“=”,则使用反斜杠转义。此选项可为多个目录多次指定。
-
-T OLDDIR=NEWDIR, --tablespace-mapping=OLDDIR=NEWDIR
在恢复时,将表空间从_OLDDIR_重新定位到_NEWDIR_目录。_OLDDIR_和_NEWDIR_必须都是绝对路径。如果路径中包含“=”,则使用反斜杠转义。多个表空间可以多次指定此选项。此选项必须和--external-mapping一起使用。
-
--skip-external-dirs
跳过备份中包含的使用-external-dirs选项指定的外部目录。这些目录的内容将不会被恢复。
-
--skip-block-validation
跳过块级校验,以加快验证速度。在恢复之前的自动验证期间,将仅做文件级别的校验。
-
--no-validate
跳过备份验证。
-
--force
允许忽略备份的无效状态。如果出于某种原因需要从损坏的或无效的备份中恢复数据,可以使用此标志。请谨慎使用。
恢复目标相关参数(recovery_options)
说明: 当前不支持配置连续的WAL归档的PITR,因而使用这些参数会有一定限制,具体如下描述。 如果需要使用持续归档的WAL日志进行PITR恢复,请按照下面描述的步骤:
- 将物理备份的文件替换目标数据库目录。
- 删除数据库目录下pg_xlog/中的所有文件。
- 将归档的WAL日志文件复制到pg_xlog文件中(此步骤可以省略,通过配置recovery.conf恢复命令文件中的restore_command项替代)。
- 在数据库目录下创建恢复命令文件recovery.conf,指定数据库恢复的程度。
- 启动数据库。
- 连接数据库,查看是否恢复到希望预期的状态。若已经恢复到预期状态,通过pg_xlog_replay_resume()指令使主节点对外提供服务。
-
--recovery-target-lsn=lsn
指定要恢复到的lsn,当前只能指定备份的stop lsn。
-
--recovery-target-name=target-name
指定要将数据恢复到的已命名的保存点,保存点可以通过查看备份中recovery-name字段得到。
-
--recovery-target-time=time
指定要恢复到的时间,当前只能指定备份中的recovery-time。
-
--recovery-target-xid=xid
指定要恢复到的事务ID,当前只能指定备份中的recovery-xid。
-
--recovery-target-inclusive=boolean
当该参数指定为true时,恢复目标将包括指定的内容。
当该参数指定为false时,恢复目标将不包括指定的内容。
该参数必须和--recovery-target-name、--recovery-target-time、--recovery-target-lsn或--recovery-target-xid一起使用。
留存相关参数(retention_options)
说明: 可以和backup和delete命令一起使用这些参数。
-
--retention-redundancy=retention-redundancy
指定在数据目录中留存的完整备份数。必须为正整数。0表示禁用此设置。
默认值:0
-
--retention-window=retention-window
指定留存的天数。必须为正整数。0表示禁用此设置。
默认值:0
-
--wal-depth=wal-depth
每个时间轴上必须留存的执行PITR能力的最新有效备份数。必须为正整数。0表示禁用此设置。
默认值:0
-
--delete-wal
从任何现有的备份中删除不需要的WAL文件。
-
--delete-expired
删除不符合pg_probackup.conf配置文件中定义的留存策略的备份。
-
--merge-expired
将满足留存策略要求的最旧的增量备份与其已过期的父备份合并。
-
--dry-run
显示所有可用备份的当前状态,不删除或合并过期备份。
固定备份相关参数(pinning_options)
说明: 如果要将某些备份从已建立的留存策略中排除,可以和backup和set-backup命令一起使用这些参数。
-
--ttl=interval
指定从恢复时间开始计算,备份要固定的时间量。必须为正整数。0表示取消备份固定。
支持的单位:ms、 s、 min、 h、 d(默认为s)。
例如:-ttl=30d。
-
--expire-time=time
指定备份固定失效的时间戳。必须是ISO-8601标准的时间戳。
例如:--expire-time='2020-01-01 00:00:00+03'
日志相关参数(logging_options)
日志级别:verbose、log、info、warning、error和off。
-
--log-level-console=log-level-console
设置要发送到控制台的日志级别。每个级别都包含其后的所有级别。级别越高,发送的消息越少。指定off级别表示禁用控制台日志记录。
默认值:info
-
--log-level-file=log-level-file
设置要发送到日志文件的日志级别。每个级别都包含其后的所有级别。级别越高,发送的消息越少。指定off级别表示禁用日志文件记录。
默认值:off
-
--log-filename=log-filename
指定要创建的日志文件的文件名。文件名可以使用strftime模式,因此可以使用%-escapes指定随时间变化的文件名。
例如,如果指定了“pg_probackup-%u.log”模式,则pg_probackup为每周的每一天生成单独的日志文件,其中%u替换为相应的十进制数字,即pg_probackup-1.log表示星期一;pg_probackup-2.log表示星期二,以此类推。
如果指定了--log-level-file参数启用日志文件记录,则该参数有效。
默认值:“pg_probackup.log”
-
--error-log-filename=error-log-filename
指定仅用于error日志的日志文件名。指定方式与--log-filename参数相同。
此参数用于故障排除和监视。
-
--log-directory=log-directory
指定创建日志文件的目录。必须是绝对路径。此目录会在写入第一条日志时创建。
默认值:$BACKUP_PATH/log
-
--log-rotation-size=log-rotation-size
指定单个日志文件的最大大小。如果达到此值,则启动gs_probackup命令后,日志文件将循环,但help和version命令除外。0表示禁用基于文件大小的循环。
支持的单位:KB、MB、GB、TB(默认为KB)。
默认值:0
-
--log-rotation-age=log-rotation-age
单个日志文件的最大生命周期。如果达到此值,则启动gs_probackup命令后,日志文件将循环,但help和version命令除外。$BACKUP_PATH/log/log_rotation目录下保存最后一次创建日志文件的时间。0表示禁用基于时间的循环。
支持的单位:ms、 s、 min、 h、 d(默认为min)。
默认值:0
连接相关参数(connection_options)
说明: 可以和backup命令一起使用这些参数。
-
-d dbname, --pgdatabase=dbname
指定要连接的数据库名称。该连接仅用于管理备份进程,因此您可以连接到任何现有的数据库。如果命令行、PGDATABASE环境变量或pg_probackup.conf配置文件中没有指定此参数,则gs_probackup会尝试从PGUSER环境变量中获取该值。如果未设置PGUSER变量,则从当前用户名获取。
系统环境变量:$PGDATABASE
-
-h hostname, --pghost=hostname
指定运行服务器的系统的主机名。如果该值以斜杠开头,则被用作到Unix域套接字的路径。
系统环境变量:$PGHOST
默认值:local socket
-
-p port, --pgport=port
指定服务器正在侦听连接的TCP端口或本地Unix域套接字文件扩展名。
系统环境变量:$PGPORT
默认值:5432
-
-U username, --pguser=username
指定所连接主机的用户名。
系统环境变量:$PGUSER
-
-w, --no-password
不出现输入密码提示。如果主机要求密码认证并且密码没有通过其它形式给出,则连接尝试将会失败。 该选项在批量工作和不存在用户输入密码的脚本中很有帮助。
-
-W password, --password=password
指定用户连接的密码。如果主机的认证策略是trust,则不会对系统管理员进行密码验证,即无需输入-W选项;如果没有-W选项,并且不是系统管理员,则会提示用户输入密码。
压缩相关参数(compression_options)
说明: 可以和backup命令一起使用这些参数。
-
--compress-algorithm=compress-algorithm
指定用于压缩数据文件的算法。
取值包括zlib、pglz和none。如果设置为zlib或pglz,此选项将启用压缩。默认情况下,压缩功能处于关闭状态。
默认值:none
-
--compress-level=compress-level
指定压缩级别。取值范围: 0~9
- 0表示无压缩。
- 1表示压缩比最小,处理速度最快。
- 9表示压缩比最大,处理速度最慢。
- 可与--compress-algorithm选项一起使用。
默认值:1
-
--compress
以--compress-algorithm=zlib和--compress-level=1进行压缩。
远程模式相关参数(remote_options)
说明: 通过SSH远程运行gs_probackup操作的相关参数。可以和add-instance、set-config、backup、restore命令一起使用这些参数。
-
--remote-proto=protocol
指定用于远程操作的协议。目前只支持SSH协议。取值包括:
ssh:通过SSH启用远程备份模式。这是默认值。
none:显式禁用远程模式。
如果指定了-remote-host参数,可以省略此参数。
-
--remote-host=destination
指定要连接的远程主机的IP地址或主机名。
-
--remote-port=port
指定要连接的远程主机的端口号。
默认值:22
-
--remote-user=username
指定SSH连接的远程主机用户。如果省略此参数,则使用当前发起SSH连接的用户。
默认值:当前用户
-
--remote-path=path
指定gs_probackup在远程系统的安装目录。
默认值:当前路径
-
--remote-libpath=libpath
指定gs_probackup在远程系统安装的lib库目录。
-
--ssh-options=ssh_options
指定SSH命令行参数的字符串。
例如:--ssh-options='-c cipher_spec -F configfile'
说明:
-
如果因为网络临时故障等原因导致server端无应答,gs_probackup将在等待archive-timeout(默认300秒)后退出。
-
如果备机lsn与主机有差别时,数据库会不停地刷以下log信息,此时应重新build备机。
LOG: walsender thread shut down LOG: walsender thread started LOG: received wal replication command: IDENTIFY_VERSION LOG: received wal replication command: IDENTIFY_MODE LOG: received wal replication command: IDENTIFY_SYSTEM LOG: received wal replication command: IDENTIFY_CONSISTENCE 0/D0002D8 LOG: remote request lsn/crc: [xxxxx] local max lsn/crc: [xxxxx]
-
备份流程
-
初始化备份目录。在指定的目录下创建backups/和wal/子目录,分别用于存放备份文件和WAL文件。
gs_probackup init -B backup_dir
-
添加一个新的备份实例。gs_probackup可以在同一个备份目录下存放多个数据库实例的备份。
gs_probackup add-instance -B backup_dir -D data_dir --instance instance_name
-
创建指定实例的备份。在进行增量备份之前,必须至少创建一次全量备份。
gs_probackup backup -B backup_dir --instance instance_name -b backup_mode
-
从指定实例的备份中恢复数据。
gs_probackup restore -B backup_dir --instance instance_name -D pgdata-path -i backup_id
故障处理
问题描述 | 原因和解决方案 |
---|---|
ERROR: query failed: ERROR: canceling statement due to conflict with recovery(错误:查询失败:由于与恢复操作冲突,正在取消语句命令) | 原因:在备机上执行的操作正在访问存储行,主机上更改或者删除了对应的行,并将xlog在备机上重放,迫使备机上操作取消。 解决方案: 1. 适当增加如下配置参数的值 max_standby_archive_delay max_standby_streaming_delay 2. 增加如下配置 hot_standby_feedback = on |
示例
以下为全量备份和增量备份示例,备份目录为/opt/mogdb/backup_dir。
-
初始化备份目录。在指定的备份目录/opt/mogdb/backup_dir下创建backups/和wal/子目录,分别用于存放备份文件和WAL文件。
[ommdoc@hostname]$ gs_probackup init -B /opt/mogdb/backup_dir INFO: Backup catalog '/opt/mogdb/backup_dir' successfully inited
-
添加一个新的备份实例instance1(用户需自定义实例名称)。gs_probackup可以在同一个备份目录下存放多个数据库实例的备份。
[ommdoc@hostname]$ gs_probackup add-instance -B /opt/mogdb/backup_dir -D /opt/mogdb/data --instance instance1 INFO: Instance 'instance1' successfully inited
-
创建指定实例的全量备份。
注意:如果提示数据库无法连接,请执行如下命令建立数据库连接后再执行全量备份。例如执行如下命令连接到postgres数据库,且端口号为28000。
[ommdoc@hostname]$ gs_probackup set-config --instance=instance1 -B /opt/mogdb/backup_dir -d postgres -p 28000
[ommdoc@hostname]$ gs_probackup backup -B /opt/mogdb/backup_dir --instance instance1 -b FULL INFO: Backup start, gs_probackup version: 2.4.2, instance: instance1, backup ID: RGOZF6, backup mode: FULL, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1 LOG: Backup destination is initialized LOG: This openGauss instance was initialized with data block checksums. Data block corruption will be detected LOG: Database backup start LOG: started streaming WAL at 0/CA000000 (timeline 1) INFO: Cannot parse path "base" [2022-08-16 13:04:18]: check identify system success [2022-08-16 13:04:18]: send START_REPLICATION 0/CA000000 success [2022-08-16 13:04:18]: keepalive message is received [2022-08-16 13:04:18]: keepalive message is received INFO: PGDATA size: 1320MB INFO: Start transferring data files LOG: Creating page header map "/opt/mogdb/backup_dir/backups/instance1/RGOZF6/page_header_map" INFO: Data files are transferred, time elapsed: 2s INFO: wait for pg_stop_backup() INFO: pg_stop backup() successfully executed LOG: stop_lsn: 0/CA0001E8 LOG: Looking for LSN 0/CA0001E8 in segment: 0000000100000000000000CA LOG: Found WAL segment: /opt/mogdb/backup_dir/backups/instance1/RGOZF6/database/pg_xlog/0000000100000000000000CA LOG: Thread [0]: Opening WAL segment "/opt/mogdb/backup_dir/backups/instance1/RGOZF6/database/pg_xlog/0000000100000000000000CA" LOG: Found LSN: 0/CA0001E8 LOG: finished streaming WAL at 0/CB000000 (timeline 1) LOG: Getting the Recovery Time from WAL LOG: Thread [0]: Opening WAL segment "/opt/mogdb/backup_dir/backups/instance1/RGOZF6/database/pg_xlog/0000000100000000000000CA" INFO: Syncing backup files to disk INFO: Backup files are synced, time elapsed: 1s INFO: Validating backup RGOZF6 INFO: Backup RGOZF6 data files are valid INFO: Backup RGOZF6 resident size: 1337MB INFO: Backup RGOZF6 completed
-
登录数据库,创建表warehouse_t1。
[ommdoc@hostname]$ gsql -d postgres -p 28000 gsql ((MogDB 3.0.1 build 62408a0f) compiled at 2022-06-30 15:06:56 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. MogDB=# CREATE TABLE warehouse_t1 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER MogDB-# , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_MogDB(# SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) MogDB(# , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) MogDB(# , W_GMT_OFFSET DECIMAL(5,2) ); CREATE TABLE MogDB=#
-
创建指定实例的增量备份。
注意:创建增量备份前,需在postgresql.conf中手动添加参数“enable_cbm_tracking = on”,并重启数据库确保参数生效。
[ommdoc@hostname]$ gs_probackup backup -B /opt/mogdb/backup_dir --instance instance1 -b PTRACK INFO: Backup start, gs_probackup version: 2.4.2, instance: instance1, backup ID: RGOZKI, backup mode: PTRACK, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1 LOG: Backup destination is initialized LOG: This openGauss instance was initialized with data block checksums. Data block corruption will be detected LOG: Database backup start LOG: Latest valid FULL backup: RGOZF6 INFO: Parent backup: RGOZF6 LOG: started streaming WAL at 0/CC000000 (timeline 1) INFO: Cannot parse path "base" [2022-08-16 13:07:30]: check identify system success [2022-08-16 13:07:30]: send START_REPLICATION 0/CC000000 success [2022-08-16 13:07:30]: keepalive message is received [2022-08-16 13:07:30]: keepalive message is received INFO: PGDATA size: 1320MB LOG: Current tli: 1 LOG: Parent start_lsn: 0/CA000028 LOG: start_lsn: 0/CC000028 INFO: Extracting pagemap of changed blocks INFO: change bitmap start lsn location is 0/CA000028 INFO: change bitmap end lsn location is 00000000/CC000028 INFO: Pagemap successfully extracted, time elapsed: 0 sec INFO: Start transferring data files LOG: Creating page header map "/opt/mogdb/backup_dir/backups/instance1/RGOZKI/page_header_map" INFO: Data files are transferred, time elapsed: 0 INFO: wait for pg_stop_backup() INFO: pg_stop backup() successfully executed LOG: stop_lsn: 0/CC0001E8 LOG: Looking for LSN 0/CC0001E8 in segment: 0000000100000000000000CC LOG: Found WAL segment: /opt/mogdb/backup_dir/backups/instance1/RGOZKI/database/pg_xlog/0000000100000000000000CC LOG: Thread [0]: Opening WAL segment "/opt/mogdb/backup_dir/backups/instance1/RGOZKI/database/pg_xlog/0000000100000000000000CC" LOG: Found LSN: 0/CC0001E8 LOG: finished streaming WAL at 0/CD000000 (timeline 1) LOG: Getting the Recovery Time from WAL LOG: Thread [0]: Opening WAL segment "/opt/mogdb/backup_dir/backups/instance1/RGOZKI/database/pg_xlog/0000000100000000000000CC" INFO: Syncing backup files to disk INFO: Backup files are synced, time elapsed: 0 INFO: Validating backup RGOZKI INFO: Backup RGOZKI data files are valid INFO: Backup RGOZKI resident size: 273MB INFO: Backup RGOZKI completed
-
删除数据库目录。
[ommdoc@hostname]$ gs_ctl stop -D /opt/mogdb/data [2022-08-16 13:27:04.642][766772][][gs_ctl]: gs_ctl stopped ,datadir is /opt/mogdb/data waiting for server to shut down.............. done server stopped [ommdoc@hostname]$ rm -rf /opt/mogdb/data
-
恢复数据库。
[ommdoc@mogdb-kernel-0003 data]$ gs_probackup restore -B /opt/mogdb/backup_dir --instance instance1 -D /opt/mogdb/data -i RGOZF6 LOG: Restore begin. LOG: there is no file tablespace_map LOG: check tablespace directories of backup RGOZF6 LOG: check external directories of backup RGOZF6 WARNING: Process 719280 which used backup RGOZF6 no longer exists INFO: Validating backup RGOZF6 INFO: Backup RGOZF6 data files are valid LOG: Thread [1]: Opening WAL segment "/opt/mogdb/backup_dir/backups/instance1/RGOZF6/database/pg_xlog/0000000100000000000000CA" INFO: Backup RGOZF6 WAL segments are valid INFO: Backup RGOZF6 is valid. INFO: Restoring the database from backup at 2022-08-16 13:04:18+08 LOG: there is no file tablespace_map LOG: Restore directories and symlinks... INFO: Start restoring backup files. PGDATA size: 1336MB LOG: Start thread 1 INFO: Backup files are restored. Transfered bytes: 1336MB, time elapsed: 0 INFO: Restore incremental ratio (less is better): 100% (1336MB/1336MB) INFO: Syncing restored files to disk INFO: Restored backup files are synced, time elapsed: 8s INFO: Restore of backup RGOZF6 completed. [ommdoc@hostname]$ gs_om -t restart Stopping cluster. ========================================= Successfully stopped cluster. ========================================= End stop cluster. Starting cluster. ========================================= [SUCCESS] mogdb-kernel-0003 2022-08-16 13:34:10.277 [unknown] [unknown] localhost 70371578937360 0[0:0#0] 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2022-08-16 13:34:10.277 [unknown] [unknown] localhost 70371578937360 0[0:0#0] 0 [BACKEND] WARNING: could not create any HA TCP/IP sockets 2022-08-16 13:34:10.282 [unknown] [unknown] localhost 70371578937360 0[0:0#0] 0 [BACKEND] WARNING: No explicit IP is configured for listen_addresses GUC. ========================================= Successfully started.