衆說周知,ArcSDE空間數據庫引擎提供了兩種鏈接數據庫的方式。一是服務鏈接方式,一是直連方式。後者也是Esri所推崇的方式。可是,在客戶的生產環境和開發商的開發環境中這兩種方式都是有需求的。下面就以截圖說明的形式跟你們分享下在ArcGIS10.0和10.1中安裝和配置空間數據庫引擎的通常流程和注意事項。html
1.直連方式數據庫
Esri之因此推薦使用直連方式,就是由於直連方式有明顯的優點,能夠給客戶帶來更大的效率和價值。服務器
a.直連方式的主要優點:併發
A.直連方式較服務鏈接方式卸載了20%-40%的負載;oracle
B.直連方式下降了服務器端內存的需求;app
C.直連方式處理速度更快,在客戶機上執行處理;tcp
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.服務鏈接方式
對於不少實施人員來講,他們的應用可能比較簡單,須要考慮的主要是實施部署的便捷。那麼服務鏈接的優點就體現出來了。不須要客戶端安裝和配置。
對於服務鏈接方式,都須要安裝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,具體能夠對比相關截圖。
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配置成功。
在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)下。檢查方法同上。
對於開發商或者用戶來講,他們除了作好空間數據庫的配置外。還會牽扯數據組織以及服務發佈等問題。在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服務器——數據存儲,能夠找到下圖的配置頁面,註冊方式與桌面端相似。
空間數據庫引擎ArcSDE的直連方式和服務鏈接方式分別適用不一樣的應用場景。直連方式因爲在客戶機上執行處理,因此,它不只處理速度較快、並且還可以下降服務器器端內存的消耗和負載。所以,推薦你們使用直連方式,而且在發佈服務時註冊相關數據庫和文件夾。可是,因爲直連方式須要安裝數據庫客戶端,配置相對比較繁瑣。對於併發量較小的簡單應用使用服務鏈接方式可能會更加便捷。此外,ST_Geometry存儲格式可讓GIS專業人員經過SQL來方便、快捷、高效的操做空間信息就像操做其餘數據同樣,所以也推薦你們使用。