ArcGIS 10.1如何連接數據庫?
最近在使用ArcGIS 10.1的數據庫時,發現了與以往不同的地方。在這裏,我將我的經驗和想法分享給大家(使用Postgresql)。根據使用流程,我會把內容分成兩部分(這兩部分是我用完後分開重新整理,穿插自己的想法。歡迎與我們交流。),10.1不需要安裝arcgis sde。可以通過工具直接在Oracle上建立空間數據庫,直接鏈接。
如何通過直連的方式連接數據庫?
1,ArcGIS 10.1統壹數據庫連接,即不通過OLEDB模式區分空間數據庫連接和關系數據庫連接。
左圖是10.1下的截圖,右圖是10.0下的截圖。
2.在目錄中只能采用直接連接;
3.在ArcGIS 10.1版本中,Esri提供的安裝介質不再包含Postgresql(之前包含);
4.安裝Postgresql時,官方軟件要求是64位,所有企業數據庫都是64位(這個應該和服務器有關,因為服務器10.1是純64位,桌面軟件DatabaseSupport目錄中給出的幾個dll都是64位,後面會用到。官方軟件要求如下:
數據庫?資料庫
支持的操作系統
最低操作系統版本
最高操作系統版本
PostgreSQL 9.0.5 (64位)
red Hat Enterprise Linux Server 5(64位)
更新7
red Hat Enterprise Linux Server 6(64位)
SUSE Linux企業服務器11 (64位)
SP1
Windows Server 2003標準版、企業版和數據中心版(64位[EM64T])
SP2
SP2
Windows Server 2008 R2標準版、企業版和數據中心版(64位[EM64T])
SP1
5.配置PostgreSQL的客戶端。因為直連方式要求ArcSDE的客戶端必須安裝數據庫的客戶端類庫,所以需要先獲取PostgreSQL的客戶端。ArcGIS Desktop是壹款32位軟件,需要32位PostgreSQL類庫。找到PostgreSQL的客戶端,或者將libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、ssleay32.dll的32位文件復制到其他機器上桌面安裝目錄的bin目錄下;
6.復制st_geometry.dll,將st_geometry.dll文件復制到桌面安裝目錄下數據庫support/PostgreSQL/Windows 64(見64)目錄下PostgreSQL的lib目錄下。在PostgreSQL中創建地理數據庫時,必須使用此類庫;
7.配置pg_hba.conf,修改PostgreSQ的pg_hba.conf文件,添加?主機所有所有0.0.0.0/0 md5?(該文件的配置請參考相關資料);
8.安裝SDE後,發現沒有以前的post界面。在10.1中,工具箱中提供的工具用於創建企業級地理數據庫。換句話說,以前的帖子被工具箱裏的壹堆工具代替了。
9.創建地理數據庫
10.1在創建地理數據庫時,提供了Oracle、SQL Server和Postgresql三種工具。我們使用這個工具來創建壹個地理數據庫。這個過程相當於早期的POST過程,創建壹個數據庫,寫壹堆系統表等。創建界面如下:
成功創建後,您可以在pgAdmin中看到數據庫sde,並看到許多系統表,如下所示:
10,連接地理數據(直連);
上面說了ArcGIS 10.1統壹了數據庫連接,那麽如何判斷是關系數據庫還是空間數據庫呢?其實這個並不難,因為在創建空間數據庫的時候,我們同時創建了壹個用戶名和壹個密碼,那麽用這個用戶名連接並選擇創建的數據庫,那麽這個數據庫就是空間數據庫,連接界面如下:
連接成功後,我在數據庫中創建了壹個特征數據集,添加了壹些數據,做了壹個拓撲分析(這樣做的目的不是做拓撲,而是驗證拓撲分析能不能做,所以不討論拓撲分析的結果)。結果如下:
用同樣的方法做壹個幾何網絡,效果如下:
現在我們來思考壹個問題。我們使用直接連接來訪問數據庫。妳覺得少了什麽嗎?我們會思考如何使用過去的數據庫。首先,我們安裝了關系數據庫(Postgresql),然後我們安裝了ArcGIS SDE for postgresql,但我們沒有安裝。然後我們創建數據庫並連接它。從整個過程來看,我們沒有安裝SDE,那麽為什麽我們也可以創建壹個空間數據庫呢?
這是我自己找到的。當初我確實安裝了SDE,但是我發現這次安裝不希望彈出ArcGIS 10或者之前的post界面,安裝後沒有任何反應。我去了安裝目錄,發現這個安裝其實解壓了壹些東西,但是我的空間數據庫還沒有建立。後來發現連接數據庫的時候,沒有服務選項。壹開始我以為這個安裝和我連接數據庫沒關系,就卸載了。根據:/en/help/main/10.1/index . html #/setting _ up _ a _ geodatabase _ in _ PostgreSQL/002 p 000000010000000/,我仔細看了壹下,發現這個過程在不安裝SDE的情況下確實是可以實現的。結論:如果使用直連,ArcGIS 10.1不需要安裝SDE的任何組件。新的問題來了。我們知道,在以前的版本中,SDE的另壹種方式是服務連接。如何使用服務連接?
如果我們細心的話,可以發現在安裝SDE的時候,有兩個組件需要我們安裝:
根據組件右邊的描述,我們知道這個安裝是針對服務連接的,也就是說,如果我們要使用服務連接,我們需要安裝SDE。如何創建服務,如何使用服務連接(我們明顯看到連接中沒有服務選項)是我們接下來要討論的問題。
如何使用服務連接數據庫?
服務連接的附加步驟
安裝arcsde for PostgreSQL 10.1;
修改ArcSDE安裝目錄中的services.sde文件和Windows中的hosts文件,並添加?esri_sde 5151/tcp?記錄;
創建ArcSDE服務。鍵入以下兩個命令在註冊表中創建服務:sdeservice-ocreate-d PostgreSQL,PostgreSQL-x64-9.0 sdeservice-or register-d PostgreSQL,PostgreSQL-x64-9.0-radmin _ database-vsde。
啟動服務。妳會用嗎?斯德蒙?o開始?從Windows服務面板中命令或啟動ArcSDE服務;
建立聯系。在目錄中只能創建直接服務,因此您需要使用新的創建ArcSDE連接文件GP工具來創建ArcSDE服務連接文件。成功創建後,在目錄中找到這個連接,雙擊打開它。
通過這個工具,如果我們的數據庫是ArcGIS 10或者之前的版本,采用的是服務模式,那麽我們在使用10.1的時候應該會用到這個工具(沒有測試,據我推測是向後兼容)。