沒有辦法,還的做一遍數據的遷移
將SDE數據庫從OrclSDE服務器上備份出,在MESDE服務器上恢復(兩服務器的Oracle版本相同,ArcSDE版本相同),思路如下:
第一.確定兩服務器的字符集一致
很多人都碰到過因為字符集不同而使數據導入失敗的情況。這涉及三方面的字符集,一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做數據導入的時候,需要這三個字符集都一致才能正確導入。
有很多種方法可以查出oracle server端的字符集,比較直觀的查詢方法是以下這種:
SQL>select userenv(‘language’) from dual;
結果類似如下:SIMPLIFIED.CHINESE_CHINA. ZHS16GBK
第二.從OrclSDE服務器上使用EXP命令將SDE數據庫導出
在OrclSDE服務器的dos下執行如下命令:
Exp sde/sde file=d:\OrclSDE.dmp full=y
第三.在目標服務器MESDE上,使用ARCSDE創建SDE數據庫
確定SDE數據庫創建成功,並且SDE服務成功啟動。
第四.在目標服務器MESDE上刪除SDE用戶,並刪除SDE表空間
打開控制面板,停止SDE服務
注意:一定要確定SDE服務已經被停止,才可以進行以下操作!
刪除SDE用戶,並刪除SDE表空間
第五.在MESDE服務器上創建SDE表空間和SDE用戶,並授予與第四步驟中SDE用戶相同的權限
創建的SDE表空間大小要確保能恢復OrclSDE服務器上備份出的SDE數據庫
此時啟動SDE服務,會發現啟動不了,發生如下所示錯誤:
本地計算機上的ArcSde Service (esri_sde)啟動后又停止了。一些服務自動停止,如果他們沒有什么可作的,例如“性能日志和警報”服務。
原因:
使用ArcSDE創建的SDE數據庫,有一套自己的管理程式,創建有自己的一套系統表、觸發器等信息,並保存了SDE數據用戶的所有表的對應關系。而用戶在刪除了此SDE用戶和表空間后又自定義的SDE數據庫,沒有了這些管理信息數據,那么ARCSDE服務在啟動時也就找不到所需的信息,所以啟動失敗。
第六.在MESDE服務器上使用IMP命令導入SDE數據庫
在MESDE服務器的dos下執行如下命令:
Imp sde/sde file=D:\OrclSDE.dmp
確保成功導入
第七.重新啟動MESDE服務器上的SDE服務
打開控制面板,啟動SDE服務,要確保啟動成功,否則將視為還原失敗!
在成功導入SDE數據庫后,ArcSDE數據庫的管理信息又被還原為了OrclSDE服務器上的SDE用戶的一套管理信息,那么MESDE服務器上的SDE服務使用此管理信息啟動
第八.打開Catalog,建立與MESDE的連接,並查看是否能瀏覽數據。如果可以的話,則說明SDE數據庫的遷移成功了。
以上操作說明如存在問題,煩請給予指出,謝謝!!!
另閱
【SQL與Oracle中SDE數據庫備份實戰】http://gis-conquer.blog.sohu.com/110513961.html
【SDE數據庫的備份與恢復】http://blog.csdn.net/mydriverc/archive/2007/08/24/1757867.aspx
【SDE數據庫怎么備份】http://www.cngis.org/bbs/viewtopic.php?f=75&t=6587&start=0&st=0&sk=t&sd=a