眾說周知,ArcSDE空間數據庫引擎提供了兩種連接數據庫的方式。一是服務連接方式,一是直連方式。后者也是Esri所推崇的方式。但是,在客戶的生產環境和開發商的開發環境中這兩種方式都是有需求的。下面就以截圖說明的形式跟大家分享下在ArcGIS10.0和10.1中安裝和配置空間數據庫引擎的一般流程和注意事項。
1.直連方式
Esri之所以推薦使用直連方式,就是因為直連方式有明顯的優勢,可以給客戶帶來更大的效率和價值。
a.直連方式的主要優勢:
A.直連方式較服務連接方式卸載了20%-40%的負載;
B.直連方式降低了服務器端內存的需求;
C.直連方式處理速度更快,在客戶機上執行處理;
D.不需要安裝ArcSDE軟件。
b.直連配置需求
上面也說過了,直連方式省去了ArcSDE軟件的安裝步驟。但是它卻需要安裝相應的數據庫客戶端,后面都以Oracle11gR2為例。確保Oracle數據安裝配置正確后,需要知道sys用戶密碼、端口號、實例名、服務名。
c.配置流程
A.安裝和配置Oracle客戶端(32)
對於ArcGIS Desktop連接來說,目前都需要安裝Oracle11gR2的客戶端,當然可以使用對應版本的免安裝客戶端,只不過需要手動配置環境變量而已。
如果是安裝完database后,再安裝的client,那么環境變量不需要手動修改。其內容如下:
E:\app\weihu\product\11.2.0\client_1\bin;E:\app\weihu\product\11.2.0\dbhome_1\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\ArcGIS\ArcSDE\ora11gexe\bin
然后,需要使用客戶端的NetManager工具配置服務名,如下圖的arcsde。
對於免安裝的客戶端,需要手動配置network/admin下的tnsnames.ora文件。
B.ArcGIS Desktop連接參數設置
完成Oracle客戶端安裝后,就可以在ArcGIS桌面中進行連接了,其設置參數和連接方式在ArcGIS Desktop不同版本稍有區別。
a.ArcGIS Desktop10.1
10.1中在ArcCatalog里面的數據庫連接中添加空間數據庫連接,如上圖。指定參數數據類型、實例(\\ip:port\servicename 可以參考左下角的Abort Database Connections)、認證。
b.ArcGIS Desktop10.0
直連方式在10.1與10.0中差異較小,注意相關參數,主要是機器(ip)、服務(sde:oracle11g:服務名[arcsde:使用客戶端配置的參數])、認證相同,如上圖。
2.服務連接方式
a.服務連接優勢
對於很多實施人員來說,他們的應用可能比較簡單,需要考慮的主要是實施部署的便捷。那么服務連接的優勢就體現出來了。不需要客戶端安裝和配置。
b.軟件安裝與配置
對於服務連接方式,都需要安裝ArcSDE for對應數據庫版本的軟件包。這個在ArcGIS10.1和ArcGIS10.0中差別較大。
A. ArcGIS10.1中ArcSDE的安裝與配置:
找到對應數據類型和版本的軟件安裝包安裝即可,沒有Post Install的向導。在軟件安裝完成后來使用命令創建sde服務。
找到ArcSDE安裝目錄下的service.sde文件取消esri_sde 5151/tcp前面的#號注釋。
同時,找到Windows中的service(system32/drivers/etc)文件添加一行esri_sde 5151/tcp。
然后使用命令sdeservice創建sde服務,如下圖,參數包括數據庫類型、實例名稱、sde用戶密碼、服務名等。
服務配置成功后,就可以在ArcGIS Desktop中連使用服務連接了。但是10.1中服務連接需要使用工具創建連接文件,然后連接,而不能像10.0中直接使用服務名或者5151連接。
使用Workspace工具箱中的Create ArcSDE Connection File工具來創建連接文件。
參數:連接文件存放位置、文件名、機器、服務名稱(esri_sde)、數據庫名、認證等。
上圖雙擊或者使用添加數據按鈕指定到該文件,就可在ArcGIS Desktop10.1中完成空間數據庫的服務連接。
B.ArcGIS10.0中ArcSDE的安裝與配置:
在ArcSDE10.0中提供了Post Install的向導,更能體現服務連接的便捷。向導可以完成的配置如下圖:
初次安裝選擇全部,然后下一步可以實現Oracle數據庫連接檢查(確保實例運行正常)。
接下來,可以設置sde的用戶名和密碼,創建sde表空間。
然后,設置服務名、端口號、機器名,Oracle實例名等,如下圖。
按照Post Inatall向導設置參數,最后完成授權,這樣就完成10.0環境的服務連接安裝與配置。不需要使用命令行創建服務,直接可以在ArcGIS Desktop中設置參數就可以連接了。
在ArcGIS10.0中服務方式連接和直連都可以使用ArcCatalog中空間數據庫連接的節點,設置參數進行連接,唯一不同就是服務參數。服務連接輸入esri_sde或者5151即可,直連需要輸入sde:oracle11g:arcsde,具體可以對比相關截圖。
3.ST_Geometry配置
ST_Geometry是一種遵循ISO和OGC規范的,可以通SQL直接讀取的空間信息存儲類型。采用這種存儲方式能夠更好的利用Oracle的資源,更好的兼容Oracle的特征。Esri的ArcSDE9.2開始支持這種存儲類型。
A.ST_Geometry主要優勢
ST_Geometry的優勢主要體現在以下幾個方面:
A.可以通過SQL函數直接訪問空間數據;
B.使用SQL語句操作空間數據可以和其他類型數據一樣便捷;
C.可以通過存儲過程來進行復雜的空間數據檢索和分享;
D.其他業務系統可以通過SQL語句來訪問Geodatabase中的數據;
ST_Geometry配置的方式
值得注意的是在配置ST_Geometry時,需要根據數據庫的版本和位數來安裝對應版本的ArcSDE軟件(比如Oracle是Win64_11gR2_database,就需要安裝ArcSDE for Oracle 11g64位軟件)。主要是包括配置需要引用的動態庫(st_shapelib.dll、pe.dll、sg.dll)。
官網給出了兩種配置方式:
http://support.esri.com/en/knowledgebase/techarticles/detail/38043
相關信息:
A. 配置listener.ora和tnsnames.ora文件方式;
在保證數據庫監聽配置正常的情況下,添加以下信息。
首先,在Oracle的安裝目錄下(%ORACLE_HOME%\Network\Admin\)找到tnsnames.ora文件;添加EXTPROC_CONNECTION_DATA信息如下:
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
其次,找到(%ORACLE_HOME%\Network\Admin\)下的listener.ora在SID_LIST_LISTENER下添加:
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = EXTPROC)
(ENVS = "EXTPROC_DLLS=C:\ArcSDE\ora11gexe\bin\st_shapelib.dll,PATH=C:\ArcSDE\ora11gexe\bin")
注:
A.路徑中最好不要有空格;
B.以上配置需要注意兩個文件listener.ora和tnsnames.ora中的SID和KEY一致。
不然會出現如下錯誤提示:
確保配置正確后,重啟Oracle監聽(lsnrctl stop、 lsnrctl start);
最后,通過命令測試ST_Geometry配置是否正常。
SQL> select * from user_libraries;來檢查st_shapelib.dll的位置配置。
如果不是正確的dll路徑(還有對應位數64/32)可以通過以下命令修改:create or replace library ST_SHAPELIB as 。
以上命令僅能說明dll位置配置是否正確,能否正常工作應該通過SQL函數來判斷:
如上圖,ST_ASTEXT函數能夠正確輸出信息,說明ST_Geometry配置成功。
- 配置extproc.ora方式;
在Oracle的安裝目錄下,找到%ORACLE_HOME%\hs\admin\下的extproc.ora文件,設置SET EXTPROC_DLLS參數。
EXTPROC_DLLS=ONLY:C:\\ArcSDE\\ora11gexe\\bin\\st_shapelib.dll或者EXTPROC_DLLS=ANY。需要注意的是后者需要拷貝st_shapelib.dll、pe.dll、sg.dll三個庫文件到Oracle安裝目錄(%ORACLE_HOME%\BIN)下。檢查方法同上。
4.空間數據注冊
對於開發商或者用戶來說,他們除了做好空間數據庫的配置外。還會牽扯數據組織以及服務發布等問題。在ArcGIS Server10.1中提供了空間數據庫和文件夾注冊的功能。其實,文件夾的注冊就類似於ArcGIS Server10.0中我們需要設置數據存儲目錄,共享並且設置權限來進行數據的組織。Server10.1中注冊數據庫和文件夾還有一個作用就是滿足生產數據和發布服務數據一致的需求。在不注冊的狀態下,發布服務時,會將服務相關數據上傳到GIS服務器,這樣不僅增加存儲空間,尤其是影像數據。而且會延長服務發布的時間。因此,我們一般推薦將GIS數據組織在注冊過的文件夾或者空間數據庫中來,提高工作效率。ArcGIS Server10.1中注冊數據庫和文件夾的方式有桌面端和Manager網頁端兩種。
A.桌面的服務器連接屬性設置:
在ArcGIS桌面的ArcCatalog中有GIS服務器連接的節點,點擊可以添加GIS服務器,在GIS服務器的連接上右鍵屬性可以打開下面的對話框,在Data Store中可以注冊數據庫和文件夾,並驗證。
B.ArcGIS Server Manager頁面中設置
在Server10.1的Manager頁面中,點擊站點——GIS服務器——數據存儲,可以找到下圖的配置頁面,注冊方式與桌面端類似。
5 .總結
空間數據庫引擎ArcSDE的直連方式和服務連接方式分別適用不同的應用場景。直連方式由於在客戶機上執行處理,所以,它不僅處理速度較快、而且還能夠降低服務器器端內存的消耗和負載。因此,推薦大家使用直連方式,並且在發布服務時注冊相關數據庫和文件夾。但是,由於直連方式需要安裝數據庫客戶端,配置相對比較繁瑣。對於並發量較小的簡單應用使用服務連接方式可能會更加便捷。此外,ST_Geometry存儲格式可以讓GIS專業人員通過SQL來方便、快捷、高效的操作空間信息就像操作其他數據一樣,因此也推薦大家使用。