昨天要把本身機器上的數據庫遷移到專用服務器上一份,本地安裝的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客戶端導出數據文件,而後再進行導入。