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...