一次exp匯出出錯的原因分析

2021-06-28 10:33:59 字數 1652 閱讀 9793

客戶金保資料庫從10g轉成11g,需要定期從生產庫抽取資料到金保資料庫中,考慮到生產庫沒有多餘的空間存放expdp產生的檔案,資料抽取採用遠端exp及imp方式,從金保服務端直接exp到金保本地,匯出過程中報錯:

連線到: oracle database 10g enterprise edition release 10.2.0.5.0 – 64bit production

已匯出 zhs16gbk 字符集和 al16utf16 nchar 字符集

即將匯出指定的表通過常規路徑…

. . 正在匯出表 ab01

exp-00008: 遇到 oracle 錯誤 904

ora-00904: 「maxsize」: invalid identifier

. . 正在匯出表 ab02

exp-00008: 遇到 oracle 錯誤 1003

ora-01003: no statement parsed

. . 正在匯出表 ab07

exp-00008: 遇到 oracle 錯誤 904

ora-00904: 「maxsize」: invalid identifier

. . 正在匯出表 ab09

exp-00008: 遇到 oracle 錯誤 1003

ora-01003: no statement parsed

. . 正在匯出表 ab14

exp-00008: 遇到 oracle 錯誤 904

ora-00904: 「maxsize」: invalid identifier

. . 正在匯出表 abc1

exp-00008: 遇到 oracle 錯誤 1003

從該報錯資訊上看,maxsize欄位報錯,無效的定義,應該是oracle的內部機制出現錯誤,而之前的10g客戶端exp都不存在問題,我們通過跟蹤該匯出過程,發現報錯出現在以下的查詢過程中:

ksedmp: internal or fatal error

ora-00904: 「maxsize」: invalid identifier

current sql statement for this session:

select iniext, ***t, minext, maxext, pctinc, blocks, lists, groups, extents, pcache, ts_type, tsname, isonline, blocksize, hscompress,maxsize from sys.exu9stou

where fileno = :1 and blockno = :2 and tsno = :3

當我們使用exp工具匯出資料的時候,需要訪問sys.exu9stou表以獲取基本的物件儲存引數,而從報錯資訊上也可以很明顯的看出,查詢對於maxsize欄位定義無效,我們分別比對11g及10g的關於該錶的列資訊:

從以上資訊我們可以看到,從11g開始sys.exu9stou表增加了字段

maxsize number

從而導致該匯出過程報錯。

從以上結果看,該報錯原因也就很明確了,通過11g的客戶端匯出10g的資料時無法匯出的,也就是高版本客戶端無法匯出低版本資料庫。如果需要通過exp,匯出,建議還是採用與生產同版本的資料庫客戶端

一次yum命令不能用的原因分析

今天在一台機器上使用yum安裝rrdtool,出現以下報錯 traceback most recent call last file usr bin yum line 28,in?importyummain importerror no module named yummain 重新解除安裝yum的...

出錯總有原因 之 僅有第一次編譯不成功

新人入職,取下專案 開啟vsts2010,編譯整個solution,第一次編譯不成功,提示link錯誤,某個lib未找到。但這個問題在其他開發機器上並沒有出現過。在第一次編譯的基礎上再次編譯,成功了。檢查第一次編譯出錯的日誌,發現出錯的dll依賴於提示的library,這個library是在dll之...

記一次ANR檔案的匯出

adb pull data anr traces.txt測試了華為p7 android 5.1.1 和榮耀v10 android 9 發現都能正常匯出。但是遇到華為mate10 mate10 pro 一直都匯出失敗。adb error failed to stat remote object dat...