通常用户在使用要素服务时,要求数据必须是存放在空间数据库中的。同时,需要将数据库注册到ArcGIS for Server,这样在发布服务时就不需要进行数据拷贝,从而可以节省磁盘空间及服务发布时间。以下就ArcGIS平台的Desktop和Server产品中如何使用PostgreSQL数据库进行总结,包括Linux版的ArcGIS for Server和PostgreSQL以及Windows版的ArcGIS for Server和PostgreSQL。

1 前提条件

1.1 ArcGIS平台软件支持操作系统要求

在ArcGIS10.1以后版本,ArcGIS for Server产品的操作系统要求必须是64位。不管是Windows还是Linux,这一点都需要注意。建议大家安装软件之前一定核查当前操作系统是否满足当前版本软件的安装要求。 如ArcGIS for Server10.2安装系统要求列表: htp://resources.arcgis.com/zh-cn/help/system-requirements/10.2/index.html#/na/015100000072000000/

1.2 ArcGIS平台支持数据库系统版本要求

同样,ArcGIS平台软件对于不同版本的数据库产品支持情况也是不大一样的。在软件安装之前需要核查当前版本软件与客户安装数据库软件产品的版本是否匹配和兼容。 如ArcGIS10.2平台对PostgreSQL数据的支持情况如下: http://resources.arcgis.com/zh-cn/help/system-requirements/10.2/index.html#/na/015100000075000000/

PostgreSQL 9.0.5(64 位)、PostgreSQL 9.1.3(64 位)、PostgreSQL 9.2.2(64 位)

1.3 软件安装和数据库连接配置的文件权限

在进行软件安装或者数据库连接配置时,通常需要对相关文件或者目录有相应的操作权限,尤其是Linux环境。在PostgreSQL软件和ArcGIS for Server软件进行安装时都要有安装目录及其子目录的读写权限。 一般通过Chmod –R 777 /home/arcgis/ArcGISServer来设置即可。 在软件安装或者配置出错时,请检查相关权限问题。

1.4 ArcGIS平台连接数据库软件的常识

一般来说,数据库软件分为服务器端和客户端。对于ArcGIS的工程师来说,配置数据库连接其实就是要配置不同操作系统环境不同数据库平台的客户端连接信息。 对于ArcGIS for Desktop的数据库连接配置来说,需要在安装Desktop的这台机器上安装或者配置免安装的数据库客户端,同时需要在数据库软件安装的机器设置环境变量和数据库监听信息。需要注意的是Desktop连接数据库需要32位的客户端或者相关库文件。 对于ArcGIS for Server的数据库连接配置来说,就是进行数据库注册之前,需要在安装Server的机器上来安装或者配置64位数据库客户端或者相关库文件。

2 ArcGIS平台连接PostgreSQL数据库Windows版

2.1 Windows版PostgreSQL数据库配置

对于Windows版的PostgreSQL数据库,在安装完成后需要配置数据库的连接设置。需要配置文件的默认路径:C:\Program Files\PostgreSQL\9.2\data。配置文件为pg_hba.conf和postgresql.conf。

2.1.1 pg_hba.conf配置

可以连接到该数据库的机器信息 默认配置只允许本机连接。 # IPv4 local connections: host all all 127.0.0.1/32 md5 添加其他连接 允许10.1.1.0~10.1.1.255网段登录数据库: host all all 10.1.1.0/24 md5 添加信任192.168.1.10登录数据库: host all all 192.168.1.10/32 trust 允许所有机器访问 host all all 0.0.0.0/0 trust 具体可参考该连接:http://www.cnblogs.com/hiloves/archive/2011/08/20/2147043.html

2.1.2 postgresql.conf配置

数据库的监听信息 listen_address=*,监听所有端口,这样远程客户端才能够访问该数据库。

2.1.3 st_geometry.dll配置

拷贝当前对应版本的st_geometry.dll的连接库到PostgreSQL数据库的lib目录。 如: \ArcGIS\Desktop10.2\DatabaseSupport\PostgreSQL\9.2\Windows64\st_geometry.dll 目标目录:C:\Program Files\PostgreSQL\9.2\lib

2.2 ArcGIS for Desktop连接Windows版PostgreSQL

完成数据库配置后,在Desktop中连接数据库相对比较简单。通过ArcGIS for Desktop的帮助可以看到Desktop连接PostgreSQL数据库需要用到的客户端连接库为:libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll 和 ssleay32.dll。 pg_client_windows86: 包含了用于从 Windows 操纵系统上的 32 位客户端连接到 PostgreSQL 数据库所需的客户端文件。文件包括 libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll 和 ssleay32.dll。 需要找到所安装版本数据库的这些库文件,然后拷贝到Desktop的bin目录下。 找到PostgreSQL数据库9.2版本的相关库文件拷贝到: 目标目录:C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 完成以上配置就可以在ArcGIS for Desktop中来连接PostgreSQL数据库了,但是通常需要使用Desktop自带的工具先创建空间库。

需要指出的是,这个工具默认创建的表空间会在Oracle的环境变量的制定目录,假如你是rac或者表空间存放位置不在默认目录时,请先在Oracle中创建sde用户及表空间,并将表空间分配给指定sde用户,然后,在创建空间库时使用已有的sde用户和表空间。否则会出现错误。

创建完成后就可以通过Desktop来连接空间库sde

2.3 AGS(Windows版)连接Windows版PostgreSQL

ArcGIS for Server连接PostgreSQL数据库又分为是Windows版的Server还是Linux版的Server。具体配置也稍有不同。 Windows版Server配置需要拷贝PostgreSQL数据库对应版本的库文件到Server的bin目录。

pg_client_windows64: 包括用于从 Windows 操纵系统上运行的 64 位客户端连接到 PostgreSQL 数据库所需的客户端文件。文件包括 libeay32.dll、libintl.dll、libpq.dll 和 ssleay32.dll。 找到PostgreSQL数据库9.2版本的相关库文件拷贝到: 目标目录:C:\Program Files \ArcGIS\Server10.2\bin ArcGIS for Server数据库注册,通过桌面连接到Server,通过服务器属性——数据存储选项卡来添加数据库。

填写数据库连接信息或者选择通过Desktop创建的数据库连接文件导入数据库连接信息。

2.4 AGS(Linux版)连接Windows版PostgreSQL
      Linux版的ArcGIS for Server连接PostgreSQL数据库与Windows基本类似,不同的是Server需要的连接库文件不同。 pg_client_linux64: 包含了用于从 Red Hat Linux 操纵系统上运行的 64 位客户端连接到 PostgreSQL 数据库所需的 RPM 客户端文件。库包括 libpq.so、libpq.so.5 和 libpq.so.5.3。

注:在PostgreSQL9.2的版本对应的库为:libpq.so、libpq.so.5 和 libpq.so.5.5。 在Linux版PostgreSQL数据库的安装目录或者有现有对应版本数据库的Linux客户端找到以上文件拷贝到Linux版Server的lib目录下。

然后,同样通过Desktop连接到Linux的Server,重复Windows版Server数据库注册的步骤。

3 ArcGIS平台连接PostgreSQL数据库Linux版

3.1 Linux版PostgreSQL数据库配置

对于Linux版的PostgreSQL数据库,首先,安装时注意安装目录的读写权限,否则会提示安装不成功。在安装完成后需要配置数据库的连接设置。需要配置文件的默认路径:/opt/PostgreSQL/9.2/data。配置文件为pg_hba.conf和postgresql.conf。

3.1.1 配置系统环境变量

通过直接编辑文件或者在命令行工具vi修改etc下的profile文件。 vi /etc/profile 添加一下配置: export LD_LIBRARY_PATH=/opt/PostgreSQL/9.2/lib;$LD_LIBRARY_PATH export PATH=/opt/PostgreSQL/9.2/bin:$PATH export PGDATA=/opt/PostgreSQL/9.2/data

3.1.2 pg_hba.conf配置

可以连接到该数据库的机器信息 配置内容与Windows版相同。 如果条件具备的话,可以直接修改文件。 终端修改命令:vi /opt/PostgreSQL/9.2/data/pg_hba.conf

3.1.3 postgresql.conf配置

可以连接到该数据库的机器信息 配置内容与Windows版相同。 终端修改命令:vi /opt/PostgreSQL/9.2/data/postgresql.conf

3.1.4 st_geometry.so配置

拷贝当前ArcGIS产品对应版本的Linux版st_geometry库到PostgreSQL数据库的lib/postgresql目录下,可不是lib目录哦。

如: \ArcGIS\Desktop10.2\DatabaseSupport\PostgreSQL\9.2\ Linux64\st_geometry.so 目标目录://opt/PostgreSQL/9.2/lib/postgresql

3.2 ArcGIS for Desktop连接Linux版PostgreSQL

其实完成Linux版PostgreSQL的以上配置后,Desktop连接Linux版本的PostgreSQL与Windows版没有任何区别,同样需要32位的PostgreSQL数据库连接库文件,然后创建企业级地理数据库,连接即可。 pg_client_windows86: 包含了用于从 Windows 操纵系统上的 32 位客户端连接到 PostgreSQL 数据库所需的客户端文件。文件包括 libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll 和 ssleay32.dll。

3.3 AGS(Windows版)连接Linux版PostgreSQL

ArcGIS for Server的Windows版连接PostgreSQL数据库的Linux版与Windows版基本没有区别。同样需要Windows版的PostgreSQL数据库连接库文件。通过Desktop连接Server,然后服务器属性注册数据库。 pg_client_windows64: 包括用于从 Windows 操纵系统上运行的 64 位客户端连接到 PostgreSQL 数据库所需的客户端文件。文件包括 libeay32.dll、libintl.dll、libpq.dll 和 ssleay32.dll。

3.4 AGS(Linux版)连接Linux版PostgreSQL

ArcGIS for Server的Linux版连接PostgreSQL数据库的Linux版与Server的Linux版连接Windows版PostgreSQL数据库基本没有区别。 需要拷贝ArcGIS产品对应Linux版的库文件到Server的lib目录。 pg_client_linux64: 包含了用于从 Red Hat Linux 操纵系统上运行的 64 位客户端连接到 PostgreSQL 数据库所需的 RPM 客户端文件。库包括 libpq.so、libpq.so.5 和 libpq.so.5.3。 注:在PostgreSQL9.2的版本对应的库为:libpq.so、libpq.so.5 和 libpq.so.5.5。 然后,同样通过Desktop连接到Linux的Server,重复Server数据库注册的步骤。

ArcGIS平台中PostgreSQL数据连接配置总结的更多相关文章

  1. ArcGIS SDE 10.1 for Postgresql 服务连接配置

    去年写了ArcGIS 10.1 如何连接Postgresql 数据库(http://blog.csdn.net/arcgis_all/article/details/8202709)当时采用的也是Ar ...

  2. PostgreSQL远程连接配置

    postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下: 1.postgresql.conf 将该文件中的listen_addresses项值设定为“* ...

  3. Postgresql 远程连接配置

    原文地址:http://blog.chinaunix.net/uid-20684384-id-1895247.html 1. 设置远程访问认证机制 编辑 $POSTGRES/data/pg_hba.c ...

  4. 在web应用程序中在网页中对Web.config文件进行数据连接配置

    using System; using System.Collections.Generic; using System.Configuration; using System.Web.Configu ...

  5. 寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现。本文记录HAProxy服务热加载后某微服务50%概率失效的问题。设计3组对比实验,验证了陈旧配置的HAProxy在Reload时没有退出进而导致微服务丢失,并给出了解决方案. Keywords:HAProxy热加

    寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现.本文记录HAPro ...

  6. ArcGIS Desktop直连PostgreSQL安装及配置图解(windows)

    目录 1 PostgreSQL 11.0安装及配置 2 psqlODBC安装及配置 3 PostGIS安装及配置 4 pgAdmin4使用入门 5 空间数据导入 5.1 将PostgreSQL的bin ...

  7. Mybatis数据连接池的配置---增删改查(以及遇见的问题)

    1.首先创建项目和各个文件,如图所示: 2.配置相关数据库连接 在jdbc.properties中加入 1 db.driver=com.mysql.jdbc.Driver 2 db.url=jdbc: ...

  8. 帆软报表FineReport中数据连接之Weblogic配置JNDI连接

    1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...

  9. 帆软报表FineReport中数据连接之Jboss配置JNDI连接

    使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...

随机推荐

  1. Django简介

    Django, 应该读作jan go,读音演示 D是不发音的---发音的---音的---的--- django简介:urls.py网址入口,关联到views.py views.py处理用户发出的请求, ...

  2. vs2012 MSDN帮助文档离线包下载安装方法

    vs2012安装文件 自带的 MSDN帮助文档不全, 需要自己手动添加需要的离线文档包, 具体方法如下 1. 打开 vs2012 2. 按 ctrl + alt + F1 打开帮助文档管理器 3. 在 ...

  3. React Native入门遇到的一些问题

    本文示例参考自<React Native第一课> React Native官方文档中文版(含最新Android内容) 这里只大概记录下我的操作步骤和遇到的问题,一定要牢记下面这条: 如果你 ...

  4. Python3 字符串

    Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32Type & ...

  5. Android 多线程-----AsyncTask详解

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...

  6. 利用 Python 只连接一次 MySQL

    Github 地址 项目背景 最近做个项目,需要进行试驾分析,所谓"试驾",是指顾客在 4S 店指定人员的陪同下,沿着指定的路线驾驶车辆,从而了解这款汽车的行驶性能和操控性能.通常 ...

  7. Javascript生成全局唯一标识符(GUID,UUID)的方法

    方法一 function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { v ...

  8. [转] Visual Studio Code behind a proxy

    http://www.tuicool.com/articles/jyyIBf3 http://blog.majcica.com/2016/04/07/visual-studio-code-behind ...

  9. AngularJS初始化闪烁

    可以使用:ng-if和ng-cloak解决,原因见:http://www.cnblogs.com/whitewolf/p/3495822.html

  10. 理解netty对protocol buffers的编码解码

    一,netty+protocol buffers简要说明 Netty是业界最流行的NIO框架之一优点:1)API使用简单,开发门槛低:2)功能强大,预置了多种编解码功能,支持多种主流协议:3)定制能力 ...