1. 程式人生 > >ArcGIS 10.1中的Desktop連線ArcSDE——以Oracle為例

ArcGIS 10.1中的Desktop連線ArcSDE——以Oracle為例

ArcGIS從10.1以後,SDE這個產品的連線方式發生了很大的改變,剛剛安裝好ArcMap的時候,開啟原來用來建立SDE連線的節點,頓時傻眼了,

這東西怎麼使啊?經過一頓找資料以後發現:原來以後的ArcSDE推薦都是採用直接連線的方式,那麼我們先看看採用直連怎麼連線SDE吧。

直接連線Oracle資料庫

筆者使用Oracle資料庫比較多,相信中國政府使用者中使用Oracle的應該也是最多的,本例中採用Oracle 11g資料庫作為試驗資料庫。

安裝列表:

Oracle database 11g R2 64bit

Oracle Client 11g R2 64bit

ArcGIS for Desktop

這裡有個問題需要說明一下:因為從10.1以後,訪問SDE推薦採用直接連線資料庫的形式,因此連線資料庫也就選用了各自的資料庫客戶端進行訪問管理,因此,Oracle Client是必須安裝的。選用的版本根據裝ArcGIS for Desktop的作業系統來定,比如筆者是在本機(Win7 64bit)安裝Oracle和ArcGIS for Desktop那麼就需要選用64位的客戶端,如果Oracle安裝在64位的伺服器上,而需要進行資料連線的安裝了Desktop的機器是32位的,那麼就需要在訪問機器上安裝32位的客戶端。

當然,細心的您一定發現了,這裡有一個非常之重要的東西沒有安裝——ArcSDE for Oracle!!

這是因為採取直連的方式,我們並不需要SDE為我們建立表什麼的,如果想要建立SDE資料庫,我們直接用ArcMap裡面的工具建立即可,因此採用直連方式連線資料庫,並不需要安裝ArcSDE!!!

在使用Desktop連線資料庫之前,先測試資料庫的訪問是否正確:

使用Sys作為sysdba登陸成功,好了現在建立一個用來測試的TEST使用者。

使用者的基本情況如下:

可以看到這是一個空的沒有任何物件在使用者下面的乾淨使用者,所有的許可權就是連線資料庫和建立資料庫資源物件。

在ArcMap中雙擊那個讓人無從下手的連線,填寫連線屬性如下:

其他選項都是沒有什麼技術含量的但是中間的Instance比較令人糾結,查詢幫助中有這樣的文件:

ArcGISfor Desktop中的資料連線

本例中是本機,且服務名為orcl因此填寫方式如上,其他情形下的Oracle連線,下圖中的連線方式:

好了,測試一下我們的資料庫:

雙擊後小叉沒有了,表示連線成功!

在建立新的要素類的時候,對話方塊中只有SDO型別的資料儲存方式

這是什麼原因呢?回想一下剛才的安裝過程好似比原來的SDE安裝和連線少了東西,就是PostInstall,這是原本用來建立SDE要用的表的,但是我們的連線依然成功了,這是為什麼呢?

在SDE10.1以後,ArcGIS連線關係型資料庫的主要方式是直接連線了,直接連線資料庫,利用資料庫的使用者許可權管理,讀取資料表,序列等等資料庫原有的物件也是新特性,所以我們按照原來的方式建立的是一個對Oracle使用者的直接連線訪問!正是因為這樣,我們新建立要素類的時候才只有SDO型別的。

值得一提的是,選擇幾何參考的介面允許查詢了,免除了大家在各種引數中間奮力查詢的麻煩。

點選完成,我們的點已經建立起來了。

但是,還有一個問題:這樣建立的要素類可以編輯麼?答案是否定的!原因很簡單,因為這樣的資料無法註冊到地理資料庫:

這樣的資料我們只能採用提示的處理方式:匯出成gdb或者shp再編輯後匯入了。

建立地理資料庫並直接連線

上面的連線方式讓我們看到了現在ArcGIS的資料連線的靈活度,但是很多SDE原有的功能都受到限制,比如編輯和版本管理,那麼我們接下來連線一個建立為地理資料庫的使用者,再設定它的連線吧。

地理資料庫連線現在已經全部工具化了,他們都在系統工具中,我們要用到的建立地理資料庫的工具,在Data Management tools->Geodababsase Administration->CreateEnterprise Geodatabase裡面(如果點開的時候出錯,請選擇執行載入項)。

填寫情況如下:

好了,建立成功!!

建立成功後,再採用SDE使用者建立一個直接連線,方式與上面相同:

建立後我們就能夠建立更多的內容了。

再試著建立一個線資料類,並註冊到資料庫,這樣就可以開始編輯了!

利用服務連線SDE資料庫

接下來,大家肯定有跟我一樣的疑惑:是不是Esri已經拋棄了SDE的服務?是不是以後就不採用服務方式了呢?答案肯定是服務方式連線依然是我們支援的內容!

 操作步驟如下:

首先安裝ArcSDE for Oracle 11g!我們關注一下,安裝SDE的時候安裝了哪些東西,分別有什麼作用吧:

上圖中,Application Server是用來在GIS應用和企業空間資料庫之間傳遞空間資料的。也就是原來的SDE服務做的工作,而Command line tools從名字就知道是命令列工具,是通過命令列來管理ArcSDE服務的。

安裝完成ArcSDE後,我們修改ArcSDE安裝目錄中services.sde檔案和Windows中的services檔案,分別增加“esri_sde 5151/tcp”記錄,他們的格式是<服務名>  <服務埠>/<通訊型別>

Windows中的services檔案位置為C:\Windows\System32\drivers\etc\services

ArcSDE中的services檔案位置為<ArcSDE安裝目錄>\ora11gexe\etc\services

修改完畢後儲存檔案。

用命令列建立ArcSDE服務(詳細命令解釋請點選此處):

建立了SDE的服務,我們需要啟動它,命令如下:

啟動服務之後我們利用Catalog裡面的工具Create ArcSDE Connection File:

建立連線檔案後,即可在建立連線檔案的位置直接點開這個SDE連線了!