去年寫了ArcGIS 10.1 如何串連Postgresql 資料庫(http://blog.csdn.net/arcgis_all/article/details/8202709)當時採用的也是ArcGIS 10.1預設的直連方式,在跟客戶的交流中得知,客戶還想使用服務的串連方式,在這裡我將如何使用服務串連的方式也以文檔的形式記錄下來,希望能對大家有所協助。
在ArcGIS 10.1的時候要支援9.1系列的Postgresql資料庫需要安裝sp1,這算是一個硬性要求。ArcGIS 10.2 即將發布,在ArcGIS 10.2中對Postgresql資料庫的支援有了更多的選擇,可以支援9.0系列的,9.1系列和9.2系列的Postgresql資料庫。這對大家帶來得好處不言而喻。
1 安裝環境
2 安裝過程
2.1 建立sde使用者
在linux上安裝sde ,必須建立一個名為sde的作業系統賬戶,這個賬戶將負責sde的啟動,停止等操作,命令如:
將SDE軟體傳到linux上,可以通過SSH,FTP,在虛擬機器上還可以直接掛在ISO檔案。在這裡我直接將所需要的檔案(pg_64)傳到了linux上,放在了/var/SDE目錄中,確保sde使用者對這個檔案夾有讀寫權限,使用sde使用者進入到/var/SDE/pg_64目錄中,按下面的操作進行:
說明:因為SDE在10.1中發生變化(SDE由Application Server和Command Line Tools組成,其中後者是可選部分,安裝後者可以通過命令列對SDE進行操作),在這裡只安裝Application Server,根據提示就可以完成SDE的安裝(安裝目錄:/var/pgsde/)。
2.2 配置環境變數
在/home/sde/.bash_pfofile檔案中寫入SDE和Postgresql的環境資訊,如下:
說明SDEHOME為SDE安裝的家目錄,PGHOME為Postgresql的家目錄。
2.3 編輯services.sde檔案和/etc/services檔案
將$SDEHOME/etc目錄下的services.sde檔案esri_sde前面的“#”去掉,後面的5151是SDE的服務連接埠,可以根據需要修改,這裡我保留預設,最終效果如下:
利用root使用者,在/etc/services檔案中添加和service.sde檔案中相同的內容,如下:
2.4 複製st_geometry.so
將ArcGIS for Desktop安裝目錄或者ArcGIS for Server 安裝目錄中\DatabaseSupport\PostgreSQL\Linux64下的st_geometry.so拷貝到$PGHOME/lib /postgresql/,並確保sde使用者對st _geometry.so擁有755許可權。
注意:在windows上是將Windows64下的st_geometry.dll拷貝到postgresql安裝的lib目錄下,這裡需要注意。
如果不複製這個檔案,那麼在建立資料庫的時候會遇到下面的錯誤:
2.5 建立SDE資料庫
因為ArcGIS for Desktop是32位的,所以串連64位的資料庫需要32位的資料庫用戶端,所以要在ArcGIS for Desktop的機器上安裝相應資料庫32位的用戶端,關於更多資訊請看(http://blog.csdn.net/arcgis_all/article/details/8202773)
在ArcMap中利用Create Enterprise Geodatabase 工具建立SDE,如下:
2.6 啟動服務
SDE資料庫建立完成後,在linux上使用(sde使用者)sdemon –o start 命令啟動服務,如:
這裡可能會遇到上面提示的錯誤,找不到libssl.so.6,用下面兩個命令就可以搞定(切換到root使用者):
In-sf /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.6
ln -sf /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.6
然後重新使用sdemon -o start 命令就可以搞定,如:
可以查看狀態,因為目前還沒有資料庫連接,這裡顯示的為0,如下:
2.7 建立ArcSDE 串連檔案
使用Create ArcSDE Connection File工具建立ArcSDE連結檔案,如:
2.8 匯入資料
建立成功後,在Catlogu中找到該檔案,然後匯入一個資料,如:
2.9 使用pgAdmin查看
用pgAdmin用戶端串連到Postgresql資料庫,可以看到已經有了SDE資料庫和剛才匯入進去的資料。