ArcSDE自动安装和手动安装详解

如果在Windows系统上, Oracle和SDE是安装在同一台机器,并且先安装了Oracle,然后安装SDE,则无需看下面的讲解。安装程序会自动的创建sde用户,密码为sde,并在C盘根目录下创建SDE.DBF文件。安装完成以后,启动服务就可以连接arcsde了。下面的讲解是手动的配置sde用户,并手动的安装和配置sde。

1. 安装的前期准备:

 

  • 首先需要安装一个Oracle或者其他你所需的数据,我这里以Oracle为例讲解,在此安装的Oracle为Oracle 10g Express版本。
  • 然后创建一个Oracle数据库实例用来存储空间数据。 使用sys用户登陆,在该数据库中创建一个表空间 sde 大小可以为200MB~400M。
  • 创建sde用户,设置表空间为sde,临时为temp;在角色标签中,授予sde用户connect和Resource角色;在系统权限中授予sde用户Select Any Table权限;在限额中设置sde表空间为无限制,点击应用创建sde用户。

 

在打开方案->程序包->SYS,选择DBMS_LOCK,鼠标右击选择授予权限,授予EXECUTE 给PUBLIC;用相同的方法授予DBMS_PIPE给Public。如果是AIX系统操作,需要以下文件或更高的版本:xlC.aix50.rte 6.0.0.0、xlC.msg.en_US.rte 6.0.0.0、xlC.rte 6.0.0.0;还需要做一下环境变量的设置:SDEHOME 、ORACLE_HOME 、ORACLE_SID 、TNS_ADMIN  、PATH $PATH:$SDEHOME/bin:$ORACLE_HOME/bin、LD_LIBRARY_PATH  $SDEHOME/lib:/usr/lib:/lib:$ORACLE_HOME/lib (All platforms except HP and IBM)、LIBPATH $SDEHOME/lib:/usr/lib:/lib:$ORACLE_HOME/lib (for IBM only)

通过上面的操作,我们的准备工作就完成了,其实 Post Installation 前半部分的操作就是上面这个过程的向导,通过向导界面就可以完成,写出来只是为了有什么问题可以参考一下。

2. ArcSDE软件安装

 

  • 首先,Setup,一路下一步到结束。如果是Oracle和SDE安装在同一台机器,而且运气比较好,就不需要往下看了。启动服务,OK!
  • 后面的POST INSTALL是比较麻烦的,在DOS状态下,输入:sdesetupora9i -o install -p sde ;其中sdesetupora9i根据不同数据库版本而定,如果你的8i那么就是 sdesetupora8i; -o 后面是操作; -p后面是sde用户的密码。系统会提示你确认,输入 Y 确认。(一堆堆表格就拷到sde表空间里面了,如果已经建立过并导入过数据就不用执行了。)
  • 创建SDE服务:在DOS状态下输入:sdeservice -o create -p sde -H D:\tools\SDE\ArcSDE\ora9iexe -d oracle9i,oracle92 -i esri_sde –n。其中sdeservice是创建服务的命令行工具;-o 后面是操作; -p 后面是sde用户的密码;-h 后面是ArcSDE的安装目录(这是我的安装目录,你的有可能会不同,但最后一级一定是 ora9iexe 目录,Oracle8是oraexe;本文档中以后的SDE安装路径同样处理。);-d 后面是数据库版本 + 数据库实例名(是SID,不是服务名); -i 后面是要创建的SDE服务的名称; -n 确认。其中sdeservice是创建服务的命令行工具;-o 后面是操作; -p 后面是sde用户的密码;-h 后面是ArcSDE的安装目录(这是我的安装目录,你的有可能会不同,但最后一级一定是 ora9iexe 目录,Oracle8是oraexe;本文档中以后的SDE安装路径同样处理。);-d 后面是数据库版本 + 数据库实例名(是SID,不是服务名); -i 后面是要创建的SDE服务的名称; -n 确认。
  • 修改Windows服务配置文件首先在c:\winnt\system32\drivers\ect目录下找到 services文件,使用记事本打开,在最后加一行: esri_sde   5151/tcp    #ArcSDE for Oracle9i。
  • 修改SDE服务配置文件首先在 D:\tools\SDE\ArcSDE\ora9iexe\etc目录下找到 services文件,使用记事本打开,在最后加一行: esri_sde   5151    #ArcSDE for Oracle9i。
  • 启动SDE服务。使用命令行:sdemon -o start -p sde其中 sdemon是启动工具,-o 后面是操作;-p 后面是sde用户的密码。

 

3. 常见问题说明:

 

  • Oracle和SDE不在同一台机器上时如何配置服务:上面默认的都是Oracle和SDE在同一台机器上,如果不在同一台机器上,可以创建SDE服务,但是无法启动,会报下面的错: esri_sde service failed during initialization. Please check event log or error log files. Error starting esri_sde_206 service(997). Could not start ArcSDE — Check Network, $SDEHOME disk, DBMS settings and dbinit.sde. 现在只要打开D:\tools\SDE\ArcSDE\ora9iex\etc\下的dbinit.sde文件,里面会有一句:set ORACLE_SID=ORACLE9I 改为:set LOCAL=ORACLE9I就可以了。其中ORACLE9I是我的实例名,记得替换成你的!
  • 不同网段的ArcSDE数据库连接失败的解决方案如下打开C:\WINDOWS\system32\drivers\etc目录(如果Windows没有安装在C盘,将C换为相应的盘符,如:D、E等)下的Hosts文件,如果该文件不存在,则新建一个。在该文件最后添加一行:10.168.0.159  sdeServer保存文件,重新连接,则能成功连接。3.3一台机器上创建多个ArcSDE实例:对于Windows: 1. 拷贝 %SDEHOME% 到一个新的位置。2. 用适当的RDBMS连接变量(如ORACLE_SID)更新新的dbinit.sde 文件。3. 用新的实例名、端口号和网络协议更新 %SDEHOME%\etc\services.sde文件。4. 添加服务名、端口号和网络协议到 c:\winnt\system32\drivers\etc\services 文件中。须确认所用的端口号没有被用过。5. 删除新的giomgr.log文件中的内容。6. 如果需要,更新新的giomgr.defs文件,以指定新实例的操作参数。7. 如果需要,更新新的dbtune.sde 文件,以指定参数给在新实例的数据库中创建数据时使用。8. 确认SDEHOME 变量指向正确的新ArcSDE实例位置,并运行给对应数据库使用的sdesetup 命令来创建新数据的存储表。 9. 使用 “sdeservice -o create” 命令创建新的ArcSDE服务。对于UNIX: 1. 给新实例创建一个新的工作目录。2. 拷贝 $SDEHOME 到新创建的工作目录。3. 用适当的RDBMS 连接变量(如ORACLE_SID)更新新的dbinit.sde 文件。4. 用新的实例名、端口号和网络协议更新 $SDEHOME/etc/services.sde 文件。5. 添加服务名、端口号和网络协议到 /etc/services 文件。须确认所用的端口号没有被用过。6. 删除新的giomgr.log文件中的内容。7. 如果需要,更新新的giomgr.defs文件,以指定新实例的操作参数。 8. 如果需要,更新新的dbtune.sde 文件,以指定参数给在新实例的数据库中创建数据时使用。9. 确认SDEHOME 变量指向正确的新ArcSDE实例位置,并运行给对应数据库使用的sdesetup 命令来创建新数据的存储表。

 

4. 配置文件说明:

根据经验,上面的所有操作都集中在这几个文件上,C:\WINDOWS\system32\drivers\etc下的hosts,services;D:\tools\SDE\ArcSDE\ora9iex\etc下的dbinit.sde,services.sde。说明如下:hosts:主机域名解析文件。当在网络上找不到所需要的域名解析服务时,Windows就会调用这个文件来查找响应的IP地址。在这里可以绑定SDEServer为你需要的SDE服务器的IP地址。services:服务端口列表文件。主机对外开发的所有服务端口都在这里注册,SDE服务当然也在其中,必须保证你的SDE服务以规定的格式存在于其中,且不与其他服务冲突,两个SDE实例同时存在时也必须保证互相不冲突。dbinit.sde:SDE数据库配置文件。当数据库在本机时为 set ORACLE_SID=实例名,数据库在其他机器上时为 set LOCAL=实例名。services.sde:SDE服务列表。SDE本身的服务注册列表,必须保障你的所有SDE实例都在其中。 个人认为 sdeservice –o create 命令的主要任务之一就是把服务端口号写到services、services.sde中,把实例名写到dbinit.sde中。

5. 常用命令

sdeservic
e -o create     -d

SQLSERVER,SQLSERVERINSTANCE|DB2,DB2INSTANCE|

INFORMIX|COVERAGES>

-p

[-i ] [-u ] [-n]

[-H ] [-P ]

sdeservice -o delete    [-d

DB2|INFORMIX|COVERAGES>]

[-i ] [-N]

sdeservice -o register   -r -v

-d

DB2|INFORMIX|COVERAGES>

-p [-i ]

sdeservice -o unregister -r

-d

DB2|INFORMIX|COVERAGES>

-p [-i ]

sdeservice -o modify     -r -v

-d

DB2|INFORMIX|COVERAGES>

-p [-i ]

sdeservice -o list      [-i ]

————————————————————————-

sdemon -o status   {[-i ] [-s ] | [-H ]}

[-q]

sdemon -o start    {[-i ] [-s ] | [-H ]}

[-p ]

sdemon -o shutdown {[-i ] [-s ] | [-H ]}

[-p ]  [-N]

sdemon -o pause    {[-i ] [-s ] | [-H ]}

[-p ]

sdemon -o resume   {[-i ] [-s ] | [-H ]}

[-p ]

sdemon -o info       -I {users | config | stats | locks | vars}  [-q]

{[-i ] [-s ] | [-H ]}

sdemon -o kill       -t {all | } [-p ] [-N]

{[-i ] [-s ] | [-H ]}

其中:  -o 要做的操作

-p sde用户的密码

-h sde的安装路径

-i sde服务名

-n 确认

其他的还没有用过,用过以后再补,不过应该能不会很难吧!以上是SDE的一些基本使用方法。非常感谢ESRI公司技术服务人员的帮助。另外,你如果发现有什么不对的,请及时告诉我!