在ArcGIS中如何使用Oracle直连方式连接oracle数据库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在ArcGIS中如何使用直连方式连接Oracle数据库
1.背景
直连方式比使用SDE方式更加稳定,特别是在大数据量处理的应用中,不易出场由SDE连接进程造成的gsvr错误。同时直连方式由于采用Orale客户端连接数据库,在数据库双机部署或集群部署时可以直接利用数据库的负载机制,如RAC,勿需额外的负载均衡服务器。
2.方法
在ArcGIS中使用直连,最简单和常用的工具莫过于ArcCatalog。
打开ArcCatalog,找到Database connections,选择添加空间数据库连接项:
双击后如下,填写连接参数。
使用SDE连接与直连的参数对比如下:
表中IP当采用SDE连接方式为SDE服务所在的IP。
3.遇到问题
在本机测试的过程中遇到一个离奇的问题,即直连本机好用,直连远程服务器不好使了。
采用直连方式可以连通本机39上的oracle服务器,其它连接参数不变把IP 修改为192.168.0.81后,连上的仍然是本机(39)的数据库。
考虑到81上的数据库为11g ,将service参数修改为sde:oracle11g直连81的Oracle,此时居然报错,连接服务器失败。
这个问题一直搹浅了很久,也没有找到原因。后来请教了专业人员,才知道还是对ArcGIS直连Oracle的原理不清楚。
4.分析直连原理
ArcGIS直连Oracle的原理见下图。首先ArcGIS直连Oracle是通过在ArcGIS 所在客户端上安装一个oracle client实现的。oracle client去连接oracle database,而不是采用SDE方式中的SDE服务去连接。
其次,ArcGIS客户端如ArcCatalog将连接请求发给oracle client时必须有一个与所请求的服务器对应的监听服务(Net lisenter)。监听服务可以使用oracle client的Net Manager管理工具配置。配置后的监听服务信息记录在一个Tnsnames.ora文件中,用过Oracle客户端的人对这个文件应该都不陌生,这个文件存储在“安装目录\db_1\NETWORK\ADMIN”下,因此高手也可以不用Net Manager管理工具配置,直接修改这个文件即可。
配置完成保存后,在文件Tnsnames.ora应该可以看到新加的监听服务,如下图:
可以使用Sqlplus检测监听服务是否成功启动。在cmd中运行sqlplus sde/sde@orcl81,如显示成功连接,则监听服务配置成功,可以继续在ArcGIS中的直连操作。
5.解决问题
现在再来解决前面提到的直连本机好用,直连远程服务器不好使的问题。
修改连接参数如下:
成功连接81的远程服务器。
再修改连接参数如下后进行连接测试:
仍然可以成功连接81的远程服务器,说明IP在直连中不是必须参数。
再修改连接参数如下后进行连接测试:
连接失败,说明Oracle版本信息不是填服务器版本,而是本机客户端版本,测试中本机为10g的数据库,服务器端为11g的数据库。
6.几个关键点
最后总结一下,在ArcGIS中使用直连的方式连接Oracle数据库时几个必须
注意事的关键点。
第一个是建立可正常运行的监听服务,监听向所需连接数据库发出的请求。本文中所遇到的问题是因为数据库是本机的,本机数据库监听服务在安装时已配置好,而远程数据库的监听服务没有配置,所以才出现本机好使,远程不好使的情况。使用工具连接Oracle时,如sqlplus,sqldeveloper等不需要配置监听服务才能联通。
第二个再明确下各项直连参数的解释: