SDE10.1 无法连接的问题解决

 环境

         数据库/操作系统:Oracle 10.0.2.4/AIX6.1

         ArcGIS/操作系统:10.1/Windows 2008 R2

问题

         用户数据库服务器断电,导致整个数据库挂掉。数据库管理员采用了全库备份的方式对数据进行了备份,并重新创建的数据库实例,同时将原有的数据全库导入到新的实例中。在这个过程中,SDE空间库也是采用了全库备份及恢复的方式。

         待数据库恢复回来后,在ArcMap中连接SDE时,提示【连接失败,操作失败】的问题。

原ArcMap所在的机器已经安装了Oracle 32位客户端软件。在数据库挂掉之前,GIS的整个环境是正常运行。同时,SDE库中用户使用到了ST_Geometry函数,在执行此类函数时也报错。

解决

         最早的解决方案是:1、备份数据;2、使用【创建地理数据库】工具重构SDE空间库。但在测试时发现,使用数据库的其他账号无法在ArcMap连接到数据库。由于从10.1开始,直连方式下是可以直接连接到数据库中,如果这一步无法执行的话,那么这个方式的第二步也就无法执行。

         后来,转换思路,检查执行ST_Geometry函数看看状况。在执行的过程中,报错。由于是重新全库导入,所以怀疑是不是ST_Geometry没有编译过来,又重新编译了一次(在PLSQL 中编译),在编辑的过程中提示【 identifier 'SYS.DBMS_LOCK' must be declared】、【identifier 'SYS.DBMS_CRYPTO' must be declared】和【identifier 'SYS.DBMS_PIPE' must be declared】的错误,看症状应该是SDE没有这方面的权限。执行赋予SDE权限命令:

         GRANT EXECUTE ON SYS.DBMS_LOCK TO SDE;

       GRANT EXECUTE ON SYS.DBMS_LOCK TO SDE;

GRANT EXECUTE ON SYS.DBMS_LOCK TO SDE;

       重新编译后即可正常执行ST_Geometry函数以及在ARCMap中连接到SDE空间库,经过测试整个空间库正常工作。

相关推荐