昨天要把自己機器上的資料庫遷移到專用伺服器上一份,本地安裝的Oracle10g,伺服器上安裝的資料庫是Oracle9i,一開始進行如下操作:
本地導出資料庫檔案:
exp gzwp/wlkp@taxser file= d:\20130226.dmp owner=gzwp
拿到伺服器上導入:
imp gzwp/wlkp@taxser file=d:\20130226.dmp fromuser=gzwp touser=gzwp ignore=y
報錯:
IMP-00010:不是有效的導出檔案,标題驗證失敗
IMP-00000:未成功導入
原因是資料庫版本的問題,Oracle不支援高版本導入到低版本。解決方法:
1.在伺服器上配置一個Oracle的資料庫連接配接到本地Oracle10g(叫做taxser134),方式是通過oracle提供的幫助工具Net Manager或者修改tnsname.tra(9i的目錄:%oracle_home%\ora92\network\admin,10g對應的目錄:%oracle_home%\product\10.2.0\db_1\NETWORK\ADMIN)
在遠端伺服器上導出資料庫檔案:
exp gzwp/wlkp@taxser134 file= d:\20130226.dmp owner=gzwp
2.在遠端伺服器上建立對應的資料庫,使用者以及表空間:
1>.可以通過oracle工具Database Configuration Assistant建立資料庫執行個體(ntaxser):
要注意選擇字元集時和本地的資料庫對應,否則可能出現中文亂碼。
2>.
sqlplus sys/wlkp as sysdba
create user gzwp identified by wlkp;
grant connect,resource,dba,create session to gzwp;
create tablespace WLKPTABLE
logging
datafile 'F:\oracle\product\10.1.0\oradata\ntaxser\WLKPTABLE.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//.......所有用到的表空間
3.然後導入到伺服器上導入:
imp gzwp/wlkp@ntaxser file=d:\20130226.dmp fromuser=gzwp touser=gzwp ignore=y
導入成功!
其實,所有關于oracle資料庫高版本向低版本遷移的解決方法,做法都是類似的:通過在低版本Oracle上配置一個連接配接到高版本資料庫,通過低版本oracle用戶端導出資料檔案,然後再進行導入。
本文轉自NightWolves 51CTO部落格,原文連結:http://blog.51cto.com/yangfei520/1141135,如需轉載請自行聯系原作者