標籤:
通常使用者在使用要素服務時,要求資料必須是存放在空間資料庫中的。同時,需要將資料庫註冊到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資料連線配置總結