原文地址:http://blog.sina.com.cn/s/blog_5d25ac4e0101j6qv.html
ArcGIS从10.1以后,SDE这个产品的连接方式发生了很大的改变,刚刚安装好ArcMap的时候,打开原来用来建立SDE连接的节点,顿时傻眼了,
这东西怎么使啊?经过一顿找资料以后发现:原来以后的ArcSDE推荐都是采用直接连接的方式,那么我们先看看采用直连怎么连接SDE吧。
直接连接Oracle数据库
笔者使用Oracle数据库比较多,相信中国政府用户中使用Oracle的应该也是最多的,本例中采用Oracle 11g数据库作为试验数据库。
安装列表:
Oracle database 11g R2 64bit
Oracle Client 11g R2 64bit
ArcGIS for Desktop
这里有个问题需要说明一下:因为从10.1以后,访问SDE推荐采用直接连接数据库的形式,因此连接数据库也就选用了各自的数据库客户端进行访问管理,因此,Oracle Client是必须安装的。选用的版本根据装ArcGIS for Desktop的操作系统来定,比如笔者是在本机(Win7 64bit)安装Oracle和ArcGIS for Desktop那么就需要选用64位的客户端,如果Oracle安装在64位的服务器上,而需要进行数据连接的安装了Desktop的机器是32位的,那么就需要在访问机器上安装32位的客户端。
当然,细心的您一定发现了,这里有一个非常之重要的东西没有安装——ArcSDE for Oracle!!
这是因为采取直连的方式,我们并不需要SDE为我们建立表什么的,如果想要建立SDE数据库,我们直接用ArcMap里面的工具创建即可,因此采用直连方式连接数据库,并不需要安装ArcSDE!!!
在使用Desktop连接数据库之前,先测试数据库的访问是否正确:
使用Sys作为sysdba登陆成功,好了现在建立一个用来测试的TEST用户。
用户的基本情况如下:
可以看到这是一个空的没有任何对象在用户下面的干净用户,所有的权限就是连接数据库和创建数据库资源对象。
在ArcMap中双击那个让人无从下手的连接,填写连接属性如下:
其他选项都是没有什么技术含量的但是中间的Instance比较令人纠结,查找帮助中有这样的文档:ArcGISfor Desktop中的数据连接
本例中是本机,且服务名为orcl因此填写方式如上,其他情形下的Oracle连接,下图中的连接方式:
好了,测试一下我们的数据库:
双击后小叉没有了,表示连接成功!
在创建新的要素类的时候,对话框中只有SDO类型的数据存储方式
这是什么原因呢?回想一下刚才的安装过程好似比原来的SDE安装和连接少了东西,就是PostInstall,这是原本用来建立SDE要用的表的,但是我们的连接依然成功了,这是为什么呢?
在SDE10.1以后,ArcGIS连接关系型数据库的主要方式是直接连接了,直接连接数据库,利用数据库的用户权限管理,读取数据表,序列等等数据库原有的对象也是新特性,所以我们按照原来的方式建立的是一个对Oracle用户的直接连接访问!正是因为这样,我们新创建要素类的时候才只有SDO类型的。
值得一提的是,选择几何参考的界面允许查询了,免除了大家在各种参数中间奋力查找的麻烦。
点击完成,我们的点已经建立起来了。
但是,还有一个问题:这样建立的要素类可以编辑么?答案是否定的!原因很简单,因为这样的数据无法注册到地理数据库:
这样的数据我们只能采用提示的处理方式:导出成gdb或者shp再编辑后导入了。
创建地理数据库并直接连接
上面的连接方式让我们看到了现在ArcGIS的数据连接的灵活度,但是很多SDE原有的功能都受到限制,比如编辑和版本管理,那么我们接下来连接一个创建为地理数据库的用户,再设置它的连接吧。
地理数据库连接现在已经全部工具化了,他们都在系统工具中,我们要用到的创建地理数据库的工具,在Data Management tools->Geodababsase Administration->CreateEnterprise Geodatabase里面(如果点开的时候出错,请选择运行加载项)。
填写情况如下:
好了,创建成功!!
创建成功后,再采用SDE用户建立一个直接连接,方式与上面相同:
创建后我们就能够建立更多的内容了。
再试着建立一个线数据类,并注册到数据库,这样就可以开始编辑了!
利用服务连接SDE数据库
接下来,大家肯定有跟我一样的疑惑:是不是Esri已经抛弃了SDE的服务?是不是以后就不采用服务方式了呢?答案肯定是服务方式连接依然是我们支持的内容!
首先安装ArcSDE for Oracle 11g!我们关注一下,安装SDE的时候安装了哪些东西,分别有什么作用吧:
上图中,Application Server是用来在GIS应用和企业空间数据库之间传递空间数据的。也就是原来的SDE服务做的工作,而Command line tools从名字就知道是命令行工具,是通过命令行来管理ArcSDE服务的。
安装完成ArcSDE后,我们修改ArcSDE安装目录中services.sde文件和Windows中的services文件,分别增加“esri_sde 5151/tcp”记录,他们的格式是<服务名>
Windows中的services文件位置为C:\Windows\System32\drivers\etc\services
ArcSDE中的services文件位置为\ora11gexe\etc\services
修改完毕后保存文件。
用命令行创建ArcSDE服务(详细命令解释请点击此处):
建立了SDE的服务,我们需要启动它,命令如下:
启动服务之后我们利用Catalog里面的工具Create ArcSDE Connection File:
建立连接文件后,即可在创建连接文件的位置直接点开这个SDE连接了!