MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

oracle不同版本间数据的导入导出(转)

Posted on 2009-08-23 23:14 leekiang 阅读(2805) 评论(1)  编辑  收藏 所属分类: oracle
转自http://www.cublog.cn/u/30637/showart_481055.html
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>

 


评论

# re: oracle不同版本间数据的导入导出(转)  回复  更多评论   

2009-11-10 13:40 by leekiang
如何将Oracle10g的DMP 导入到ORACLE9i中:
用ORACLE9I的客户端去连接ORACLE10G,然后通过EXP导出数据.
如果还是不行的话,可以试下面这种办法:
导出数据库的版本比目标数据库新的情况:
- 在需要导入的目标数据库中执行新的CATEXP.SQL
- 使用新的EXPORT导出DUMP文件
- 使用新的IMPORT导入到数据库中
- 在数据库中执行旧的CATEXP.SQL,以恢复该版本的EXPORT VIEW
可以看看这个网址
http://www.chinalinuxpub.com/bbs/showthread.php?t=1926

只有注册用户登录后才能发表评论。


网站导航: