在Oracle数据库中部署多个SDE服务
一、一个Oracle部署多个SDE服务(采用问题的方式提供答案)
问题:
目的:
在机器上安装了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许可的问题。其实是很简单的问题。
(以前一直服务信息是在系统日志里面,没有看应用程序日志)