SDE資料庫的恢復與備份,共三種方法

2021-06-21 10:49:26 字數 2901 閱讀 5941

sde資料庫的恢復與備份,共三種方法,算是完結篇吧

一、imp和exp命令對oracle9i+sde空間資料庫的整體備份、恢復或遷移(方法1)

假設:現在需要把orisde伺服器上的空間資料庫遷移到dessde伺服器上,在建立sde時二個伺服器上的預設使用者都是sde,密碼是sde。orisde伺服器上還有另外乙個sde資料使用者rasterdata,密碼是rasterdata。

1, 備份sde使用者(建立sde時預設建立的使用者)下的所有資料:例如

exp sde/sde@ orisde file=c:/sde.dmp

2, 備份其它操作sde資料的使用者,方法同上。例如:

exprasterdata/rasterdata@ orisde file=c: rasterdata.dmp

3, 停止dessde伺服器上的服務:

a) 方法1:開啟cmd,輸入以下語名:sdemon –o shutdown –s dessde(服務名) –p sde(sde使用者的密碼),如下圖:

注:出現上圖中的第二行語句才說明sde服務已經被成功停止了。

b) 方法2:在控制面板中打到arcsde服務後停止它。

注意:一定要確保dessde已經被關閉了!才能進行以下的操作!

4, 開啟dessde上的oracle控制台,並以dba的身份登入dessde,然後刪除方案sde下面的所有物件,包括:表、索引、檢視、同義詞、序列、簇、源型別、使用者型別。如下圖所示:

一般情況下,刪除表、索引,檢視後,以下五項已經沒有內容了。但是要確定刪除了這八項下面的所有內容。

5, 在dessde oraccle伺服器上建立 rasterdata使用者,並使其具有的在orisde 伺服器上相同的表空間、角色和系統許可權。

6, 匯入sde.dmp到orisde資料庫中,例如:

imp sde/sde fromuser=sde file=c:/sde.dmp touser=sde

7, 匯入資料使用者rasterdata的資料備份rasterdata.dmp

imp rasterdata/rasterdata fromuser=rasterdata file=c:/rasterdata.dmp touser=rasterdata

8, 重新啟動dessde伺服器上的sde服務。

a) 方法1,執行cmd,輸入以下語名:sdemon –o start –s dessde –p sde

注:出現上圖中的第二句話說明啟動成功!

b) 方法2,從控制面板/服務裡找到arcsde服務,啟動該服務。

9, 開啟arccatalog,建立與dessde的連線,並察看是否能瀏覽資料,如果可以的話,就說明sde資料庫已經遷移成功了。

這裡主要是sde使用者及其資料的恢復(3、4、5這三個步驟)。因為sde使用者下面儲存了所有sde資料使用者的所有表的對應關係,所以這一項的恢復是否成功關係到sde資料庫的遷移是否成功。其它的備份和恢復操作都可以參照oracle 備份和恢復操作進行。

新伺服器上的sde使用者和表空間不要刪除。因為在建立sde服務時,會有乙個wise_err.log檔案讓使用者檢視建立的結果,從上面我們可以看到有30多個表被建立,還建立了geodatabase日誌(creating geodatabase schema),如果沒有恢復這些表及日誌的把握,最好別刪除sde使用者和表空間,否則sde使用者下的資料恢復就很難成功(這可能是因為表沒有建立完整的問題),即使成功了,sde服務也很難啟動起來(這可能是因為日誌檔案的問題)。實踐出真知,如果不信,可以試試 (失敗了沒有關係,可以重新安裝sde的)!

當然,這只能用於同一版本的sde之間資料庫的恢復或遷移(9.0和9.1視為同版本),在不同版本的sde空間資料庫之間遷移資料庫會作另外的論述。

下面是dreambird網友提供的在oracle中批量刪除某個使用者下面的所有物件的方法:

其實,我不是什麼oracle高手,皮毛而已,否則那些高手會氣死的。哈哈,我的qq125861109,歡迎交流。另外,上面的**我又做了優化,因為某些表有主外來鍵關係時是不允許刪除的。我測試過了,絕對可用。可以在oracle的plsql developer 下執行。

declare

type name_list is table of varchar2(40);

type type_list is table of varchar2(20);

tab_name name_list:=name_list();

tab_type type_list:=type_list();

sql_str varchar2(500);

begin

sql_str := 』select uo.object_name,uo.object_type from user_objects uo where uo.object_type not in('』index'』,'』lob'』) order by uo.object_type desc』;

execute immediate sql_str bulk collect into tab_name,tab_type;

for i in tab_name.first.. tab_name.last loop

if tab_type(i)=』table』 then

sql_str := 『drop 『 || tab_type(i) || 『 『 || tab_name(i) || 『 cascade constraints』;

else

sql_str := 『drop 『 || tab_type(i) || 『 『 || tab_name(i) ;

end if;

execute immediate sql_str;

end loop;

end;

以後考慮做成批處理,這樣就方便解決了sde的備份問題。

二、使用sdeexport和sdeimport命令對sde資料庫的備份、遷移或恢復

Oracle資料庫備份與恢復的三種方法

blueskys567原文oracle資料庫備份與恢復的三種方法 2006 10.有刪改oracle資料庫有三種標準的備份方法,它們分別是匯出 匯入 exp imp 熱備份和冷備份。匯出備件是一種邏輯備份,冷備份和熱備份是物理備份。利用export可將資料從資料庫中提取出來,利用import則可將提...

資料庫備份與恢復

主要 段 資料庫的備份和實時進度顯示 public bool backupdb string servername,string username,string password,string strdbname,string strfilename,progressbar pgbmain catc...

資料庫備份與恢復

unit ustore inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,ibservices type tfrestore class tform ibb...