ArcSDE服務入門

    ArcSDE程序服務介紹:
ArcSDE是空間數據與GIS程序之間的一個重要的“通路”,使用它可以將ArcGIS等程序與關係數據庫系統聯繫起來,這些關係數據庫並不是如ACCESS的桌面型,而是類似ORACLE和SQLSERVER的分佈式關係數據庫服務系統。
ArcSDE提供了兩種數據聯結架構,即兩層和三層模型,一般我們都是使用的三層架構,如果用戶需要使用前者,可以在ArcCatalog中選擇“產生一個直接聯結”。
Sdemon命令可以允許管理員管理和監視ArcSDE服務,在SDE服務啓動後,始終存在一個giomgr的SDE服務器進程,它負責監聽連接請求(服務器名和端口)、驗證連接(密碼和用戶)、給每個成功的連接分配一個獨立的gsrvr進程,而gsrvr負責在客戶端和服務器之間進行通訊(使用相同的服務器名和端口)。
ArcSDE是一種客戶端/服務器模式,因此存在幾個需要注意的屬性:
1. Home目錄 它是一個被記錄的路徑,成爲SDEHOME,這個目錄中包含可執行文件,配置文件和動態共享庫等。
2. 兩個進程 giomgr和gsrvr(作用如前)
3. 由於SDE走的是TCP/IP協議,因此服務器名和端口在通訊在起着重要的作用。服務建立後,服務名和端口號被存儲在“C:/WINNT/system32/drivers/etc”的services文件中。它有兩種形式:服務名:端口、IP:端口。
4. 配置參數 配置參數被保存在一個名爲SDE.SERVER_CONFIG的表中,缺省的參數文件爲giomgr.defs,它被存放在SDEHOME中的etc文件夾中。

啓動服務:
1. 使用正常服務啓動程序
2. Sdemon –o start –p sde

參數配置:
SDE服務的參數是可以被修改的,這個過程可以通過修改數據庫中表或修改service.sde或dbinit.sde兩個文件,這兩個文件都被保存在SDEHOME中的etc文件夾中。
對於一個SDE服務而言,外界程序聯繫到它的方法是通過TCP/IP協議的,因此,在默認的情況下,當我們打開service.sde文件,我們會發現下面的代碼:
esri_sde 5151/tcp #ArcSDE 9.0 for Oracle9i
這就是名爲esri_sde的SDE服務的端口號,當我們執行Sdemon –o start –p sde時,系統會尋找這個文件的參數,看看是否匹配。如果匹配再驗證密碼和用戶。
在一臺機器上可以同時存在多個SDE服務,這些服務名將不一樣,佔用的端口也不一樣,但是它們的參數都保存在service.sde文件,如:
esri_sde2 5152/tcp #ArcSDE 9.0 for Oracle9i
SDE服務需要從dbinit.sde文件中讀取一些系統的環境變量,以獲得必要的關係數據庫信息,如:
# Oracle SID for service esri_sde.
set ORACLE_SID=SDE
上面的語句指明瞭SDE服務使用的是那一個ORACLE數據庫例程。
下面是獲得全部參數的命令:
Sdemon –o info –I config
用戶也可以打開SDE.SERVER_CONFIG表,查看其中的具體參數。


服務器的管理:
服務器的管理包括服務的啓動、暫停和關閉兩個操作,在WINDOWS平臺下,服務的啓動關閉,例程的關閉都可以可視化實現,下面我們將介紹使用命令行的方式:
1. 啓動一個遠程SDE服務
Sdemon –o start –p mypassword –s service –i arcsde
上句中的-p後爲密碼,-s後爲遠程機器名,而-i爲SDE服務名
2. 暫停一個服務
Sdemon –o pause –p mypassword
3. 重新啓動
Sdemon –o resume –p mypassword
4. 關閉一個giomgr進程
Cd %SDEHOME%/tools
Killp 100 (100爲進程號)
Do you really want to kill process with pid 100(y/n)?
Y
5. 關閉一個服務
Sdemon –o shutdown –p mypassword
6. 關閉所有用戶會話
Sdemon –o kill –t all
SDE服務的監視:
爲了顯示SDE服務的狀態,我們需要使用sdemon命令來顯示一些信息:
1. 狀態監視
Sdemon –o status
2. 數據鎖
Sdemon –o info –I locks
SDE提供了四種鎖,它們分別是:
對象鎖:用於版本和地理數據庫的激活
表鎖:用於鎖定表
區域鎖Area Locks:用於鎖定一個要素類的空間範圍
狀態鎖State Locks:用於鎖定一個要素類或表的版本狀態
3. 用戶狀態
Sdemon –o info –I users

SDE服務故障解決:
1. 啓動SDE服務時發生了什麼?
? SDE服務程序啓動一個giomgr進程
? 進程從dbinit.sde文件中獲得系統環境變量
? 進程探測服務的license是否已經安裝
? 進程讀取services.sde文件
? 進程獲得TCP/IP協議和服務名
? Giomgr使用dbinit.sde和系統變量定義的連接信息連接到一個DBMS上
? Giomgr遍歷所有鎖定表
? 服務啓動了。giomgr進程開始監聽它的端口,以確定外界是否有連接
2. SDE客戶端連接服務時候發生了什麼?
? Giomgr進程監聽着它的端口
? 程序確認一個連接到服務的連接請求
? Giomgr比較程序計算機的鎖定時間和它的主機時間,如果它的時間大於MAXTIMEDIFF,則不允許連接
? Gimogr開始比較客戶端程序的ARCSDE版本和ARCSDE服務端版本,如果前者比後者舊,連接將被拒絕
? Gimogr進程啓動一個gsrvr進程,爲客戶端程序服務
? Gsrvr進程獲得共享內存
? Gsrvr進程連接到DBMS上一旦上面的過程成功,giomgr將繼續監聽下一個連接

除次以外,我們還可以通過命令行的方式來管理服務和數據,這些程序都放在%SDEHOME%/bin文件夾內,如:
Alphabetical listing of commands
Command Description
cov2sde
Converts ArcInfo coverages to ArcSDE feature classes.
sde2cov
Converts ArcSDE feature classes to ArcInfo coverages.
sde2shp
Converts an ArcSDE feature class to an ESRI shapefile.
sde2tbl
Converts ArcSDE tables into INFO and dBASE tables.
sdeconfig
Manages your ArcSDE server configuration file
sdedbtune
Exports and imports an ArcSDE dbtune file.
sdeexport
Creates an ArcSDE export file.
sdegcdrules
Manages ArcSDE geocoding rules
sdegroup
Merges feature classes.
sdeimport
Imports data from an ArcSDE export file.
sdelayer
Administers feature classes.
sdelocator
Manages ArcSDE locators.
sdelog
Administers ArcSDE log files.
sdemon
Manages the ArcSDE server.
sderaster
Manages ArcSDE raster layers.
sdeservice
Manages the ArcSDE service on Windows NT platforms.
sdesetup
Initial setup program for ArcSDE for your RDBMS.
sdetable
Administers business tables and their data.
sdeversion
Manages versions of a geodatabase.
sdexinfo
Provides descriptive information of an ArcSDE export file.
sdexml
Administers XML columns.
shp2sde
Converts an ESRI shapefile to an ArcSDE feature class.
tbl2sde
Converts INFO and dBASE tables into ArcSDE tables.
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章