数据库目录

本文档介绍了 YMatrix 数据库系统的集群在运行过程中涉及的文件目录体系,从功能维度划分,主要涵盖以下几类目录:

  • 安装目录
  • 系统配置目录
  • 数据存储目录
  • etcd数据目录
  • 日志目录

安装目录

目录路径

/opt/ymatrix/matrixdb6:集群安装的核心目录,提供数据库运行所需的二进制文件、库文件、配置模板等基础环境。

目录结构

matrixdb6/
├── bin          # 核心可执行命令目录
├── docs         # 可执行命令的提示文档目录
├── etc          # git信息文件
├── greenplum_path.sh  # 环境变量初始化脚本
├── include      # 头文件目录(接口声明文件)
├── lib          # 核心库文件目录(动态链接库、静态库)
├── libexec      # 内部执行脚本/工具目录(集群内部调用)
├── sbin         # 需管理员权限的运维工具
└── share        # 共享文件目录(系统表定义、SQL脚本等)

系统配置目录

目录路径

/etc/matrixdb6:集群全局配置目录,存储集群信息,系统服务配置等文件。

目录结构

matrixdb6/
├── alert.yml               # 告警配置文件
├── auth.conf               # 存储UI页面的mxadmin用户信息
├── cluster.conf            # 集群核心配置文件(集群节点、端口、角色等基础信息)
├── defaults.conf           # 端口使用默认参数文件(
├── mxui                    # MXUI 管理界面配置目录(Web UI 相关配置)
├── physical_cluster.toml   # 物理集群配置文件(包含了etcd端口)
├── postmaster.env          # Postmaster 进程环境变量配置(数据库主进程运行环境)
├── recover_db_cluster.json # 记录数据库实例集群的节点配置信息。
├── recover_physical_cluster.json # 记录的是 YMaitrx SOA 架构所需的 etcd 集群的配置信息,被 etcdrecover 命令所依赖
├── scripts                 # 配置相关脚本目录(监控脚本)
├── service                 # 系统服务配置目录(如 etcd组件,mxui组件等)
└── supervisor.conf         # Supervisor 服务配置文件(supervisor 管理数据库进程的规则)

数据存储目录

目录路径

通过在数据库执行 select * from gp_segment_configuration;,可以看到数据存储目录。

MASTER 节点目录结构

├── base                    # 用户数据库数据存储目录,每个数据库对应独立OID子目录,存储表、索引等物理文件
├── current_logfiles        # 日志文件路径映射文件,记录当前活跃日志的存储路径,支撑日志轮转
├── fts_probe_file.bak      # FTS故障检测服务备份文件,存储节点探测状态,用于故障快速恢复
├── global                  # 集群全局系统元数据目录,存储共享系统表(数据库/用户/表空间信息)
├── init_cluster.json       # 节点初始化配置文件,记录节点角色、端口等核心信息
├── internal.auto.conf      # 记录自动生成的数据库id
├── log                     # 节点运行日志目录
├── pg_commit_ts            # 事务提交时间戳目录,记录事务提交时间,支撑时间点恢复与一致性校验
├── pg_distributedlog       # 分布式事务日志目录,存储跨节点两阶段提交日志,保障分布式事务原子性
├── pg_dynshmem             # 动态共享内存目录,存储并行查询的进程间通信缓存,自动分配释放
├── pg_hba.conf             # 客户端访问控制配置文件,定义IP、用户、数据库的访问规则与认证方式
├── pg_hba.conf.bak         # pg_hba.conf 的备份文件,用于访问控制配置错误时回滚
├── pg_ident.conf           # 身份映射配置文件,实现操作系统用户到数据库用户的权限映射
├── pg_logical              # 逻辑复制配置目录,存储复制槽、解码插件数据,支撑外部数据同步
├── pg_multixact            # 多事务并发控制目录,管理共享更新场景的事务锁与ID映射,避免并发冲突
├── pg_notify               # 异步通知目录,存储LISTEN/NOTIFY机制的消息数据,支撑应用与数据库异步通信
├── pg_replslot             # 复制槽目录,记录主从复制日志同步位点,有domino流的日志使用
├── pg_serial               # 序列化事务目录,存储序列化隔离级别下的冲突检测信息,避免并发数据问题
├── pg_snapshots            # 事务快照目录,存放显式导出的快照,支撑时间点查询、并行备份
├── pg_stat                 # 持久化统计信息目录,存储表行数、索引使用率等长期运行指标
├── pg_stat_tmp             # 临时统计信息目录,实时收集近期运行指标,定期同步到pg_stat
├── pg_subtrans             # 子事务状态目录,记录嵌套事务的提交/回滚状态,保障事务一致性
├── pg_tblspc               # 表空间符号链接目录,存放自定义表空间到实际存储路径的链接
├── pg_twophase             # 两阶段提交目录,存储分布式事务准备阶段数据,重启后自动处理残留事务
├── PG_VERSION              # 数据库版本标识文件,记录内核大版本号,用于集群版本校验
├── pg_wal                  # 预写事务日志目录,存储事务预写日志,支撑故障恢复与主从复制
├── pg_xact                 # 事务状态目录,存储事务提交/回滚状态及事务ID与WAL日志映射关系
├── postgresql.auto.conf    # 无需修改的文件
├── postgresql.conf         # 节点核心配置文件,定义内存分配、连接数、日志级别等运行参数
├── postgresql.conf.bak     # postgresql.conf的备份文件,用于参数配置错误时回滚恢复
├── postmaster.opts         # 进程启动参数文件,记录postmaster进程的启动命令行参数
└── postmaster.pid          # 核心进程PID文件,记录postmaster进程ID、启动时间、端口等

SEGMENT 节点目录结构

├── base                 # 用户数据库数据存储目录,每个数据库对应独立OID子目录,存储表、索引等物理文件
├── current_logfiles     # 日志文件路径映射文件,记录当前活跃日志的存储路径,支撑日志轮转
├── fts_probe_file.bak   # FTS故障检测服务备份文件,存储节点探测状态,用于故障快速恢复
├── global               # 集群全局系统元数据目录,存储共享系统表(数据库/用户/表空间信息)
├── internal.auto.conf   # 记录自动生成的数据库id
├── log                  # 节点运行日志目录
├── pg_commit_ts         # 事务提交时间戳目录,记录事务提交时间,支撑时间点恢复与一致性校验
├── pg_distributedlog    # 分布式事务日志目录,存储跨节点两阶段提交日志,保障分布式事务原子性
├── pg_dynshmem          # 动态共享内存目录,存储并行查询的进程间通信缓存,自动分配释放
├── pg_hba.conf          # 客户端访问控制配置文件,定义IP、用户、数据库的访问规则与认证方式
├── pg_hba.conf.bak      # pg_hba.conf的备份文件,用于访问控制配置错误时回滚
├── pg_ident.conf        # 身份映射配置文件,实现操作系统用户到数据库用户的权限映射
├── pg_logical           # 逻辑复制配置目录,存储复制槽、解码插件数据,支撑外部数据同步
├── pg_multixact         # 多事务并发控制目录,管理共享更新场景的事务锁与ID映射,避免并发冲突
├── pg_notify            # 异步通知目录,存储LISTEN/NOTIFY机制的消息数据,支撑应用与数据库异步通信
├── pg_replslot          # 复制槽目录,记录主从复制日志同步位点,有domino流的日志使用
├── pg_serial            # 序列化事务目录,存储序列化隔离级别下的冲突检测信息,避免并发数据问题
├── pg_snapshots         # 事务快照目录,存放显式导出的快照,支撑时间点查询、并行备份
├── pg_stat              # 持久化统计信息目录,存储表行数、索引使用率等长期运行指标
├── pg_stat_tmp          # 临时统计信息目录,实时收集近期运行指标,定期同步到pg_stat
├── pg_subtrans          # 子事务状态目录,记录嵌套事务的提交/回滚状态,保障事务一致性
├── pg_tblspc            # 表空间符号链接目录,存放自定义表空间到实际存储路径的链接
├── pg_twophase          # 两阶段提交目录,存储分布式事务准备阶段数据,重启后自动处理残留事务
├── PG_VERSION           # 数据库版本标识文件,记录内核大版本号,用于集群版本校验
├── pg_wal               # 预写事务日志目录,存储事务预写日志,支撑故障恢复与主从复制
├── pg_xact              # 事务状态目录,存储事务提交/回滚状态及事务ID与WAL日志映射关系
├── postgresql.auto.conf # 无需修改的文件
├── postgresql.conf      # 节点核心配置文件,定义内存分配、连接数、日志级别等运行参数
├── postgresql.conf.bak  # postgresql.conf的备份文件,用于参数配置错误时回滚恢复
├── postmaster.opts      # 进程启动参数文件,记录postmaster进程的启动命令行参数
└── postmaster.pid       # 核心进程PID文件,记录postmaster进程ID、启动时间、端口等

etcd 数据目录

目录路径

/etc/matrixdb6/recover_physical_cluster.json 中有 etcd 目录的地址

目录结构

.
├── data  # ETCD 核心数据持久化目录(YMatrix 集群协调的“数据基石”)
└── log   # ETCD 运行日志目录(故障排查核心依据)

日志目录

工具日志目录

/home/mxadmin/gpAdminLogs/
├── check-version_20251221.log  # 记录验证与 etcd 集群的连通性,
├── gpconfig_20251113.log       # 记录 gpconfig 工具的操作
├── mxdeletesystem_20251201.log # 记录 mxdeletesystem 工具执行的 “删除分布式系统资源” 操作
├── mxstart_20251221.log        # 记录 mxstart 工具的执行过程
├── mxstate_20251203.log        # 记录 mxstate 工具执行的集群状态检查结果
└── mxstop_20251221.log         # 记录 mxstop 工具(集群停止脚本)的执行过程

组件日志目录

/var/log/matrixdb6/
├── cluster_fgd4USi2WTNdsv7dhbXzwu.log          # 记录cluster...进程操作的日志
├── replication-2_fgd4USi2WTNdsv7dhbXzwu.log    # 记录replication-2...进程操作的日志
├── replication-4_fgd4USi2WTNdsv7dhbXzwu.log    # 记录replication-4...进程操作的日志
└── shard_fgd4USi2WTNdsv7dhbXzwu.log            # 记录shard_...进程操作的日志
......