ArcSDE 10g for Oracle 10g 安装问题汇总
安装环境介绍:
操作系统:win7 32位或64位
安装软件:
数据库:oracle 10g 10.2.0.3 database 和oracle 10g client
软件:ArcSDE 10g for Oracle 10g (32位)
常见问题:
1. 64位系统中不能将软件安装在带有(X86)的文件夹中,如果这样安装会出现以下问题,
由于(x86)造成问题的出现。
[Sun Sep 04 14:18:55 2011] DB_open_instance()::db_connect (OCI8) error: 12154
[Sun Sep 04 14:18:55 2011] Error: Underlying DBMS error (-51).
[Sun Sep 04 14:18:55 2011] Error: Unable to connect
[Sun Sep 04 14:18:55 2011] ORA-12154: TNS: 无法解析指定的连接标识符
[Sun Sep 04 14:18:55 2011] ERROR installing/upgrading ArcSDE, Error = -51
注:在卸载安装过程中需要删除环境变量中创建的SDEHOME变量和修改Path变量中SDE的路径值,否则你会发现,不管怎么安装都会默认安装到第一次选择的带有(X86)的路径下。
2. 在64位操作系统中安装ArcSDE的过程中oci.dll报错问题
对于此问题的出现主要是因为在64位的操作系统下需要安装64位的ArcSDE程序,如果各位手中只有32位的安装程序,解决此办法就需要在服务器中安装Oracle 客户端软件。
post过程中会出现无法成功启动服务的问题。解决办法来源于网络。
用Sdeservice命令创建sde服务。
1. 在命令提示符下,输入以下命令创建sde服务。
Sdeservice -o create -d ORACLE,AHGRIDGIS -p pppp -i esri_sde -n
其中:-p:为要连接数据库的密码(SDE用户的密码)
-d: 【oracle 本地网络服务名]
1)在$SDEHOME目录下ect/dbinit.sde文件夹,打开,如果有: set Oracle_SID = Oracle_ServiceName 改为 : set LOCAL
= Oracle_ServiceName。其中:Oracle_ServiceName是指用Oracle Net配置的本地的Oracle连接服务名。 如果没有则添加:set LOCAL = Oracle_ServiceName
2). 检查系统安装磁盘下WINDOWS/system32/drivers/etc/services是否有esri_sde 5151/cp #ArcSDE for Oracle的记录。如果没有,则在最后一行添加这个记录。
3). 检查%sdehome%/etc/services.sde文件里面是否有:ESRI_SDE 5151/TCP #ArcSDE for Oracle。(一般安装sde后自动会添加该端口的打开)如果没有,则在最后一行添加这个记录。
4). 启动sde服务:
①、用sdemon命令进行sde服务的启动。
sdemon -o start -i esri_sde -p sde就可以成功启动服务了
其中:-p:为sde用户的密码。
②、在服务中点击启动esri_sde;
注:在Win7系统下,要用管理员的身份运行命令提示符,才能完成上述操作。
3. win7下安装ArcSDE 10 没有特别之处,出现问题主要在Post Installation 时,最头痛的是提示框没有完全显示错误信息。
可以通过检查日志文件查明错误原因:
提示:error connecting to Oracle:O
错误分析:
SDE在POST时会受到以下问题影响:
1.防火墙问题:ArcSDE安装后需要添加5151的端口,可是防火墙如果是开启状态下,则5151端口不在例外列表中,解决办法:关闭防火墙,或者在例外中添加5151端口号。
2. 数据库版本问题:ArcSDE10 for Oracle 10g ,是否支持当前的小版本号,如ArcSDE 9.3支持Oracle 10g10.2.0.3以上版本,可能由于软件的子版本号没有达到要求,造成连接失败。这个以官方公布的为准,在此只是举个例子。
3.Oracle 数据库安装完成后,忘记添加监听程序。
4.无法连接指定的标识符。这个错误最要命了。
需要检查的东西太多:网络是否通畅、防火墙问题、Net Manager中的服务设置。
如果检查了所有的问题,还是出现以上问题的话,还有一个不常发现的问题。通常我们在学习过程中会将服务器端和客户端都安装在一台电脑中,造成NetManager有两个。ArcSDE默认会读取那个呢?这个还是由环境变量决定的。环境变量中path值中,写在前面的Oracle路径中的tnsnames.ora文件中的服务名,才是ArcSDE安装过程中 Net Service Name中需要设置的名称。
解决办法有两种:1.在服务器端添加NetManager的服务。
2.修改环境变量中Oracle路径的先后顺序。把client_1的路径剪切到前面。
注:这两种解决办法修改后,都需要关闭ArcSDE 的Post Installation,重新打开Post Installation。
5.连接超时。。。