好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ArcSDE10.xforOracle的客户端直连配置问题

随着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://HdhCmsTestoracle测试数据/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://HdhCmsTestoracle测试数据/technetwork/cn/topics/winsoft-095945-zhs.html


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


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

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







查看更多关于ArcSDE10.xforOracle的客户端直连配置问题的详细内容...

  阅读:45次