有很多朋友安装ArcSDE失败,主要有以下两种情况:
1 ArcSDE安装过程中提示不成功。
2 ArcSDE已经装上,但是服务没有启动。
为此,我把ArcSDE反复安装了多次,对期间可能出现的问题一一找到了解决办法。现在把安装步骤写出来,希望不光对第一次安装ArcSDE的朋友,而且对已经安装过ArcSDE却没有成功的朋友,都能有一定的帮助。当然这只是抛砖引玉,如有错误还请各位指正。
Windows操作系统中解决方案如下:
1 打开注册表,删除ArcSde Service服务
详细:
(1)打开“控制面板”,“服务”,找到“ArcSde Service(somename)”,这里somename就是你的ArcSde服务的真实的名字,记住这个名字(为叙述方便,以下用somename表示其真实的名字)。
(2)打开“开始”,“运行”,敲入“regedit”,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\somename,把整个文件夹删掉。(这里的somename指(1)中的somename。)
(3)重启计算机。(目的是刷新注册表,当然用其他方法树新注册表也可以,但是这里强烈建议重启。)
2 从Oracle中删掉用户sde和表空间sde
详细:
(1)从“开始”--〉“程序”--〉“Oracle - OraHome92”--〉“Enterprise Manager Console”,启动Oracle,以任意用户名,任意密码,SYSDBA身份登陆(以SYSDBA身份登陆无需验证的原因是:SYSDBA是操作系统认证的,操作系统里面有一个ora_dba组,这个组里面Members can connect to the Oracle database as a DBA without a password,如果把你刚才登陆本机时所使用的用户名从这个组里删除,那么你以SYSDBA身份登陆Oracle就需要身份验证了)。
(2)在“安全性”--〉“用户”下找到“SDE” (如果找不到就进行下一步),在“SDE”上右健单击,选择“移去”,选择“是”,这样就删掉了用户SDE。
(3)在“存储”--〉“表空间”下找到“SDE” (如果找不到就进行下一步),在“SDE”上右健单击,选择“移去”,选择“是”,这样就删掉了表空间SDE。
(4)关闭Oracle。
3 重新安装ArcSDE
详细:
(1)从“开始”--〉“程序”--〉“ArcGIS”--〉“ArcSDE”--〉“ArcSDE for Oracle9i Post Installation”,进入安装界面。
(2)第一步,选择完全安装,即“Complete”,点击“下一步”。
(3)第二步,要求以Oracle用户sys的身份登陆Oracle数据库。在Sys user password中输入用户sys的密码(安装Oracle时输入的);在Net service name中输入Oracle服务的名字,可以以如下方式查看Oracle服务的名字:“控制面板”-->“管理工具”--〉“服务”,找到“OracleServiceSomename2”字样的服务(其中,Somename2只是一个替代字符串),右键点击“属性”,在弹出的对话框中,看到“可执行文件的路径”下面的字符串,此字符串中“.EXE ”后面的部分即是Oracle服务的名字。点击“下一步”。
(4)第三步,创建SDE表空间和用户(如果弹出一个对话框,显示用户sde已经存在,那是因为用户sde或表空间sde没有从Oracle中删掉)。对话框中给出三栏:SDE user、Default和File。其中,Default栏指出要创建的默认的SDE用户名和表空间名,SDE user栏输入的是用户sde的密码,File栏给出的是新创建的用户和表空间存放位置的文件。
强烈建议不要修改Default栏给出的“sde”,因为如果改成其它的名称,一会儿在(8)中将会看到要求给出用户sde的密码,而我们并没有创建用户“sde”。
笔者私下认为SDE user栏和Default栏给出的提示不很好,粗一看去让人误以为要填两个用户名,一个是运行使用的用户名,一个是默认的用户名。但实际上SDE user栏中输入的字符以星号显示,按默认惯例,这一栏应该是密码。而且,在刚进入(6)时,我们可以打开Oracle,可以看到“用户”下的确生成了Default栏输入的名字的用户,而不是SDE user栏输入的名字的用户,在表空间中也是如此。
我们可以只在SDE user栏输入一个字符串,当作用户“sde”的密码,其余的默认即可。点击下一步。
(5)一会儿可以看到弹出两个对话框,提示用户sde和表空间sde创建成功。
(6)第四步,进入“ArcSDE configuration files”,配置ArcSDE文件,选择默认,点击下一步即可。
(7)第五步,进入“ArcSDE configuration files continued”,继续配置ArcSDE文件,选择默认,点击下一步即可。
(8)第六步,创建方案SDE。此时,SDE用户的名字已经固定,为“sde”;程序在(4)中已经获得用户“sde”的密码,此处也以星号形式给出;程序在(3)中已经获得Oracle服务的名称,此处也显示给出。如果(3)和(4)中均没有填错,此处全部默认即可,点击“下一步”。
(9)第七步,创建ArcSDE服务,全部默认即可,但最后一项“Oracle_SID”必须填,而且要填正确,否则ArcSDE服务即使创建了也不能启动。可以用如下方法查看系统已经安装的Oracle的SID:在Oracle安装路径下的“\admin\sde\profile”文件夹下,有一个“init.ora.*************”字样的文件(比如,在我的机器上该文件为D:\oracle\admin\SDE\pfile\init.ora.6162005101919),用文本文件方式打开,查找字符串“instance_name”,可以看到“instance_name=somename3”字样的值,这个somename3就是Oracle_SID。填好后点击“下一步”。
(10)如果原来有ArcSDE服务,那么此时会提示已经存在服务,是否覆盖;或者提示出错。原因:第1步即“打开注册表,删除ArcSde Service服务”仅仅把控制面板服务列表中的服务删掉,而真正的服务(在HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcInfo\ArcSDE\8.0\ArcSDE for Oracle下,)还是没删掉,所以会提示是否覆盖。如果第1步没有执行,即服务列表中的ArcSDE服务没有删掉,就会提示出错。
(11)在以上执行步骤中,由于没有删掉HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcInfo\ArcSDE\8.0\ArcSDE for Oracle下的ArcSDE的真正服务,所以提示是否覆盖。点击“是”,一会儿后弹出对话框,提示耐心等待,询问是否启动新创建的ArcSDE服务,选择“是”,一会儿后提示服务成功启动。
(12)提示安装完成。此时可以到服务列表(“控制面板”--〉“管理工具”--〉“服务”)中,找到“ArcSDE Service(somename4)”(somename4是(9)中出现的ArcSDE服务的名字,默认为esri_sde),可以看到确实正常启动了。如果哪位朋友照以上步骤安装后,服务仍未启动,请与我(陈元琳)联系,E-Mail:___cyl@163.com
补漏:
以上主要针对Oracle数据库中只有一个数据库的情况,如果有多个数据库,比如有两个:SDE和TestDB,那么以上安装步骤会有一些小小的改动,如下:
A 从Oracle中删掉用户sde和表空间sde时需要选择数据库,你原来把sde用户和表空间建在哪个数据库(即安装ArcSDE第二步时填写的Net service name)中,现在就先登陆那个数据库,然后再在那个数据库下进行删除sde表空间和用户的操作。
B 安装ArcSDE的第二步至第六步(即(1)-(8)),填写的Net service name应该相同,此时在“服务”列表中可以看到有“OracleServiceSDE”和“OracleServiceTestDB”,Net service name 应该要么是“SDE”,要么是“TestDB”
C 安装ArcSDE的第七步(即(9)),填写的“Oracle_SID”也应该跟前面安装过程中填写的Net service name对应的服务所对应的Oracle数据库的SID相同。(Oracle数据库的SID可以在打开“Oracle Enterprise Manager Console”后看到:“网络”—〉“数据库”根目录下的便是Oracle数据库的全部SID。)经笔者测试,如不如此,ArcSDE服务便不能启动。
重要说明:得出以上结果,软件环境为:ArcSDE 8.3 for Oracle 9i,Windows XP Professional Server Pack 2,Oracle 9.02 。