日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle数据库IMP-00010错误解决

發布時間:2023/12/20 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle数据库IMP-00010错误解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自:http://www.linuxidc.com/Linux/2015-09/123014.htm

問題出現的場景

筆者源數據庫是11gR2,需要將一個演示數據schema導入到另一臺服務器上。由于時間比較久了,已經忘記目標數據庫的版本號。筆者想當然以為應該是11gR2的Oracle,于是采用Exp工具導出。

出于簡單習慣,筆者選擇在服務器上執行exp命令,這樣導出數據庫和客戶端均是11gR2。

錯誤具體信息

等到導入數據的時候,出現了問題。

執行語句:

D:\DDD>imp \"/ as sysdba\" file=DDD_TESTING_20150901_exp.dmp fromuser=ddd_testing touser=ddd_testing

執行后的錯誤信息:

Import: Release 10.2.0.1.0 - Production on Wed Sep 2 22:36:31 2015Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsIMP-00010: not a valid export file, header failed verificationIMP-00000: Import terminated unsuccessfully

錯誤分析

文件頭不能識別,一般來說這種問題有兩種可能:一種是文件出現壞塊,在從FTP下載或者拷貝復制的過程中出現問題。另一種是版本兼容問題。

如果是第一種問題,理論上是沒有其他辦法,只能重新導出或者下載dmp文件。如果是兼容版本問題,需要檢查一下目標數據庫和導入客戶端情況。

執行語句:

SQL> select * from v$version;

打印信息:

BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdPL/SQL Release 10.2.0.1.0 - ProductionCORE 10.2.0.1.0 ProductionTNS for 32-bit Windows: Version 10.2.0.1.0 - ProductionNLSRTL Version 10.2.0.1.0 – Production

導入目標是10g,而且客戶端也是10gR2。這就出現了兼容性問題,低版本客戶端“被認為”不能解析理解高版本客戶端生成文件,所以才會報錯拒絕導入。顯示信息是文件頭驗證不通過。

解決方法

筆者這時候基本沒有別的選擇。只能是回去重新用低版本客戶端導出數據內容,或者選擇Data Pump進行version調整的處理。但是在網絡上,筆者找到了一種看似合理的處理方法。

Exp/Imp版本不兼容的現象,本質上是Oracle對于Dmp文件內容的限制。因為,Oracle擔心低版本的Imp程序,不能理解高版本Dmp文件里面的內容和生成對象,所以才會有限制。筆者Dmp包里面只有數據表和一些普通索引對象,“高級”對象一個沒有,這種限制其實沒有意義。

那么,只需要將文件頭稍做修改,讓10gR2低版本客戶端能夠“認可”Dmp文件也就好了。根據這個思路,從網絡上下載了notepad++編輯程序,直接打開Dmp文件。注意:這個過程其實有風險的,將近似二進制文件的Dmp以文本格式打開,要有一定心理準備。

打開文件后,可以看到文件頭部信息,明顯標注著Dmp文件版本11gR2內容。

將其修改為10gR2適應編號V10.02.01,之后保存。

保存后調用相同導入程序命令,導入正常開始。

總結

筆者的處理方法,其實是有很大風險和隱患的。放在平時測試環境中,一時選擇失誤的補救策略還是可以接受的。如果是正式環境,一定要根據規范進行操作,通過實現測試預判問題風險,設計解決方案,務必保證所有對象能夠順利導入。

另外,筆者這種方法其實是違背Oracle原則的,如果筆者dmp文件中存在一些新特性對象,或者版本差異很大,也不能保證導入操作的順利。

總結

以上是生活随笔為你收集整理的oracle数据库IMP-00010错误解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。