oracle不同版本間資料的匯入匯出規則

langgufu314發表於2011-10-13

Oracle的imp/exp元件是我們常用的工具,它的一個操作原則就是向下相容。下面是據此總結的幾個使用規則和相關測試:

 
規則1:低版本的exp/imp可以連線到高版本(或同版本)的資料庫伺服器,但高版本的exp/imp不能連線到低版本的資料庫伺服器
 
1.1 使用9i客戶端通過imp連線到10g資料庫
 

C:\Documents and Settings\yuechaotian>exp userid=hdtest/test@s67 tables=(ab01) rows=n file=d:\x.dmp

 

Export: Release 9.2.0.1.0 - Production on 星期三 2 20 10:09:55 2008

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 


連線到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
: 將不會匯出表資料(行)

 

即將匯出指定的表通過常規路徑 ...
. .
正在匯出表                             AB01
在沒有警告的情況下成功終止匯出。

 

 
1.2 使用10g客戶端通過imp連線9i資料庫:連線失敗(而不是匯出失敗)
 

C:\Documents and Settings\yuechaotian>exp userid=hbjb_kf_hd/test@s46 owner=hdtest file=d:\x.dmp

 

Export: Release 10.2.0.1.0 - Production on 星期三 2 20 09:57:22 2008

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 


EXP-00056:
遇到 ORACLE 錯誤 6550
ORA-06550:
1 , 41 :
PLS-00302:
必須說明 'SET_NO_OUTLINES' 元件
ORA-06550:
1 , 15 :
PL/SQL: Statement ignored
EXP-00000:
匯出終止失敗

 

 
 
規則2:高版本exp出的dmp檔案,低版本無法imp(無法識別dmp檔案)
 
2.1 使用10g客戶端exp出10g的資料
 

C:\Documents and Settings\yuechaotian>exp userid=test/test@orcl owner=test file=d:\10g.dmp

 

Export: Release 10.2.0.1.0 - Production on 星期三 2 20 11:16:39 2008

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 


連線到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
伺服器使用 AL32UTF8 字符集 ( 可能的字符集轉換 )

 

即將匯出指定的使用者 ...

……

匯出成功終止 , 但出現警告。

 

C:\Documents and Settings\yuechaotian>

 

 
2.2 使用9i客戶端imp上面所匯出的dmp檔案到10g:可以連線到10g中,但無法識別檔案
 

C:\Documents and Settings\yuechaotian>imp userid=test/test@s10g fromuser=test touser=test file=d:\10g.dmp

 

Import: Release 9.2.0.1.0 - Production on 星期三 2 20 11:20:33 2008

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 


連線到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

 

IMP-00010: 不是有效的匯出檔案,標題驗證失敗
IMP-00000:
未成功終止匯入

 

C:\Documents and Settings\yuechaotian>

 

 
 
規則3:低版本exp出的dmp檔案,高版本可以imp(向下相容)
3.1 使用9i客戶端exp出9i中的資料

 

C:\Documents and Settings\yuechaotian>exp userid=test/test@s9i owner=test file=d:\9i.dmp

 

Export: Release 9.2.0.1.0 - Production on 星期三 2 20 11:25:04 2008

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 


連線到 : Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

 

即將匯出指定的使用者 ...

……

在沒有警告的情況下成功終止匯出。

 

C:\Documents and Settings\yuechaotian>

 

 
3.2 使用10g客戶端imp到10g資料庫中
 

C:\Documents and Settings\yuechaotian>imp userid=test/test@orcl fromuser=test touser=test file=d:\9i.dmp

 

Import: Release 10.2.0.1.0 - Production on 星期三 2 20 11:28:46 2008

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 


連線到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

 

經由常規路徑由 EXPORT:V09.02.00 建立的匯出檔案
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
匯入伺服器使用 AL32UTF8 字符集 ( 可能的字符集轉換 )
. .
正在匯入表                  "AUDIT_ACTIONS" 匯入了          144

……

成功終止匯入 , 但出現警告。

 

C:\Documents and Settings\yuechaotian>

 

 
 
規則4:從Oracle 低版本的Export資料可以Import到Oracle高版本中,但限於Oracle的相鄰版本,如從Oracle 7 到 Oracle 8。對於兩個不相鄰版本間進行轉換,如從Oracle 6 到 Oracle 8,則應先將資料輸入到中間版本—Oracle 7,再從中間資料庫轉入更高版本。

 
我使用10g的imp功能,可以將由817匯出的dmp檔案直接匯入10g中,這與該規則的介紹不同。(該規則出自高道強的《 Oracle匯入匯出工具實現資料庫移植 》)
 

C:\Documents and Settings\yuechaotian>imp userid=test/test fromuser=scott touser=test file=d:\tyc.dmp

 

Import: Release 10.2.0.1.0 - Production on 星期三 2 20 14:03:33 2008

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 


連線到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

 

經由常規路徑由 EXPORT:V08.01.07 建立的匯出檔案

 

警告 : 這些物件由 SCOTT 匯出 , 而不是當前使用者

 

已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
匯入伺服器使用 AL32UTF8 字符集 ( 可能的字符集轉換 )
匯出伺服器使用 ZHS16GBK NCHAR 字符集 ( 可能的 ncharset 轉換 )
.
正在將 SCOTT 的物件匯入到 TEST
. .
正在匯入表                        "ACCOUNT" 匯入了            5
. .
正在匯入表                          "BONUS" 匯入了            0
. .
正在匯入表                           "DEPT" 匯入了            4
. .
正在匯入表                            "EMP" 匯入了           14
. .
正在匯入表                        "RECEIPT" 匯入了            1
. .
正在匯入表                       "SALGRADE" 匯入了            5
即將啟用約束條件 ...
成功終止匯入 , 沒有出現警告。

 

C:\Documents and Settings\yuechaotian>

 

 
以上操作,對於OracleXE的10g版本同樣適用:
 

C:\Documents and Settings\yuechaotian>imp userid=test/test fromuser=scott touser=test file=d:\tyc.dmp

 

Import: Release 10.2.0.1.0 - Production on 星期三 2 20 14:15:51 2008

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 


連線到 : Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

 

經由常規路徑由 EXPORT:V08.01.07 建立的匯出檔案

 

警告 : 這些物件由 SCOTT 匯出 , 而不是當前使用者

 

已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
匯出伺服器使用 ZHS16GBK NCHAR 字符集 ( 可能的 ncharset 轉換 )
.
正在將 SCOTT 的物件匯入到 TEST
. .
正在匯入表                        "ACCOUNT" 匯入了            5
. .
正在匯入表                          "BONUS" 匯入了            0
. .
正在匯入表                           "DEPT" 匯入了            4
. .
正在匯入表                            "EMP" 匯入了           14
. .
正在匯入表                        "RECEIPT" 匯入了            1
. .
正在匯入表                       "SALGRADE" 匯入了            5
即將啟用約束條件 ...
成功終止匯入 , 沒有出現警告。

 

C:\Documents and Settings\yuechaotian>

 

相關文章