ArcSDE工作機制

來源:互聯網
上載者:User
SDE工作機制

2007-09-25 18:03:01

ArcSDE屬於中介軟體技術,其本身並不能夠儲存空間資料,它的作用可以理解為資料庫的“空間擴充”。在基於Oracle的ArcSDE空間資料庫中, ArcSDE儲存了一系列Oracle對象,用於管理空間資訊。這些對象統稱為資料檔案庫(Repository),包含空間資料字典和ArcSDE軟體程式包。ArcSDE需要SDE使用者管理空間資料檔案庫,這類似於Oracle中需要SYS使用者管理資料字典。Oracle的資料字典儲存在SYSTEM 資料表空間中;相應地,在儲存ArcSDE空間資料檔案庫的時候,也需要使用特定的資料表空間。通常,為了方便起見,預設使用名稱也是SDE的資料表空間管理空間資料字典。
ArcSDE 的工作機制中,SDE使用者負責ArcSDE與Oracle的互動,通過維護SDE模式下的空間資料字典以及運行其模式中的程式包,來保證空間資料庫的讀/ 寫一致性。在ArcSDE服務啟動的過程中,SDE使用者通過Oracle驗證,並且建立和維護一個Oracle會話串連,串連的程式便是giomgr,即 ArcSDE伺服器管理進程,該進程一直存在,負責監聽使用者串連請求,分配相應的gsrvr管理進程(見注1),進行空間資料字典的維護。

ArcSDE的安全性

ArcSDE的安全機制完全依賴於Oracle,空間資料庫使用者(包括SDE),需要Oracle的使用者密碼才能夠訪問空間資料,ArcSDE本身並不儲存任何認證資訊。

在Oracle中,SDE使用者的最小系統使用權限設定要求是:

Create procedure / Create table / Create sequence / Create trigger / Create session

由此可見,SDE亦屬於Oracle資料庫中的普通許可權使用者。

對於Oracle來說,雖然SDE屬於非DBA使用者,但是在ArcSDE架構中,SDE的地位比較特殊,是ArcSDE管理員。只有SDE可以完成一些特定的工作:比如啟動/停止ArcSDE服務;終止某些使用者串連;壓縮多版本資料庫等。SDE使用者雖然不是一個真正的Oracle DBA使用者,但是在ArcSDE工作過程中,軟體會進行一些特定的對象許可權操作。因此,應該將SDE使用者等同於Oracle DBA使用者處理,就像SYS或者SYSTEM一樣,必須嚴格保護其密碼。

在ArcSDE空間資料庫中,從許可權管理層級上,可以把使用者分成兩大類:

1、 空間資料庫管理員,只有並且只能是SDE

2、 空間資料庫一般使用者,包括建立、瀏覽空間資料的除SDE外的其它oracle使用者 使用SDE使用者,強烈推薦遵循兩個原則:

  • SDE使用者不用於載入空間資料
  • SDE儲存資料檔案庫的資料表空間不用於存放空間資料

SDE使用者的特殊對象許可權

SDE 使用者作為Oracle資料庫的一般使用者,可以建立自己的表或者預存程序;作為ArcSDE空間資料庫管理員,在對象使用權限設定中,ArcSDE會自動授予 SDE一些對象許可權。SDE使用者需要這些對象許可權,以保證ArcSDE Geodatabase的完整性。空間資料庫的一般使用者在建立新的Geodatabase對象的時候,ArcSDE將這些建立對象的許可權授予SDE使用者。比如ACTC使用者建立一個名稱為Country的Geodatabase的要素類,此時資料庫中同時產生Country(即B表,Business Table)的相應支撐表,即F表(Feature Table)和S表(Spatial Index Table)。這時候,SDE使用者將自動擷取得到Country、F表和S表這幾個表的Select許可權。當使用者將Country註冊為版本,此時 ACTC模式下產生記錄編輯資訊的A表(Additions Table)和D表(Deletions Table)。這時候,SDE使用者獲得該A表和D表的Select / Insert / Update / Delete許可權。在這些對象許可權授予過程中,ACTC使用者並未擷取任何通知資訊。

在ArcGIS Desktop的空間資料庫串連中,並沒有體現出來SDE使用者的這些對象許可權,如果使用SDE使用者進行空間資料庫串連,只能夠觀察到上例中的 Country表,其它的支撐表都被過濾掉了。如果需要完整查看SDE使用者被授予的對象許可權,可以通過Oracle的 USER_TAB_PRIVS_RECD視圖擷取。

SDE使用者完成哪些特定工作

在空間資料庫中,作為管理員的SDE完成一般使用者不能完成的操作,以下舉例說明:

1、 啟動/停止ArcSDE服務

只有SDE能夠與Oracle完成互動,啟動或停止ArcSDE的服務。操作為:
sdemon –o start / shutdown (啟動/停止)
這時候需要提交SDE使用者密碼。

2、 終止某個空間使用者串連

在空間資料庫串連中,有時候出串連進程掛起或者非法串連的時候,可以使用SDE終止其串連。操作為:
首先,從串連列表中擷取該串連的資訊
sdemon –o info –I users
在擷取到需要終止的串連ID後,使用kill命令
sdemon –o kill –t < 串連 ID>
<串連ID> 完成此項操作需要提交SDE使用者密碼。

3、 壓縮多版本資料庫(Multi-versioned Geodatabase)

在ArcSDE Geodatabase中,隨著資料編輯工作的進行,SDE空間資料檔案庫中相應中繼資料表、以及使用者模式中的A表和D表的記錄逐漸增加,會影響空間資料的訪問效率,因此經常需要進行資料庫版本的壓縮工作。在確定資料庫不存在任何鎖定後,便可以進行壓縮工作,操作為:

sdeversion –o compress –u sde

完成此項操作需要提交SDE使用者密碼。

作為ArcSDE管理員,SDE還要完成其它一些工作。比如,在控制空間資料的資料區段、索引段儲存的時候,SDE使用者可以使用sdedbtune命令來提高資料庫效率。

 

一葉知秋

http://www.3snews.net/?uid-7693-action-spacelist-type-blog-itemtypeid-691

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.