Flyingis

Fusion Center Lab.
posts - 110, comments - 1199, trackbacks - 33, articles - 8

分布式部署 ArcSDE 和 Oracle 服务

Posted on 2007-10-14 22:04 Flyingis 阅读(1339) 评论(15)  编辑 收藏 网摘 所属分类: ArcSDE

    作者:Flyingis

    ArcEngine、ArcIMS或ArcGIS Server开发时,SDE和Oracle数据库部署在一台服务器上早已是家常便饭,像我的notebook就是一锅出,什么都有,用起来方便,甚至不少最终产品部署的时候都是如此,考虑更多的是webserver集群,Oracle双机热备等等,SDE和Oracle就凑合放在一块了。那么,什么时候需要将两者分开呢?分散服务负载是一种考虑,经典服务器配置理论就是一台服务器一个核心服务,不仅分散服务器的负载,还便于压力测试,方便调试与维护,或是在不同的操作系统平台上进行安装配置,如Oracle数据库在Solaris系统,SDE安装在Windows2003或Suse10企业版上,具体应该如何配置呢?下面给出教条一二三,针对ArcSDE9.x和Oracle9i/10g:

1.首先应该将Oracle安装在单独服务器上并进行dbca,正常监听和启动服务。
2.在SDE服务器上安装Oracle Network Software,以便在SDE服务器上执行sql操控远程Oracle服务器,相对于SDE服务器是Oracle服务器的一个客户端。
3.根据不同的操作系统安装SDE,post时需要做一点调整,在Windows平台上,需手工创建sde服务,因为post无法为远程SDE服务器创建sde服务。
sdeservice -o create -d ORACLE10G,ORACLE_SID -i esri_sde -p password -n
    注意,后面要加上参数"-n"!Windows平台上不能分布式部署SDE8.x。

    环境变量设置:

    SDE服务器只有写入相应的环境变量后,才能让Oracle Network Software找到Oracle服务。Windows系统中,需要设置SDEHOME\etc\dbinit.sde,加入set LOCAL=netservicename,在sde服务创建后写入。Unix系统要在环境变量中添加TWO_TASK,和Oracle双机安装SDE一样,当然少不了TNS_ADMIN。SDE服务启动时,giomgr进程会读取dbinit.sde里的变量值,它们会覆盖.cshrc和.profile中的值,这里需要注意。

    OK,这样就配置好了,如果发现服务还是存在问题,多检查环境变量的设置、Oracle Network连通性,最后重启服务器也许就能解决问题,看到这里,当自己有多余服务器时,要不要尝试一把!

Flyingis @ China
email: dev.vip#gmail.com
blog: http://flyingis.cnblogs.com/

Feedback

#1楼    回复  引用    

2007-10-14 23:00 by soa [未注册用户]
好东西,学习ing

#2楼    回复  引用    

2007-10-15 17:39 by xykqdy [未注册用户]
请问一下,aix上面如何配置oracle和arcsde呢,一个在数据服务器一个是应用服务器?以前没有接触过arcsde,oracle也只是在windows上面用过。菜鸟一个。。

#3楼 [楼主]   回复  引用  查看    

2007-10-16 11:28 by Flyingis      
可以将oracle和sde放在一起,aix上对应的就是两种不同的服务,需要不同的用户管理,sde需要创建表空间,如果是本地存储,则直接放在oracle默认的oradata中。

windows上配置sde服务都是图形化的post installation,aix需要命令操作,操作的步骤和windows post installation基本相对应。

#4楼    回复  引用    

2007-10-22 14:09 by xykqdy [未注册用户]
windows上面的post installation完成之后就可以直接用shp2sde命令往oracle导入数据了吗,还是之前要进行其他操作?谢谢.
我直接用命令,但是出错:unable to create a connection on server **** for user ***
sde code (-37): dbms table not found.
出错之后从哪几个地方查找错误呢,环境变量的设置是在我的电脑右键那里、Oracle Network连通性怎么检查呢?
不好意思,新手,问题比较简单

#5楼 [楼主]   回复  引用  查看    

2007-10-29 11:05 by Flyingis      
post完成后可以shp2sde,oracle network连通性可以用oracle客户端去访问服务器检查。你的错误很有可能是oracle服务的问题。

#6楼    回复  引用    

2007-10-29 11:18 by bdbox [未注册用户]
我按你所述方法做了,访问时速度怎么变慢了?为什么啊,就是在地图刚加载时,或全图显示时。

#7楼 [楼主]   回复  引用  查看    

2007-10-29 11:22 by Flyingis      
第一次连接SDE空间数据库时需要做一次全表的遍历,所以速度慢,连接上以后就好了。

#8楼    回复  引用    

2007-10-31 14:16 by bdbox [未注册用户]
客户用了一个ORACLE RAC做了个数据库集群,然后将sde服务单独放在另一台机器上。有几个feature class(线) 数据量达到400万。但当访问这些feature class时,速度奇慢,勘至取不到数据(data not available)。我将sde服务指向另一台非RAC的数据库服务器,结果很正常。是否RAC会对连接有一定的影响?或是什么原因?哎~~我型了二周了。

#9楼 [楼主]   回复  引用  查看    

2007-10-31 15:18 by Flyingis      
影响sde速度的原因有很多,可以先从这几个方面考虑。
1.操作系统版本、sde版本和oracle版本需要符合官方要求,因为你是大数据量的企业级应用,不能凑合用oracle10.2.0.1。
2.rac网络传输是否有问题,就是说正常对该oracle数据库进行读写,用一般二维表进行压力测试,是否会有异常情况,如速度慢,数据无法读取等。
3.参考这篇文章进行sde优化:
http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=24518

#10楼    回复  引用    

2007-12-06 14:57 by bdbox [未注册用户]
据Esri公司的技术人员讲,考滤到性能因素,arc sde安装在其中一台机器上比较好。像以上您的处理,在性能上是否会有影响?提高还是降低了呢?

#11楼    回复  引用    

2007-12-06 14:58 by bdbox [未注册用户]
arc sde安装在其中一台机器上比较好,指的是RAC集群其中的一台服务器。

#12楼 [楼主]   回复  引用  查看    

2007-12-06 15:09 by Flyingis      
你可以将sde部署在RAC中的一台服务器上,然后通过直连的方式连接sde空间数据库,这种方式比较好。将sde单独部署在一台服务器的前提,一般是数据库服务器负载很大,或是需要单独部署每个主要的服务,从访问速度上讲,当然是在sde和oracle在一起快,访问带宽没有其他限制嘛。

#13楼    回复  引用    

2008-04-27 18:40 by hsg77 [未注册用户]
问个问题:
我在安装ArcSDE到SQLServer2005中时想用SDE数据库作sde系统管理库不存储空间数据,用新建一个数据库如TT来存储空间数据,但用ArcCatalog向TT数据库中拖入要素类(mdb中),说创建要素类失败,dbms table not found,
但我在TT数据库中新建要素集FeatureDataset可以,但在TT数据库中新建要素类FeatureClass就报上面的错误:创建要素类失败,dbms table not found,
不知是什么原因? 根dbo schema /sde schema 有没有关系(我安装时选的sde schema)(TT数据库是dbo架构,但我改为sde架构还是不行!急呀!
我在Oracle10g中用这种方式来管理空间数据时可以用ArcCatalog向TT数据库(oracle用户数据库)中拖入要素集和要素类(mdb中),

还有个问题:像用这种方式存储空间数据在ArcSDE中(SQLServer/Oracle),关于空间数据备份与恢复有没有快速又直接的方法!
(1)用拖动方法备份与恢复(sqlserver/oracle<--->mdb)
(2)用数据库自有方法oracle(imp/exp 方法) sqlserver(任务->备份/恢复)
但是sde用户(oracle)或库(sqlserver)中相关资料(关于图层在SDE系统表的信息GDB_开头的系统表中内容)没有备份和恢复?

再问个问题:成都有没有ESRI的培训课程的培训班? 北京有,感觉好远!

#14楼 [楼主]   回复  引用  查看    

2008-04-29 16:41 by Flyingis      
1."我在安装ArcSDE到SQLServer2005中时想用SDE数据库作sde系统管理库不存储空间数据",没有明白是什么意思?

2.对于SDE for Oracle备份/恢复,通常就是EXP/IMP,sqlserver还要统一用户id

3.成都没有系统的现场培训课程,但可以参加网络培训

#15楼    回复  引用    

2008-06-04 15:19 by hsg77 [未注册用户]
就是在SQLServer2005中安装完ArcSDE 中间件后有一个sde 数据库,这个SDE数据库 不拿来存储空间数据,
网络培训 是 怎么个培训过程? 谢谢!

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-10-14 22:41 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: