在Oracle数据库中部署多个SDE服务

2014-11-24 17:44:55 · 作者: · 浏览: 0

问题:


目的:


在机器上安装了oracle实例,默认会产生一个数据库实例(SID为 Orcl),在这个数据库实例上安装了一个SDE(sde服务名为 esri_sde)。现在通过这个oracle的工具产生了另外一个数据库实例(SID为 SDEInst),现在的目的是:在这个SDEInst数据库实例上部署一个SDE。


操作过程:


1、 使用DBCA产生SID为SDEInst的数据库实例,然后在这个数据库实例创建了一个用户(其用户名为:sde,只赋予了角色权限[Connect、DBA、RESOURCE],其他权限默认),用户对应的表空间也是自己创建的。


2、安装ESRI全球网上提供的方法创建、修改文件。具体如下:


I、拷贝 %SDEHOME% 到一个新的位置(%SDEHOME%我的拷贝的内容为D:\Program Files\ArcSDE 9.2\ArcSDE\ora9iexe),然后重命名为ora9iexe2.


II、用数据库实例SID(这里为SDEInst)更新dbinit.sde 文件内容(ArcSDE\ora9iexe2\etc下),将它更改为:# Oracle SID for service demo_sde.


set ORACLE_SID = SDEInst


III、更新 ArcSDE\ora9iexe2\etc\services.sde文件,设置它的服务名和端口号为 demo_sde 5152/tcp #ArcSDE for Oracle


IV、在C:\WINDOWS\system32\drivers\etc\services 添加上服务名和端口号demo_sde 5152/tcp


V、清除了ArcSDE\ora9iexe2\etc由ora9iexe带来的日志文件的内容---sde_setup.log


VI、按照ESRI全球网的方法,需要更新giomgr.defs和dbtune.sde 文件的内容,由于不知道如何具体设置参数,就没有更改过.使用 Orcl中的sde参数应该没有问题吧


3、创建ArcSDE和Geodatabase的系统表和存储过程等,这里使用的命令是:


sdesetup -o install -d ORACLE9I -H "D:\Program Files\ArcSDE 9.2\ArcSDE\ora9iexe2" -u sde -p sde


这个命令行中,开始也遇到了很多问题。后来用户使用自己创建的 sde 用户并附上 DBA权限就创建成功了。但是ESRI全球网上对用户 -p的描述为:Database administrator password,为什么我用其他用户名的DBA用户就不行?这个问题就这样过了,毕竟已经创建成功了。


4、创建sde服务(这个是出错的地方)


使用SDE命令行:sdeservice -o create -d ORACLE9I,SDEInst -p sde -i demo_sde -H "D:\Program Files\ArcSDE 9.2\ArcSDE\ora9iexe2" -n .


可是在使用运行的过程中总是抱如下错误(参考图片): Wrong RDBMS Name "ORACLE9I,SDEInst "。 我的数据库是ORACLE9I,并且如上描述我的SID为SDEInst,是没有问题的!!!?


后来我尝试将"-d ORACLE9I,SDEInst" 换成"-d ORACLE,SDEInst" 居然创建成功了,但是这个名为demo_sde的SDE服务还是启动不起来,对比看了一下成功运行的SDE服务,发现这个demo_sde的SDE服务少了依赖的数据库服务OracleServiceSDEINST,也就是说这个SDE服务没有绑定到oracle实例上。


giomgr进程答案:


查看了下应用程序日志,上面主要是sde许可的问题。其实是很简单的问题。


(以前一直服务信息是在系统日志里面,没有看应用程序日志)