一般用戶在使用要素服務時,要求數據必須是存放在空間數據庫中的。同時,須要將數據庫註冊到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數據庫註冊的步驟。