ArcSDE10.x for Oracle的客户端直连配置问题

原创
2016-06-07 15:50:54 739浏览

随着ArcGIS10.1的发布,更多的用户也慢慢接受了使用ArcSDE直连,不仅仅是因为直连是一种趋势(服务连接以后会被弃用),更重要的是直连的性能更加高效。 说明:任何人说他们的10.x环境需要服务连接都是一种借口,要么是他们觉得目前环境还在使用,不希望乱折

随着ArcGIS10.1的发布,更多的用户也慢慢接受了使用ArcSDE直连,不仅仅是因为直连是一种趋势(服务连接以后会被弃用),更重要的是直连的性能更加高效。


说明:任何人说他们的10.x环境需要服务连接都是一种借口,要么是他们觉得目前环境还在使用,不希望乱折腾,怕出问题,要么就是开发商懒得再给你们弄,目前我知道的唯一一个必须使用服务连接的就是ArcGIS9.x版本不能使用直连创建User Schema。所以建议特别是在ArcGIS10.x版本的用户都是用直连。


提示:如果用户使用直连创建9.3版本的User Schema会提示如下错误:"Install/Upgrade/Delete has to be performed by instance schema owner"


ArcGIS9.3.x帮助:Be sure you specify the schema. If it is not specified and only a port number is provided, the SDE schema is used by default. Since the geodatabase in the SDE schema already exists, executing the sdesetup –o install command will upgrade the SDE geodatabase.


使用直连必须的要求就是需要数据库客户端,而且用户使用Oracle数据库比较多,所以今天就再说说Oracle数据库环境的直连。


更多参考

ArcGIS10.1自带的数据库客户端介绍:http://blog.csdn.net/linghe301/article/details/8081688

----------------------------------------------------------------------------------


Blog: http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------


1:当使用Oracle10g客户端

使用Oracle10g客户端的用户必须注意了,如果你ArcGIS Desktop的软件安装在64位操作系统,那么因为桌面是32Bit的,所以默认安装在C:\Program Files (x86)\ArcGIS\Desktop10.2的路径下,那么这个“( )”就可能出现大问题,用户不管是使用PL/SQL还是使用Sqlplus都可以正常连接,但是在桌面进行同样输入参数的直连就会出现Ora-12154错误。就是因为这个括号导致的。


问题的解决:

a:桌面安装在不带()的路径下

b:用户选择Oracle11g或者更高版本的客户端。

----------------------------------------------------------------------------------


Blog: http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------


2:当使用Oracle11g客户端

ArcGIS10.1版本中,桌面是32Bit的,Server是64Bit的,很多用户这两个软件都安装在一台服务器上,那么就出现需要同时安装32Bit和64Bit的Oracle的客户端的问题。


更多参考:ArcGIS10.1不得不说的故事:http://blog.csdn.net/linghe301/article/details/8139346


这样无疑增加了很多负担,所以Esri建议用户使用Oracle的InstanceClient,其实如果是正版用户,Esri也会附带相关的安装光盘,里面就是这个软件。

http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html

用户只需将32Bit和64Bit的软件下载解压缩到任何地方即可。


然后在环境变量中添加路径即可


这样用户再也无需烦恼找不到不同位数的Oracle的Oci.dll,避免了一些莫名其妙的错误了。

----------------------------------------------------------------------------------


Blog: http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------


如果使用这种方法,如果用户下载的是最简化的InstantClient,默认是不能配置Netservicename的,用户可以使用Oracle的EZConnect写法来代替网络服务名。


EZConnect需要用户了解远程数据库服务器的Ip地址和实例名即可。

书写规范:服务器IP:Oracle端口号/实例名,例如:192.168.1.1:1521/orcl,一般情况下默认Oracle的1521端口号都是公认的,如果没有修改,可以不添加。


当然,使用这种写法,在Oracle服务器的E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN的Sqlnet.ora文件不能禁用EZCONNECT。

# sqlnet.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

----------------------------------------------------------------------------------


Blog: http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------


其他说明:Oracle软件的问题比较多。如果用户怎么弄都没有办法解决,不妨看看这些情况是否存在,一般都是Windows环境。

1:Oracle软件卸载不彻底,导致注册表信息、环境变量信息没有彻底删除。

2:安装了多个版本的Oracle软件,而且可能包含不同位数。

其实Oracle数据库分为服务器端和客户端,如果安装了服务器端64Bit,在同一台机器访问就无需安装64Bit的客户端。而且不同版本的客户端连接服务器端都是没有问题的。

3:注意Oracle的实例名、服务名、数据库名,一般情况下都是一样的,不排除对安全要求比较高的用户进行修改。那么在配置一些信息的时候 需要选择正确的名称。

4:默认的InstantClient不包含Sqlplus,用户可以下载包含sqlplus的InstantClient版本

http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html


----------------------------------------------------------------------------------


Blog: http://blog.csdn.net/linghe301

----------------------------------------------------------------------------------







声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。