ArcGIS平臺中PostgreSQL資料連線配置總結
通常使用者在使用要素服務時,要求資料必須是存放在空間資料庫中的。同時,需要將資料庫註冊到ArcGIS for Server,這樣在釋出服務時就不需要進行資料拷貝,從而可以節省磁碟空間及服務釋出時間。以下就ArcGIS平臺的Desktop和Server產品中如何使用PostgreSQL資料庫進行總結,包括Linux版的ArcGIS for Server和PostgreSQL以及Windows版的ArcGIS for Server和PostgreSQL。
1 前提條件
1.1 ArcGIS平臺軟體支援作業系統要求
1.2 ArcGIS平臺支援資料庫系統版本要求
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資料庫註冊的步驟。