1 前言
在工作中,经常会碰到在一个机器上创建多个SDE服务,以实现同时对多个空间数据库进行操作管理。ESRI网站上是采用复制%SDEHOME% 到一个新的位置后,进行手工修改其参数达到创建多个实例。这种方法修改的参数太多,通过ArcSDE Post Installation图形界面进行SDE服务的创建,相对说来说操作相对简单的多。
本文就是通过ArcSDE Post Installation的完全安装与自定义安装两种方法介绍SDE服务创建过程。第一种是自动创建表空间、用户名以及服务的方式,第二种是在ORACLE中已有表空间和用户名的情况下,创建第二个SDE服务。
这两种方法不分先后,可根据实际需要使用。
2 准备工作
在ORACLE数据库创建两个实例,采用不同的监听程序和网络服务名。例如:实例可分别命名为ORCL和ORCL_1,监听分别采用1521和 1522,网络服务名可与实例相同,也可根据实际需要创建。ORACLE数据库创建过程请参见ORACLE安装手册,这里不再过多叙述。
在创建SDE服务前,要确保在服务项中的ORACLE监听和ORACLE实例服务启动成功,可通过netstat -a命令查看端口是否启用,确保ORACLE的通信正常。
3 SDE服务创建过程
3.1 创建第一个SDE服务
创建第一个SDE服务时只需按照ArcSDE Post Installation程序提示,默认创建即可,如下图所示,选择complete方式。
按照系统提示“下一步”安装后,输入ORACLE 的SYS用户密码和网络服务名。在ORACLE安装时,可以修改SYS用户的密码,如果在安装时没有修改密码,这时的SYS默认密码为 change_on_install。网络服务名,也就是ORACLE实例的网络服务名。
输入相关信息后,在如下图所示界面中,可修改SDE用户、密码和表空间路径。通常这一步都按默认创建SDE表空间和用户名,也可根据实际需要修改。
设置完成后,按照系统提示一步步进行操作。在如下图所示的界面中设置SDE服务的名称和端口,可采用默认的esri_sde 和5151/tcp,分别输入ORACL实例和服务名。
按照安装提示进行下一步的操作,直至成功。
以下操作的方法比较简单、易学,在初次创建SDE服务时,可采用此种方式。
3.2 自定义创建第二个SDE服务
在实际工作中,经常会有在ORACLE中已创建了表空间和用户名后,再创建SDE服务的情况,下面就介绍一下在已有表空间和用户名的情况下如何创建服务。
首先在ORACLE中建立好SDE表空间和SDE用户,赋予SDE的Connect和 Resource角色。授予相关的系统权限: CREATE PROCEDURE;CREATE SEQUENCE;;CREATE TABLE;CREATE SESSION; CREATE TRIGGER五个系统权限。UNLIMITED TABLESPACE包括在Resource角色中,不需要单独授予。
启动ArcSDE Post Installation,选择Custom项,进行SDE的自定义安装。
在下一步操作界面中,取消第一项“Define SDE User Environment”的选择,不再创建表空间和用户。在SDE完全创建时,表空间的格式为.dbf,与ORACLE中创建的ORA不同。 Repository Setup选项,就是建立了与ORACLE表空间的联系,将一些表复制到SDE表空间中。
以下操作按照向导提示,除了安装过程不出现创建表空间的界面外,其余的操作步骤与完全安装相同,在需要输入ORACLE实例名和服务名时需要输入第二个数据库的名称,并且赋予SDE新的名称和端口号,如esri-sde1和5152等。
安装完成后,在服务项中,查看创建的服务状态,有时sde服务提示创建成功后,在服务项中没有自动启动,这时候选中服务,进行手工启动即可。
4 SDE服务卸载
如果创建的服务无法启动,需要重新创建服务时,此时不需要卸载SDE程序,只需在注册表中找到HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services 下的esri_sde并将之删除,再重启一下机器即可。