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数据可以Import到Oracle高版本中,但限于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客户端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 行

即将启用约束条件...

成功终止导入, 没有出现警告

深入理解Oracle的imp/exp 和各版本之间的规则的更多相关文章

  1. Oracle数据导入导出imp/exp

    功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电 ...

  2. Oracle 导入导出数据 imp/exp impdp/expdp

    IMPDP/EXPDP 一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建.         create directory dpdata as '/opt'; 二 ...

  3. Oracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp...解决方法

    Oracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp...解决方法   sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类   www.2cto.com  应该 ...

  4. Oracle数据导入导出imp/exp命令总结

    racle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用 ...

  5. Oracle数据导入导出imp/exp(转)

    在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 一.Oracle ...

  6. Oracle imp exp 导入导出 执行脚本

    一:用命令 imp/exp 的方式进行数据的导入和导出 一:文件后缀名: 二:oracle  导出 exp 命令 echo 开始备份数据库 if not exist D:\oracle_bak\fil ...

  7. Oracle数据库导入导出 imp/exp备份还原

    Oracle数据导入导出imp/exp   Oracle数据导入导出imp/exp 在cmd的dos命令提示符下执行,而不是在sqlplus里面,但是格式一定要类似于:   imp/exp 用户名/密 ...

  8. ORACLE expdp \ impdp \ exp \ imp

    (转自:http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html) EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导 ...

  9. Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利 ...

随机推荐

  1. 《RESTful Web Services》第二章 识别资源

    引言:开放RESTful Web服务的首要步骤之一是设计资源模型. 2.1 如何从领域名词中识别资源   2.2 如何选择资源粒度     一些因素会影响数据库表和对象模型的设计,例如领域建模.需要高 ...

  2. Cookie API

    Cookie API All cookies created by the Nova framework are encrypted and signed with an authentication ...

  3. 学通javaweb 24堂课 学习笔记

    17.01:简单配置控制器 1.一个controller protected ModelAndView handleRequestInternal(HttpServletRequest request ...

  4. View绘制详解(三),扒一扒View的测量过程

    所有东西都是难者不会,会者不难,Android开发中有很多小伙伴觉得自定义View和事件分发或者Binder机制等是难点,其实不然,如果静下心来花点时间把这几个技术点都研究一遍,你会发现其实这些东西都 ...

  5. ie7兼容性 绝对定位元素之间的遮盖问题

    今天在调试ie7兼容性问题的时候,遇到了一个棘手的问题,解决了一天无果,晚上看到一位大神写的心得,最终解决. 网址:http://www.jb51.net/css/148606.html#commen ...

  6. jQuery的自定义事件——滚轮

    这个案例类似于在地图上滚动滚轮,能缩小或者放大地图,分别用zoomIn和zoomOut来命名. 代码如下: //JS部分:<script src="jquery-1.10.2.min. ...

  7. mapping 详解1(mapping type)

    映射(mapping) 映射是定义一个文档以及其所包含的字段如何被存储和索引的方法. 例如,用映射来定义以下内容: 哪些 string 类型的 field 应当被当成当成 full-text 字段 哪 ...

  8. 关于JFace带复选框的树

    树的复选框用CheckboxTreeViewer实现.由于其子类ContainerCheckedTreeViewer在没有选择全部子节点时可以自动将父节点设置成灰选,所以实现树的复选框更多的是用Con ...

  9. iOS开发--Swift RAC响应式编程

    时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...

  10. HTTP层 —— 路由

    1.基本路由 最基本的 Laravel 路由只接收一个 URI 和一个闭包,并以此提供一个非常简单且优雅的定义路由方法: Route::get('foo', function () { return ...