oracle 816 imp恢復資料遇到問題及解決

msdnchina發表於2008-12-20

最近幫著一個客戶新裝了一個oracle 816,然後進行了oracle 816的exp出來的資料的恢復,在恢復的結束階段,也就是匯入同義詞,觸發器,儲存過程階段,有個報錯,大體意思就是因為找不到db link,儲存過程建立報錯,仔細分析了報錯資訊,再加上詢問客戶方的業務人員,最後明白了該儲存過程是透過db link 從sunway 的業務系統中取數。

最後無奈之下,又重新匯入了一次,實際上,只重新匯入那個出錯的儲存過程即可。

最後的總結:

1.匯入儲存過程(包括匯入同義詞,觸發器,檢視)時,imp要進行編譯,編譯透過後,才不會報錯。
  此問題,就是出在編譯時找不到db link,而報錯。
2.能否單獨匯入儲存過程,而不是再將全部資料重新匯入一次?我感覺應該是有單獨匯入儲存過程的語法,找找。
3.建立db link時,是用的如下的語法:

create  public database link SUNWAY_CG CONNECT TO gqcb identified by gqcb using 'sunway_cg'

--小類注:using 'sunway_cg' 中的sunway_cg為在此臺oracle816伺服器上事先配置好的指向另外一個oracle資料庫的net 服務名。
--在006帳套中,使用了這個dblink,到其他的業務系統中取數。


用此語法建立完畢後,測試此database link,發現處於“非活動狀態”,一開始百思不得其解,後來經詢問同事,才發現,非“非活動狀態”與
init.ora的一個引數“global_name”有關係,global_name=false 才行。

另注:
oracle 816,預設安裝完畢,global_name=true
oracle 92,預設安裝完畢,global_name=false
oracle 10,預設安裝完畢,global_name=false


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/161195/viewspace-520609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章