深入理解Oracle的imp/exp 和各版本之間的規則


深入理解Oracle的imp/exp 和各版本之間的規則

Oracle數據中IMP/EXP工具可用於對數據進行遷移。IMP命令用於把Dmp文件從本地導入到遠程數據庫服務器,而EXP命令則是把數據從遠程數據庫服務器導出到本地的Dmp文件。其功能相當於Oracle數據庫的備份與還原。利用IMP/EXP工具可以輕松的實現對數據庫的遷移工作,甚至是跨平台的數據庫遷移。

exp/imp:

 

  這也算是最常用最簡單的方法了,一般是基於應用的owner級做導出導入。

 

  操作方法為:在新庫建立好owner和表空間,停老庫的應用,在老庫做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,傳dmp文件到新庫,在新庫做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.

 

  優缺點:優點是可以跨平台使用;缺點是停機時間長,停機時間為從exp到網絡傳輸到新庫,再加上imp的時間。 

 

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

 規則1:低版本的exp/imp可以連接到高版本(或同版本)的數據庫服務器,但高版本的exp/imp不能連接到低版本的數據庫服務器

規則2:高版本exp出的dmp文件,低版本無法imp(無法識別dmp文件)

規則3:低版本exp出的dmp文件,高版本可以imp(向下兼容)

規則4:從Oracle 低版本的Export數據可以ImportOracle高版本中,但限於Oracle的相鄰版本

 

 

 

規則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客戶端exp10g的數據

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客戶端exp9i中的數據

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客戶端imp10g數據庫中

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數據可以ImportOracle高版本中,但限於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 行

即將啟用約束條件...

成功終止導入, 沒有出現警告


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM