ArcGIS 10.1 如何链接数据库(转载)

ArcGIS 10.1如何链接数据库

最近在使用ArcGIS 10.1的数据库,在使用的过程当中发现了跟以往不太同样的地方,在这里将本身的心得和想法跟你们分享一下(使用Postgresql),根据使用过程,我将内容分为两个部分(这两个部分,是我在使用完分出来的,并从新整理,其中穿插我本身的想法,欢迎你们跟咱们一块儿交流。),10.1已经不须要安装arcgis sde了,能够经过工具直接在Oracle上创建空间数据库,而且直接连接。html

如何使用直连方式链接数据库

1,    ArcGIS 10.1 统一了数据库链接,也就是不区分是空间数据库链接仍是经过OLEDB方式的关系型数据库链接web

                                                                                                                           

                        左图为10.1下的截图,右图为10.0下的截图sql

2,        在Catalog中只能采用直连方式;数据库

 

3,        ArcGIS 10.1版本中,Esri提供的安装介质不在包含Postgresql(之前的是包含的);网络

4,        安装Postgresql,官方给的软件要求是64位数,并且全部的企业级数据库都是64位(这应该和Server有关系吧,由于Server 10.1是纯64位,在桌面软件的DatabaseSupport目录中给出的几个dll都是64位,这几个dll 后面会用到,官方给的软件需求以下:tcp

Database工具

Supported Operating Systemspost

Minimum OS Version测试

Maximum OS Versionspa

PostgreSQL 9.0.5 (64-bit)

Red Hat Enterprise Linux Server 5 (64-bit)

Update 7

Red Hat Enterprise Linux Server 6 (64-bit)

SUSE Linux Enterprise Server 11 (64-bit)

SP1

Windows Server 2003 Standard, Enterprise, and Datacenter (64-bit [EM64T])

SP2

SP2

Windows Server 2008 R2 Standard, Enterprise, and Datacenter (64-bit [EM64T])

SP1

5,    配置PostgreSQL的客户端。由于直连方式要求ArcSDE的客户端必须安装数据库的客户端类库,因此首先须要获取PostgreSQL的客户端。ArcGIS Desktop是32位软件,须要的是32位的PostgreSQL类库。找到PostgreSQL的客户端,或者在别的机器上将32位的 libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, and ssleay32.dll文件拷贝到Desktop 安装目录的bin目录下;

6,         拷贝 st_geometry.dll,将Desktop 安装目录下的DatabaseSupport/PostgreSQL/Windows64(看到64了吧)目录下,拷贝st_geometry.dll文件到PostgreSQL的lib目录。在PostgreSQL中建立Geodatabase时必须用到此类库;

7,        配置pg_hba.conf,修改PostgreSQ 的pg_hba.conf文件,添加“host     all          all      0.0.0.0/0       md5”(关于该文件的配置,能够参阅相关资料);

8,        在安装完SDE后,发现没有以往的post界面,在10.1中,对于建立企业级Geodatabase都采用工具箱中提供的工具,换句话说,之前的post被Toolbox中的一堆工具替代;

9,        建立地理数据库

10.1在建立地理数据库的时候,提供了三个,Oracle,SQL Server和Postgresql,咱们用这个工具建立地理数据库,这个过程至关于早起的POST过程,建立数据库并写入一堆系统表等,建立界面以下图:

 

建立成功后就能够在pgAdmin中看到sde这个数据库,而且看到不少系统表,以下图:

 

10,     链接地理数据(直连);

在上面说了ArcGIS 10.1对数据库链接作了统一,那如何判断是关系型数据库仍是空间数据库呢?其实这点并不难,由于在建立空间数据库的时候,咱们同时建立了用户名和密码,那么用这个用户名链接,并选择建立的这个数据库,那么这个数据库就是空间数据库,链接界面以下图:

 

链接成功后,我在数据库里建立了要素数据集添加了几个数据,作了一个拓扑分析(作这个的目的不是为了作拓扑,而是为了验证可否作拓扑分析,因此拓扑分析的结果咱们不作讨论),结果以下:

 

同理,作了一个几何网络,效果以下:

 

 

如今咱们想一个问题,上面咱们使用的是直连的方式访问数据库,你们以为是否缺乏什么呢?咱们会想之前如何使用数据库的,首先装了关系型数据库(Postgresql),这一步咱们有了,而后就是安装ArcGIS SDE for postgresql,这一步咱们没有,而后就是建立数据库,链接数据库。从整个过程来看,咱们没有安装SDE,那为何也能够建立空间数据库呢?

这也是我本身发现的一个,在开始的时候,个人确是安装了SDE,可是我发现这个安装不想ArcGIS 10 或者以前的弹出一个post的界面,装了以后什么反应都没有,我去安装目录下看了看,发现这个安装其实就是解压了一些东西,而个人空间数据库尚未创建呢?再后来发现链接数据库的时候,没有服务这个选项,当初我就以为这个安装跟我链接数据库没有关系,因而卸载了,根据:http://resources.arcgis.com/en/help/main/10.1/index.html#/Setting_up_a_geodatabase_in_PostgreSQL/002p00000001000000/仔细看了一遍,发现这个过程的确不安装SDE是能够的,跟售后的同事确认了下,得出的结论:若是是使用直连方式,ArcGIS 10.1 是不用安装SDE的任何组件。新的问题来了,咱们知道在之前的版本中SDE还有一种方式就是服务链接,那如何使用服务链接呢?

若是细心的话,咱们能够发如今安装SDE的时候,有两个组件让咱们安装:

 

根据组件右边的描述,咱们知道这个安装就是针对服务链接的,也就是说若是要使用服务方式链接,就须要安装SDE,如何建立服务,如何使用服务链接(咱们明显看到链接中根本就没有服务这个选项)就是咱们下来要讨论的问题。

如何使用服务的方式链接数据库

服务链接的额外步骤

  1. 安装ArcSDE for PostgreSQL 10.1;
  2. 修改ArcSDE安装目录中services.sde文件和Windows中的hosts文件,分别增长“esri_sde 5151/tcp”记录;
  3. 建立ArcSDE服务。分别键入如下两个命令以完成在注册表中建立服务的工做:
    sdeservice -o create -d POSTGRESQL,postgresql-x64-9.0
    sdeservice -o register -d POSTGRESQL,postgresql-x64-9.0 -r ADMIN_DATABASE -v sde
  4. 启动服务。能够用“sdemon –o start”命令或从Windows服务面板中启动ArcSDE服务;

  1. 建立链接。在catalog中只能建立直连服,所以须要使用新的Create ArcSDE Connection File GP工具来建立ArcSDE服务链接文件。建立成功后,在catalog中找到这个链接双击就能够打开。

经过这个工具,若是咱们的数据库是ArcGIS 10 或者以前的,而且采用服务的方式,那么在使用10.1的时候,应该用这个工具吧(没有测试,根据向下兼容,我本身猜测)

相关文章
相关标签/搜索