You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teslamate项目Postgres数据库备份失败:pg_dump执行dumpBaseType返回0行

解决pg_dump执行时dumpBaseType('24686')报错的问题

这个错误的核心是pg_dump试图获取OID为24686的数据库类型信息,但该类型不存在或已损坏,导致查询返回空结果。以下是分步排查和修复方案:

1. 定位OID=24686对应的对象

进入Postgres容器执行SQL查询,确认该OID是否存在:

docker compose exec postgres-database psql -U teslamate teslamate

然后执行:

SELECT oid, typname, typnamespace FROM pg_type WHERE oid = 24686;
  • 如果查询无结果:说明该OID对应的类型已被删除,但数据库中仍有对象引用它。
  • 如果有结果:记录下typname(类型名称)和typnamespace(所属模式),后续针对性修复。

2. 查找引用该无效OID的对象

执行以下SQL查找所有依赖这个OID的数据库对象:

-- 查找依赖该类型的表、视图等对象
SELECT c.relname, c.relkind
FROM pg_depend d
JOIN pg_class c ON d.objid = c.oid
WHERE d.refobjid = 24686;

-- 查找使用该类型的列
SELECT table_name, column_name
FROM information_schema.columns
WHERE udt_name = (SELECT typname FROM pg_type WHERE oid = 24686);

通过结果定位到具体的表或列,比如Teslamate的某张业务表可能引用了已丢失的自定义类型(比如枚举类型)。

3. 针对性修复

情况1:自定义类型丢失(比如Teslamate的枚举类型)

Teslamate会使用一些自定义枚举类型(如charging_state、drive_state等),如果这类类型被意外删除,需要重新创建。可以对照Teslamate官方的schema定义(比如项目仓库里的setup.sql文件),重新创建对应的类型:

-- 示例:重新创建charging_state枚举类型
CREATE TYPE charging_state AS ENUM ('disconnected', 'charging', 'completed', 'stopped', 'error');

创建完成后,再次尝试执行pg_dump备份。

情况2:无法定位或修复类型,尝试绕过问题

  • 使用pg_dumpall替代pg_dump:它会备份整个Postgres实例,可能绕过单个类型的异常
    docker compose exec -T postgres-database pg_dumpall -U teslamate > /root/teslamate_full.bck
    
  • 排除有问题的表进行备份:如果找到引用无效类型的表,暂时排除它,先备份其他数据
    docker compose exec -T postgres-database pg_dump -U teslamate --exclude-table=problem_table teslamate > /root/teslamate_partial.bck
    

情况3:应急数据备份(直接复制数据目录)

如果上述方法都失败,可以直接备份Postgres的数据目录(需先停止容器避免数据损坏):

# 停止Postgres容器
docker compose stop postgres-database
# 复制数据目录(替换为你的实际数据卷路径,可通过docker inspect查看)
cp -r /var/lib/docker/volumes/teslamate_postgres_data/_data /root/teslamate_data_backup
# 重启容器
docker compose start postgres-database

4. 后续预防

  • 定期执行备份测试,避免等到需要备份时才发现问题
  • 避免直接在Teslamate的Postgres实例中手动删除自定义类型或修改schema
  • 升级Teslamate时,确保按照官方步骤执行,避免schema损坏

内容的提问来源于stack exchange,提问作者StigThomsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:53:13