ALTER PACKAGE "p_b" COMPILE and ora-07445

lovehewenyu發表於2012-04-26
 

ALTER PACKAGE "PROC_BUSINESS" COMPILE REUSE 和 ORA-07445: exception encountered: core dump

 

 

IMP-00017: following statement failed with ORACLE error 3113:

 "ALTER PACKAGE "PROC_BUSINESS" COMPILE REUSE SETTINGS TIMESTAMP '2012-04-23:"

 "11:58:58'"

IMP-00003: ORACLE error 3113 encountered

ORA-03113: end-of-file on communication channel

IMP-00000: Import terminated unsuccessfully

 

 

問題描述:

exp資料庫:  oracle 10.2.0.1 for  linux

Imp 資料庫: oracle 10.2.0.4 for windows 7

Client : oracle 10.2.0.1 for windows 7

 

操作步驟:從client機器上執行 EXP 匯出使用者,然後在client 機器上IMP 匯入使用者。但是報錯很鬱悶的ORA-3113

因為這個報錯原因太多了,需要一點一點解決。但是報錯前面出現了一個包的名字 很扎眼啊。

 

解決問題思路:

1、 版本問題。我想了一想從低版本EXP 到高版本IMP一般都是沒有問題的。為什麼我會出現這個問題呢。

2、 Create table。是不是這個問題呢,然後嘗試了多次不是這個問題。(嘗試刪除使用者cascade 重新匯入,ignore引數等的使用)

3、 編譯問題。因為IMP的過程中會重新編譯所有的程式包包,儲存過程,函式。如果有錯誤也會導致IMP失敗。

 

 

基本思路是這樣樣子,但是由於本人對EXP ,IMP 還不是十分了解很多引數也不是十分了解。所以解決問題的時候只有邊做邊學習了。

 

對於exp 不瞭解,直接EXP HELP=Y 看了一看,基本瞭解。

對於imp不瞭解,直接IMP HELP=Y看了一看,基本瞭解。

 

實施解決問題:

1、 仔細的按照自己的想法從低版本到高版本操作。

結果:失敗。

2、嘗試使用IGNORE引數,多次匯入。

結果:失敗。

3、匯入忽略編譯compile=y,成功匯入,但是有警告。

結果:成功。

 

看樣是我們有些程式包,編譯過程出現了錯誤,導致我們IMP失敗。沒有關係了資料匯入進入,程式包,我們看樣慢慢解決。匯入成功後,看了一下有幾個程式包是無效的,看了一看是因為匯入使用者沒有這些表的許可權。然後把檢視這些表的許可權給了這個使用者。我們的程式包也看樣使用。

 

總結:我們這次遇到的問題主要是因為IMP需要對程式包,儲存過程,函式重新編譯,如果由於某種原因不能編譯,最後也導致我們匯入失敗。

 

 

而且這個IMP 編譯失敗,導致IMP失敗,還是很有趣。讓我們在alert 日誌中看到了:

ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [ptmak+420] [PC:0x622EBF4] [ADDR:0x10] [UNABLE_TO_READ] []

 

ORA-07445: exception encountered: core dump這個也是一個問題:

 

07445, 00000, "exception encountered: core dump [%s] [%s] [%s] [%s] [%s] [%s]"

// *Cause: An OS exception occurred which should result in the creation of a

//         core file.  This is an internal error.

// *Action: Contact your customer support representative.

 

07445,00000,“例外遇到:核心轉儲[%][%][%][%][%][%S]”
/ /*原因:作業系統異常發生,這將導致在創造一個
//核心檔案。這是一個內部錯誤。
/ / *操作:聯絡您的客戶支援代表。

 

沒有問題我們明確的解決方式:回想了一些我們的操作我們只是IMP,而且這個錯誤只是出現了我們匯入的時間內出現這個錯誤。所以指定這個問題可能是由於我們IMP匯入出現的。我們IMP錯誤的根本原因是編譯錯誤。所以這個錯誤也有可能是編譯時候出現的錯誤。

 

總結:IMP的編譯錯誤也會導致 ORA-7445錯誤。有時候我們遇到像ORA-600 ,ORA-7445這樣的問題不要慌,找找原因,想想資料庫的操作。oracle 給我們提示錯誤,不一定就是根本原因。所以問題要綜合考慮!

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

相關文章