9201 client匯出9206資料庫,出現EXP-00003: 未找到段xxx的儲存定義

gengyonghui發表於2007-06-25

很小的一件事,從伺服器直接exp就應該搞定的,沒想到哪位大哥把9201升級至9206時未執行catpatch.sql,結果資料庫本身還是9201,找個9201的客戶端exp吧。

9201 client匯出9206資料庫,出現EXP-00003: 未找到段xxx的儲存定義


以下內容摘自網際網路:

匯出的時候,我們有時候會遇到一種錯誤

EXP-00003: no storage definition found for segment

這個是屬於資料庫的bug.

如果客戶端版本低於9205,而伺服器高於或者等於9205,也可能遭遇這個bug,出問題的是client,而非server

除了打補丁以外,還有種解決方法

1.先找到這個檔案,$ORACLE_HOME/rdbms/admin/catexp.sql

2.其中有個exu9tne檢視的定義,找到它.

3.單獨編輯這個檢視的定義,再後面加上UNION ALL select * from sys.exu9tneb,並重建這個檢視

4.用SYS使用者來登入並exp

5.還原SYS.exu9tne的原來的定義,還是用原始指令碼catexp.sql

自己定義後的exu9tne結果可能是這樣(依版本而不同)

CREATE OR REPLACE VIEW exu9tne (
tsno, fileno, blockno, length) AS
SELECT ts#, segfile#, segblock#, length
FROM sys.uet$
WHERE ext# = 1
UNION ALL SELECT * from sys.exu9tneb #這裡是我們自己新增的一行

[@more@]

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

相關文章