Oracle和ArcSDE 分开部署方法(转)
Oracle 服务安装在一台服务器,ArcSDE 服务安装在另外一台服务
1) 在客户端安装Oracle 客户端软件,配置本地网络服务名。
2) 如果Oracle 数据库中已经建立sde 用户和sde 的资料档案库,则执行4。如果要全新安装,则先把sde用户和sde表空间删除掉:
删除sde用户:drop user sde cascade;
如果提示无法删除,那里会话中有sde的连接,需要删除会话的sde连接,如下:
SQL
〉DROP USER USER1 CASCADE
ERROR:ORA-01940: cannot drop a user that is currently connected
由于当前用户正连接到数据库
,所以无法删除
解决办法:
1、查询此用户的会话进程,
SQL〉SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='USER1';
SID SERIAL#
---------- ----------
24 25341
86 18117
2、结束此用户的所有会话
SQL>ALTER SYSTEM KILL SESSION '24,25341';
System altered.
SQL>ALTER SYSTEM KILL SESSION '86,18117';
System altered.
3、删除用户
SQL〉DROP USER USER1 CASCADE;
之后删除sde表空间,我当时就是以为删除sde用户就可以了,没有删除表空间,走了好多弯路,老是不行。其实如果没有删除表空间,还会有很多表在表空间里,没有清空,所以也需要删除。
可以先查看所有的表空间,再删除:
select * from dba_tablespaces;
drop tablespace sde;
这里候是一个全新的环境可以进行post installing了。
3) 使用Oraclefor ArcSDE post installation 建立sde 用户和sde 的资料档案库,不需要到建设sde服务那一步。
4) 如果已存在,先删除:sdeservice -o delete ,然后执行命令sdeservice -o create -p [sde 用户密码] -dORACLE9I,[oracle 本地网络服务名] -n -i esri_sde 。
sdeservice -o create -d oracle10g,racdb-31 -p sde -i esri_sde -n
注意:sde 的密码和Oracle 本地网络服务名使用实际数值。
5) 修改C:\ArcGIS\ArcSDE\ora9iexe\etc\dbinit.sde 中的设为set LOCAL=[oracle 本地网络服务名]
注意使用local 而不是Oracle_sid。
6) 检查C:\WINDOWS\system32\drivers\etc\services 是否有esri_sde3 5153/tcp #ArcSDE for Oracle9i 的记
录。
esri_sde 5151/tcp #ArcSDE for Oracle10g
8) 启动sde 服务,如果启动失败,重起电脑。在这种情况下,ArcSDE 服务中,“依存关系”项是没有相关Oracle 服务的。