修复损坏的PostGIS扩展
·
环境
系统平台:银河麒麟 (鲲鹏)
版本:4.5.8
症状
应用报错信息如下:
错误: 无法加载库 "/opt/highgo/hgdb-see-4.5.8/lib/postgresql/postgis-3.so": /opt/highgo/hgdb-see-4.5.8/lib/postgresql/postgis-3.so: undefined symbol: GEOSCoordSeq_copyToBuffer

问题原因
在已部署PostGIS的数据库环境中,后续安装超图Yukon(禹贡)空间数据库扩展包时,由于二者之间存在组件冲突,导致PostGIS依赖的若干核心库文件被意外删除或覆盖,进而造成PostGIS功能失效。
解决方案
具体修复流程如下:
1.查询当前已经安装的postgis软件包
rpm -qa | grep gis

2.登录数据库查询当前库下已安装的扩展以及可获得的扩展组件
登录数据库:
psql -U sysdba
查看当前可获得的postgis相关的扩展,发现相关内容已缺失:
select * from pg_available_extensions where name like '%gis%';
查看当前已安装的扩展:
\dx

3.postgis软件卸载及重新安装
1) 验证数据库授权在有效期内:
hg_lic
2) 数据库执行检查点操作:
psql -U sysdba -c "checkpoint;"
3) 停止数据库服务:
pg_ctl stop
4) 验证是否还有数据库进程存在
ps -ef | grep postgres | grep -v grep
5) 备份当前数据目录以及安装目录
cp -rp /data/highgo/data /backup/ &
cp -rp /opt/highgo /backup/ &
6) 卸载PostGis
rpm -e postgis-hgdb-see-4.5.8.8-efc2bbd.aarch64
7) 重新安装postgis
rpm -ivh gis310-hgdb-see-4.5.8.8-efc2bbd-20240814.aarch64.rpm
8) 验证postgis功能可用,不需要重新创建postgis扩展
3.1.0版本完整的postgis扩展包含以下内容:
select * from pg_available_extensions where name like '%gis%';

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)