众说周知,ArcSDE空间数据库引擎提供了两种连接数据库的方式。一是服务连接方式,一是直连方式。后者也是Esri所推崇的方式。但是,在客户的生产环境和开发商的开发环境中这两种方式都是有需求的。下面就以截图说明的形式跟大家分享下在ArcGIS10.0和10.1中安装和配置空间数据库引擎的一般流程和注意事项。
1.直连方式
Esri之所以推荐使用直连方式,就是因为直连方式有明显的优势,可以给客户带来更大的效率和价值。
a.直连方式的主要优势:
A.直连方式较服务连接方式卸载了20%-40%的负载;
B.直连方式降低了服务器端内存的需求;
C.直连方式处理速度更快,在客户机上执行处理;
D.不需要安装ArcSDE软件。
b.直连配置需求
上面也说过了,直连方式省去了ArcSDE软件的安装步骤。但是它却需要安装相应的数据库客户端,后面都以Oracle11gR2为例。确保Oracle数据安装配置正确后,需要知道sys用户密码、端口号、实例名、服务名。
c.配置流程
A.安装和配置Oracle客户端(32)
对于ArcGIS Desktop连接来说,目前都需要安装Oracle11gR2的客户端,当然可以使用对应版本的免安装客户端,只不过需要手动配置环境变量而已。
如果是安装完database后,再安装的client,那么环境变量不需要手动修改。其内容如下:
E:appweihuproduct11.2.0client_1in;E:appweihuproduct11.2.0dbhome_1in;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program FilesArcGISArcSDEora11gexein
然后,需要使用客户端的NetManager工具配置服务名,如下图的arcsde。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060835b5H.png)
对于免安装的客户端,需要手动配置network/admin下的tnsnames.ora文件。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060838tE3.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060838SFO.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060841dIJ.png)
直连方式在10.1与10.0中差异较小,注意相关参数,主要是机器(ip)、服务(sde:oracle11g:服务名[arcsde:使用客户端配置的参数])、认证相同,如上图。 2.服务连接方式
a.服务连接优势
对于很多实施人员来说,他们的应用可能比较简单,需要考虑的主要是实施部署的便捷。那么服务连接的优势就体现出来了。不需要客户端安装和配置。b.软件安装与配置
对于服务连接方式,都需要安装ArcSDE for对应数据库版本的软件包。这个在ArcGIS10.1和ArcGIS10.0中差别较大。 A. ArcGIS10.1中ArcSDE的安装与配置: 找到对应数据类型和版本的软件安装包安装即可,没有Post Install的向导。在软件安装完成后来使用命令创建sde服务。 找到ArcSDE安装目录下的service.sde文件取消esri_sde 5151/tcp前面的#号注释。![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060843L0t.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/0608443Ra.png)
服务配置成功后,就可以在ArcGIS Desktop中连使用服务连接了。但是10.1中服务连接需要使用工具创建连接文件,然后连接,而不能像10.0中直接使用服务名或者5151连接。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060844CvK.png)
使用Workspace工具箱中的Create ArcSDE Connection File工具来创建连接文件。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060849Vsr.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060851G8m.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060852k11.png)
初次安装选择全部,然后下一步可以实现Oracle数据库连接检查(确保实例运行正常)。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/0608564XO.png)
接下来,可以设置sde的用户名和密码,创建sde表空间。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060857hwf.png)
然后,设置服务名、端口号、机器名,Oracle实例名等,如下图。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/0609023CB.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060902Hkh.png)
在ArcGIS10.0中服务方式连接和直连都可以使用ArcCatalog中空间数据库连接的节点,设置参数进行连接,唯一不同就是服务参数。服务连接输入esri_sde或者5151即可,直连需要输入sde:oracle11g:arcsde,具体可以对比相关截图。
3.ST_Geometry配置
ST_Geometry是一种遵循ISO和OGC规范的,可以通SQL直接读取的空间信息存储类型。采用这种存储方式能够更好的利用Oracle的资源,更好的兼容Oracle的特征。Esri的ArcSDE9.2开始支持这种存储类型。 A.ST_Geometry主要优势 ST_Geometry的优势主要体现在以下几个方面: A.可以通过SQL函数直接访问空间数据; B.使用SQL语句操作空间数据可以和其他类型数据一样便捷; C.可以通过存储过程来进行复杂的空间数据检索和分享; D.其他业务系统可以通过SQL语句来访问Geodatabase中的数据; ST_Geometry配置的方式 值得注意的是在配置ST_Geometry时,需要根据数据库的版本和位数来安装对应版本的ArcSDE软件(比如Oracle是Win64_11gR2_database,就需要安装ArcSDE for Oracle 11g64位软件)。主要是包括配置需要引用的动态库(st_shapelib.dll、pe.dll、sg.dll)。 官网给出了两种配置方式: http://support.esri.com/en/knowledgebase/techarticles/detail/38043 相关信息: http://help.arcgis.com/zh-cn/arcgisserver/10.0/help/arcgis_server_dotnet_help/index.html#/na/0093000015qp000000/ A. 配置listener.ora和tnsnames.ora文件方式; 在保证数据库监听配置正常的情况下,添加以下信息。 首先,在Oracle的安装目录下(%ORACLE_HOME%NetworkAdmin)找到tnsnames.ora文件;添加EXTPROC_CONNECTION_DATA信息如下: EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) )![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060903Y1T.png)
(ENVS = "EXTPROC_DLLS=C:ArcSDEora11gexeinst_shapelib.dll,PATH=C:ArcSDEora11gexein")
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060906ygj.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060906nI9.png)
确保配置正确后,重启Oracle监听(lsnrctl stop、 lsnrctl start); 最后,通过命令测试ST_Geometry配置是否正常。 SQL> select * from user_libraries;来检查st_shapelib.dll的位置配置。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060906xZo.png)
如果不是正确的dll路径(还有对应位数64/32)可以通过以下命令修改:create or replace library ST_SHAPELIB as 。
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/0609070vT.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060907SLH.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060908wGm.png)
- 配置extproc.ora方式;
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/0609080wu.png)
4.空间数据注册
对于开发商或者用户来说,他们除了做好空间数据库的配置外。还会牵扯数据组织以及服务发布等问题。在ArcGIS Server10.1中提供了空间数据库和文件夹注册的功能。其实,文件夹的注册就类似于ArcGIS Server10.0中我们需要设置数据存储目录,共享并且设置权限来进行数据的组织。Server10.1中注册数据库和文件夹还有一个作用就是满足生产数据和发布服务数据一致的需求。在不注册的状态下,发布服务时,会将服务相关数据上传到GIS服务器,这样不仅增加存储空间,尤其是影像数据。而且会延长服务发布的时间。因此,我们一般推荐将GIS数据组织在注册过的文件夹或者空间数据库中来,提高工作效率。ArcGIS Server10.1中注册数据库和文件夹的方式有桌面端和Manager网页端两种。 A.桌面的服务器连接属性设置: 在ArcGIS桌面的ArcCatalog中有GIS服务器连接的节点,点击可以添加GIS服务器,在GIS服务器的连接上右键属性可以打开下面的对话框,在Data Store中可以注册数据库和文件夹,并验证。![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060908ipl.png)
![](http://www.lzdodo.com/wp-content/uploads/auto_save_image/2014/05/060910AWC.png)