Oracle客户端程序无法访问ST_Geometry问题解决(ORA-28575错误)

一、背景:

1、刚刚进行了Oracle 12C数据库的集群迁移。
迁移前的Oracle环境:Windows Server 2012 R2 Standard 64位。
迁移后的Oracle环境:Linux RedHAT Enterprise 6.8
Oracle的版本没有改变,都是12.1.0.1。
迁移方式:在新环境中创建Oracle 的RAC集群—>将原环境下的数据库利用export工具进行全库逻辑备份—>在新环境下使用Import工具进行全库导入—>给SDE用户赋予以下权限—>重新编译SDE里的所有对象Exec dbms_utility.compile_schema( 'SDE', compile_all => FALSE );

GRANT EXECUTE ON dbms_pipe TO public;
GRANT EXECUTE ON dbms_lock TO public;
GRANT EXECUTE ON dbms_lob TO public;
GRANT EXECUTE ON dbms_utility TO public;
GRANT EXECUTE ON dbms_sql To public;
GRANT EXECUTE ON utl_raw TO public;

二、 问题描述:

Oracle 12C RAC进行数据库迁移后,无法使用客户端工具访问ST_Geometry。在SQL语句中使用SDE.ST_ASTEXT(SHAPE)进行类似查询时,提示ORA-28575错误:无法打开与外部过程代理程序的 RPC 连接。

三、问题分析:

1、在ARCMap中连接SDE企业地理数据库正常,连接其他Schema下的地理数据也正常。
2、ARCMap中导入、导出Oracle的地理数据也正常。
3、连接Oracle数据库的使用Easy Connect连接方式。
4、查询Oracle数据库中使用的ST库的路径:

SELECT file_spec
 FROM user_libraries
 WHERE library_name = 'ST_SHAPELIB';

查询得到的结果是File_spec中记录的还是原来Windows环境下的st_shapelib.dll的路径。
5、检查现有集群环境的Oracle安装目录中(本例为Linux操作系统,通过查看oracle用户下$oracle_home环境变量查询得到Oracle安装目录)是否存在ST库(windows下为st_shapelib.dll,linux下为libst_shapelib.so),没有找到对应的ST库。
6、由此可以得出在部署新的Oracle集群环境时,没有部署ST_Geometry的访问功能。

四、问题解决

1、从ARCMap或ArcGIS Server的安装路径下,找到Oracle服务器所在环境的ST库。

Windows 上的 ArcGIS Server:<ArcGIS Server installation directory>\ArcGIS\Server\DatabaseSupport\Oracle\Windows64

Linux 上的 ArcGIS Server:<ArcGIS Server installation directory>/arcgis/server/DatabaseSupport/oracle/linux64

ArcMap:<ArcMap installation directory>\ArcGIS\Desktop<version>\DatabaseSupport\Oracle\Windows64

2、将ST动态库文件上传至Oracle服务器中。如 O R A C L E H O M E / b i n 。 3 、 在 O r a c l e 数 据 库 中 重 新 创 建 S T S H A P E L I B 库 。 在 本 例 中 , 将 S T S H A P E L I B 库 设 置 为 O r a c l e l i n u x 服 务 器 上 ORACLE_HOME/bin。 3、在 Oracle 数据库中重新创建 ST_SHAPELIB 库。 在本例中,将 ST_SHAPELIB 库设置为 Oracle linux 服务器上 ORACLEHOME/bin3OracleSTSHAPELIBSTSHAPELIBOraclelinuxORACLE_HOME/bin目录下的libst_shapelib.so

CREATE or REPLACE LIBRARY ST_SHAPELIB
 AS '\oracle\app\bin\libst_shapelib.so';

4、重新编译 sde.st_geometry_shapelib_pkg 包。

ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE
 REUSE SETTINGS;

5、重新连接客户端应用。

说明:安装ESRI的官方文档,配置客户端访问ST_Geometry时需要配置extproc文件。在该文件中设置SET EXTPROC_DLLS值为ST库所在文件。在本例中,没有配置extproc文件也访问正常。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值