一般用户在使用要素服务时,要求数据必须是存放在空间数据库中的。同时,须要将数据库注册到ArcGIS for Server,这样在发布服务时就不须要进行数据拷贝,从而能够节省磁盘空间及服务发布时间。如下就ArcGIS平台的Desktop和Server产品中如何使用PostgreSQL数据库进行总结,包括Linux版的ArcGIS for Server和PostgreSQL以及Windows版的ArcGIS for Server和PostgreSQL。html
1 前提条件 linux
1.1 ArcGIS平台软件支持操做系统要求 sql
在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平台支持数据库系统版本要求windows
一样,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 软件安装和数据库链接配置的文件权限 post
在进行软件安装或者数据库链接配置时,一般须要对相关文件或者目录有相应的操做权限,尤为是Linux环境。在PostgreSQL软件和ArcGIS for Server软件进行安装时都要有安装目录及其子目录的读写权限。 通常经过Chmod –R 777 /home/arcgis/ArcGISServer来设置便可。 在软件安装或者配置出错时,请检查相关权限问题。ui
1.4 ArcGIS平台链接数据库软件的常识 spa
通常来讲,数据库软件分为服务器端和客户端。对于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数据库注册的步骤。