PostgreSQL 11.2升级至14.0后新旧数据目录大小不符问题咨询
PostgreSQL 11.2升级至14.0后自定义子目录缺失的原因说明
不属于操作错误,这是pg_upgrade的正常行为
pg_upgrade的设计逻辑仅处理PostgreSQL原生管理的系统文件和目录(比如base/、pg_wal/、pg_stat_tmp/这类默认目录),不会自动识别和迁移旧数据目录下用户手动创建的自定义子目录——这类内容不属于PostgreSQL核心数据范畴,所以升级过程不会处理,自然不会出现在新数据目录中。
新旧目录大小不符的直接原因
- 旧数据目录的1.1GB包含了两部分:约550MB的自定义子目录内容,加上PostgreSQL原生核心数据(约550MB)
- 新数据目录仅同步了PostgreSQL原生核心数据,再加上初始的41MB基础文件,总大小自然远小于旧目录
后续处理建议
- 手动迁移自定义目录:先确认这些子目录的用途(比如应用备份、临时文件、自定义日志等),如果新环境需要使用,直接复制到新数据目录对应位置,注意用
chown postgres:postgres调整目录所有者,保持和旧目录权限一致 - 验证核心数据完整性:执行
psql -c "\dt"查看所有用户表,通过SELECT count(*) FROM your_table_name;核对关键业务表的数据行数,确保核心数据已完整迁移 - 清理冗余内容:如果自定义子目录是临时生成的非必要数据,可直接舍弃,无需迁移
内容的提问来源于stack exchange,提问作者Bala
相关产品推荐
相关产品推荐

