数据库管理
概述
本页介绍已安装的 PlantPulse 平台所使用的数据存储的配置、连接方法、状态检查、基本调优策略。
平台内置并按用途运行 4 种数据存储。
| 存储 | 用途 | 默认端口 | 备注 |
|---|---|---|---|
| Aster TSDB | 时序 / 大数据量数据(标签点、事件) | 9042 (CQL) | 键空间 pp。平台的单一大型数据库引擎 |
| PostgreSQL | 元数据存储(主数据 / 配置数据) | 5432 | 数据库 pp,模式 pp |
| Valkey (Redis 兼容) | 缓存 / 会话 / 实时状态 | 6379 | 可使用 redis-cli 连接 |
| RustFS | 对象存储 (S3 兼容) | 9000 (S3) / 9001 (控制台) | 存储文件 / 大数据量产出物 |
此外,还有分析层(Spark / Kyuubi)使用的 Hive Metastore + Iceberg 表格式,由于由平台内部管理,因此无需额外的运维操作。
注意:Aster TSDB 的 7000(集群 gossip)、7199(JMX) 端口为内部通信用。请勿暴露到外部。
连接方法
以下命令均以 数据湖容器内部 为基准。四个存储均在 plantpulse-datalake 的一个容器内运行,因此不带参数打开 shell 即可直接进入该容器。
cd /opt/kopens/plantpulse-platform-docker/bin
./shell.sh
连接账号和密码通过环境变量(PP_CASSANDRA_USER/PASSWORD, PP_PG_USER/PASSWORD, PP_REDIS_PASSWORD 等)管理。
| 项目 | 位置 |
|---|---|
| 实际生效的值 | 主机的秘密边车 /etc/kopens/plantpulse-platform.env (权限 0600) |
| 更改值的方法 | bin/passwd.sh — 直接修改文件不会生效 → 密码轮换 |
路径确认 — 秘密边车的正本为
/etc/kopens/plantpulse-platform.env一个(权限0600)。旧安装中/opt/kopens/下可能留有同名文件,但不读取,安装脚本会将其恢复为正本 → 环境变量参考
Aster TSDB (cqlsh)
cd /opt/kopens/plantpulse-platform/plantpulse-storage/db/cassandra/bin
./cqlsh -u <PP_CASSANDRA_USER> 127.0.0.1 9042
-- 키스페이스 / 테이블 확인
DESCRIBE KEYSPACE pp;
SELECT table_name FROM system_schema.tables WHERE keyspace_name = 'pp';
PostgreSQL (psql)
使用 PostgreSQL 18,客户端二进制文件位于 /usr/pgsql-18/bin。
/usr/pgsql-18/bin/psql -h 127.0.0.1 -U <PP_PG_USER> -d pp
-- 메타스토어 스키마 확인 (기본 search_path 는 pp 스키마)
\dn
\dt pp.*
Valkey (redis-cli)
redis-cli -h 127.0.0.1 -p 6379 -a '<PP_REDIS_PASSWORD>' ping
注意:仅用于查询(SELECT / DESCRIBE / ping)用途。数据修改或模式变更请参考 注意事项。
状态检查
Aster TSDB 节点状态
pd node 动词包装 nodetool 提供。
cd /opt/kopens/plantpulse-platform/plantpulse-datalake-cli/bin
./pd node status
正常状态下,节点显示为 UN(Up / Normal)。如果出现 DN(Down) 节点,需要重启存储或检查日志。
PostgreSQL 状态
/usr/pgsql-18/bin/pg_isready -h 127.0.0.1 -p 5432
/usr/pgsql-18/bin/psql -h 127.0.0.1 -U <PP_PG_USER> -d pp -c "SELECT version();"
集成状态仪表盘 / 健康检查 API
# 포트별 서비스 상태 + CPU / 메모리 / 디스크 요약
cd /opt/kopens/plantpulse-platform/plantpulse-datalake-cli/bin
./status.sh
# 헬스 API — cassandra / postgres 컴포넌트 상태 포함
curl -kfsS https://127.0.0.1:4950/api/health | jq
请确认健康检查 API 响应中的 cassandra、postgres 组件是否正常(UP)。
模式 / 数据布局
| 项目 | 位置 | 内容 |
|---|---|---|
| Aster TSDB 键空间 | pp | 时序数据表 (tm_*) |
| PostgreSQL 模式 | 数据库 pp / 模式 pp | 主数据 / 配置表 (mm_*) |
| 数据文件路径 | /data1/pp-data | 挂载为 Docker 卷 pp-data |
PostgreSQL 元数据存储模式已在 镜像构建时预先填充,因此安装后无需额外的模式创建工作。连接时 search_path 已设置为 pp 模式,因此只需使用表名即可查询。
所有数据存储在 /data1/pp-data(卷 pp-data) 下,因此即使删除容器或更新镜像,数据也会保留。
调优默认值 (出厂设置)
Aster TSDB 根据平台工作负载按以下默认值出厂。
| 项目 | 出厂默认值 | 说明 |
|---|---|---|
| JVM 堆 | -Xms16G -Xmx16G | 初始 / 最大堆相同 (防止动态调整) |
| GC | ZGC (Generational) | 低延迟垃圾收集器 |
| 文件缓存 | file_cache_enabled: false | 利用 OS 页缓存,取消 off-heap 上限 |
| Direct 内存 | -XX:MaxDirectMemorySize=6G | 用于 memtable off-heap + IO 缓冲区 |
重要 — 配置更改路径:部署在各服务路径下的配置文件(例如 Aster TSDB 的
cassandra.yaml、jvm-server.options)是plantpulse-datalake-cli/config/templates/中模板的 渲染产物。如果直接修改此文件,下一次重启 / 重新配置(configure)时会被模板值覆盖,导致更改丢失。如需更改调优值,请务必按以下路径操作。
- 修改主机
/etc/kopens/conf中的模板(绑定挂载到容器的plantpulse-datalake-cli/config/templates)或bin/env.sh的PP_*变量- 在数据湖容器内执行
pd config render— 重新渲染模板,并部署到各服务路径- 重启相应服务 (例如
pd restart storage)由于模板是 主机目录,操作员可以在主机上直接编辑,即使重新安装,编辑内容也会保留。
如果需要更改默认值,建议先与技术支持团队协商。
备份概述
包括数据库在内的所有数据存储在 pp-data 卷中,因此按卷备份是最简单、最安全的方法。
cd /opt/kopens/plantpulse-platform-docker/bin
# 기본 세트 (pp-data · pp-security) 를 한 번에
./backup.sh
# 볼륨 하나만 — <volume-name> [보관일수] [백업경로]
./tools/backup-volume.sh pp-data 7 /data1/pp-backup/docker-volume
在 backup.sh 的默认集合中,pp-backup 是备份的 目的地,因此 pp-temp 对恢复无用而被排除。如有需要,可通过参数指定进行备份。
有关时间点恢复、按数据库单独备份、外部存储同步等详细步骤,请参考 管理员指南 - 备份与恢复 页面。
注意事项
- 禁止对运营数据库直接执行 DDL — 请勿直接执行表创建 / 更改 / 删除(CREATE / ALTER / DROP / TRUNCATE)。模式由平台通过版本迁移管理,任意更改可能导致更新失败或数据丢失。
- 避免直接修改数据 — 主数据(
mm_*)请通过管理控制台界面更改。直接 UPDATE 数据库可能导致与缓存 / 集成服务不一致。 - 禁止使用嵌入式 / 替代数据库 — 不支持将内置 Aster TSDB / PostgreSQL 替换为其他数据库产品或嵌入式数据库的配置。
- 禁止直接删除数据文件 — 请勿为了释放磁盘空间而直接删除
/data1/pp-data下的文件。如需清理数据,请联系技术支持团队。 - 账号 / 端口更改通过环境变量 — 如需更改数据库账号或端口,请采用环境变量(
PP_*)覆盖方式,而非直接修改配置文件。
技术支持
如有数据库运维相关问题,请随时联系我们。
| 负责人 | 联系方式 |
|---|---|
| 技术支持 | webmaster@kopens.com |