转载请注明原文地址:http://www.cnblogs.com/litou/p/8028843.html
环境:Oracle 11g 11.2.0.1.0(双节点RAC群集),ArcGIS Desktop 10.1。
一般在Oracle单机实例的情况下需要存储ArcGIS空间数据,第一次需要使用ArcGIS工具箱中的Create Enterprise Geodatabase工具生成SDE用户、表空间及相应的管理表,这个在Oracle单机实例情况下是没有问题的。
但是在Oracle RAC群集的情况下使用该工具创建SDE相关内容时,会创建失败,具体错误原因为无法找到表空间的数据文件。这时打开Oracle控制台的表空间页面也报同样的错误。
这时使用DBA权限用户登录数据库,查看数据库的表空间文件情况,由于Oracle RAC使用的是ASM存储管理,并非一般的文件存储方式,而Create Enterprise Geodatabase工具中,SDE用户的默认表空间SDE_TBS的数据文件默认是放在Oracle HOME的本地路径上,并非ASM管理的存储上,导致表空间数据文件找不到。
参考《解决OracleRAC集群下创建SDE时报Stored procedures错误问题》的做法,错误是解决了,使用SDE用户存储和使用空间数据没有问题,但是其他非SDE数据库用户创建或导入空间数据,空间数据自动都存在SDE用户下,无法使用其他数据库用户保存空间数据。
解决办法:
1、如已使用过Create Enterprise Geodatabase工具并出现上面的报错,使用DBA权限用户登录数据库,删除SDE用户和SDE_TBS表空间。
a)删除SDE用户:drop user cascade;
b)删除SDE_TBS表空间:drop tablespace sde_tbs including contents;
2、通过Oracle控制台手动创建SDE_TBS表空间,这里SDE_TBS表空间的数据文件使用的是ASM存储管理。
3、再次使用Create Enterprise Geodatabase工具生成,这时SDE相关的东西就会创建成功,创建日志提示有个警告,但不影响使用。