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比較令人糾結,查詢幫助中有這樣的文件:
本例中是本機,且服務名為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連線了!