zoukankan      html  css  js  c++  java
  • 15. EXP 和 IMP

    15.1 EXP 和 IMP 简介

    1. 导出(EXPORT)

    导出是指利用实用工具EXP 将数据库部份或全部对象的结构及其数据导出并存储到OS文件中的过程。

    2. 导入(IMPORT)

    导入是指使用实用工具IMP 将OS文件中的对象结构及其数据装载到数据库中的过程。

    3. 导出和导入的作用

    EXP 和IMP 不仅可以用于实现逻辑备份和逻辑恢复,而且还可以用于实现许多其他功能。

    • 使用导出和导入可以重新组织表。例如,使用EXP 和IMP 可以删除行迁移。
    • 使用导出和导入可以在用户之间移动对象。假如,使用EXP 和IMP 可以将SCOTT 用户的对象移动到SMITH 用户中。
    • 作用导出和导入可以在数据库之间移动对象。例如,使用EXP 和IMP 可以将OLTP 系统的对象移动到DSS 系统中。
    • 使用导出和导入可以升级数据库到其他平台。例如,使用EXP 和IMP 可以将Windows 平台中的数据库对象移动到Solaris 平台中。
    • 使用导出和导入可以升级数据库到更高版本。例如,作用EXP 和IMP 可以将8i 版本的数据库对象升级到9i 数据库中。
    • 使用导出和导入可以实现逻辑备份和恢复。例如,使用EXP 可以导出数据库对象及数据到OS 文件中;而当误删除了数据库对象后,可以使用IMP 将对象及其数据导入到数据库中。

    4. 传统导出导入与数据泵导出导入的区别

    • EXP 和IMP 是客户端工具程序,它们既可以在客户端使用,也可以在服务器端使用。
    • EXPDP 和IMPDP 是服务器端的工具程序,它们只能在Oracle 服务器端使用,而不能在Oracle 客户端使用。
    • IMP 只适用于EXP 导出文件,而不适用于EXPDP 导出文件;IMPDP 只适用于EXPDP 导出文件,而不适用于EXP 导出文件。

    15.2 使用 EXP

    15.2.1 EXP 命令行选项

    关键字   说明 (默认值)         关键字      说明 (默认值)
    --------------------------------------------------------------------------
    USERID   用户名/口令           FULL        导出整个文件 (N)
    BUFFER   数据缓冲区大小        OWNER        所有者用户名列表
    FILE     输出文件 (EXPDAT.DMP)  TABLES     表名列表
    COMPRESS  导入到一个区 (Y)   RECORDLENGTH   IO 记录的长度
    GRANTS    导出权限 (Y)          INCTYPE     增量导出类型
    INDEXES   导出索引 (Y)         RECORD       跟踪增量导出 (Y)
    DIRECT    直接路径 (N)         TRIGGERS     导出触发器 (Y)
    LOG      屏幕输出的日志文件    STATISTICS    分析对象 (ESTIMATE)
    ROWS      导出数据行 (Y)        PARFILE      参数文件名
    CONSISTENT 交叉表的一致性 (N)   CONSTRAINTS  导出的约束条件 (Y)

    OBJECT_CONSISTENT    只在对象导出期间设置为只读的事务处理 (N)
    FEEDBACK             每 x 行显示进度 (0)
    FILESIZE             每个转储文件的最大大小
    FLASHBACK_SCN        用于将会话快照设置回以前状态的 SCN
    FLASHBACK_TIME       用于获取最接近指定时间的 SCN 的时间
    QUERY                用于导出表的子集的 select 子句
    RESUMABLE            遇到与空格相关的错误时挂起 (N)
    RESUMABLE_NAME       用于标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
    TTS_FULL_CHECK       对 TTS 执行完整或部分相关性检查
    TABLESPACES          要导出的表空间列表
    TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
    TEMPLATE             调用 iAS 模式导出的模板名

    15.2.2 调用 EXP

    1. 导出表

    导出自身方案的表:

    C:\>exp scott/tiger file=d:\dump\tab1.dmp tables=emp,dept

    Export: Release 10.2.0.1.0 - Production on 星期二 1月 6 13:14:42 2009

    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 字符集

    即将导出指定的表通过常规路径...
    . . 正在导出表                             EMP导出了          14 行
    . . 正在导出表                            DEPT导出了           4 行
    成功终止导出, 没有出现警告。

    导出非自身方案的表:

    C:\>exp system/orcl file=d:\dump\tab2.dmp tables=scott.emp,scott.dept

    Export: Release 10.2.0.1.0 - Production on 星期二 1月 6 13:15:04 2009

    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 字符集

    即将导出指定的表通过常规路径...
    当前的用户已更改为 SCOTT
    . . 正在导出表                             EMP导出了          14 行
    . . 正在导出表                            DEPT导出了           4 行
    成功终止导出, 没有出现警告。

    2. 导出方案

    导出自身方案:

    C:\>exp scott/tiger@orcl file=d:\dump\schema1.dmp

    Export: Release 10.2.0.1.0 - Production on 星期二 1月 6 13:17:29 2009

    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 字符集

    即将导出指定的用户...
    . 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 SCOTT 的外部函数库名
    …………………………………………………………………………………………
    . . 正在导出表                           BONUS导出了           0 行
    …………………………………………………………………………………………

    . . 正在导出表                           TAB02导出了           2 行
    …………………………………………………………………………………………
    . 正在导出 post-schema 过程对象和操作
    . 正在导出统计信息
    成功终止导出, 没有出现警告。

    导出非自身方案:

    C:\>exp system/orcl@orcl file=d:\dump\schema2.dmp owner=scott

    Export: Release 10.2.0.1.0 - Production on 星期二 1月 6 13:18:01 2009

    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 字符集

    即将导出指定的用户...
    . 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 SCOTT 的外部函数库名
    …………………………………………………………………………………………
    . 即将导出 SCOTT 的表通过常规路径...
    . . 正在导出表                           BONUS导出了           0 行
    …………………………………………………………………………………………
    . . 正在导出表                           TAB02导出了           2 行
    . 正在导出同义词
    …………………………………………………………………………………………
    . 正在导出 post-schema 过程对象和操作
    . 正在导出统计信息
    成功终止导出, 没有出现警告。

    3. 导出数据库

    C:\>exp system/orcl@orcl file=d:\dump\full.dmp full=y

    Export: Release 10.2.0.1.0 - Production on 星期二 1月 6 13:22:57 2009

    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 字符集

    即将导出整个数据库...
    . 正在导出表空间定义
    . 正在导出概要文件
    . 正在导出用户定义
    …………………………………………………………………………………………
    . 正在导出外部函数库名
    . 导出 PUBLIC 类型同义词
    . 正在导出专用类型同义词
    . 正在导出对象类型定义
    . 正在导出系统过程对象和操作

    …………………………………………………………………………………………

    . 正在导出存储过程
    . 正在导出运算符
    . 正在导出索引类型
    . 正在导出位图, 功能性索引和可扩展索引
    …………………………………………………………………………………………
    . 正在导出用户历史记录表
    . 正在导出默认值和系统审计选项
    . 正在导出统计信息
    成功终止导出, 没有出现警告。

    15.3 使用 IMP

    15.3.1 IMP 命令行选项

    关键字   说明 (默认值)        关键字      说明 (默认值)
    --------------------------------------------------------------------------
    USERID   用户名/口令           FULL       导入整个文件 (N)
    BUFFER   数据缓冲区大小        FROMUSER    所有者用户名列表
    FILE     输入文件 (EXPDAT.DMP)  TOUSER     用户名列表
    SHOW     只列出文件内容 (N)     TABLES      表名列表
    IGNORE   忽略创建错误 (N)    RECORDLENGTH  IO 记录的长度
    GRANTS   导入权限 (Y)          INCTYPE     增量导入类型
    INDEXES   导入索引 (Y)         COMMIT       提交数组插入 (N)
    ROWS     导入数据行 (Y)        PARFILE      参数文件名
    LOG     屏幕输出的日志文件    CONSTRAINTS    导入限制 (Y)
    DESTROY                覆盖表空间数据文件 (N)
    INDEXFILE              将表/索引信息写入指定的文件
    SKIP_UNUSABLE_INDEXES  跳过不可用索引的维护 (N)
    FEEDBACK               每 x 行显示进度 (0)
    TOID_NOVALIDATE        跳过指定类型 ID 的验证
    FILESIZE               每个转储文件的最大大小
    STATISTICS             始终导入预计算的统计信息
    RESUMABLE              在遇到有关空间的错误时挂起 (N)
    RESUMABLE_NAME         用来标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
    COMPILE                编译过程, 程序包和函数 (Y)
    STREAMS_CONFIGURATION  导入流的一般元数据 (Y)
    STREAMS_INSTANTIATION  导入流实例化元数据 (N)

    下列关键字仅用于可传输的表空间
    TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
    TABLESPACES 将要传输到数据库的表空间
    DATAFILES 将要传输到数据库的数据文件
    TTS_OWNERS 拥有可传输表空间集中数据的用户

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

    15.3.2 调用 IMP

    1. 导入表

    导入到自身方案中:

    SQL> host imp scott/tiger@orcl file=d:\dump\tab1.dmp tables=emp,dept

    经由常规路径由 EXPORT:V10.02.01 创建的导出文件
    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . 正在将 SCOTT 的对象导入到 SCOTT
    . 正在将 SCOTT 的对象导入到 SCOTT
    . . 正在导入表                           "EMP"导入了          14 行
    . . 正在导入表                          "DEPT"导入了           4 行
    即将启用约束条件...
    成功终止导入, 没有出现警告。

    导入到非自身方案中:

    SQL> host imp system/orcl@orcl file=d:\dump\tab1.dmp tables=emp,dept fromuser=sc
    ott touser=system

    警告: 这些对象由 SCOTT 导出, 而不是当前用户

    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . 正在将 SCOTT 的对象导入到 SYSTEM
    . . 正在导入表                           "EMP"导入了          14 行
    . . 正在导入表                          "DEPT"导入了           4 行
    即将启用约束条件...
    成功终止导入, 没有出现警告。

    2. 导入方案

    导入到自身方案:

    C:\>imp scott/tiger@orcl file=d:\dump\schema1.dmp fromuser=scott touser=scott

    经由常规路径由 EXPORT:V10.02.01 创建的导出文件
    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . . 正在导入表                         "BONUS"导入了           0 行
    . . 正在导入表                          "DEPT"导入了           4 行
    …………………………………………………………………………………………
    . . 正在导入表                         "TAB02"导入了           2 行
    即将启用约束条件...
    成功终止导入, 但出现警告。

    导入到非自身方案:

    C:\>imp system/orcl@orcl file=d:\dump\schema1.dmp fromuser=scott touser=system

    警告: 这些对象由 SCOTT 导出, 而不是当前用户

    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . . 正在导入表                          "DEPT"导入了           4 行
    …………………………………………………………………………………………
    . . 正在导入表                         "TAB02"导入了           2 行
    即将启用约束条件...
    成功终止导入, 但出现警告。

    3. 导入数据库

    imp system/orcl@orcl file=d:\dump\full.dmp full=y

    经由常规路径由 EXPORT:V10.02.01 创建的导出文件
    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . 正在将 SYSTEM 的对象导入到 SYSTEM
    …………………………………………………………………………………………
    . 正在将 SYSMAN 的对象导入到 SYSMAN
    成功终止导入, 但出现警告。

    15.4 使用EXP 和IMP 搬移表空间

    (1) 确定自包含表空间集合。

    (2) 生成要搬移的表空间集合。

    (3) 传送转储文件和数据文件到目标数据库。

    (4) 插入表空间到目标数据库。

    C:\>sqlplus system/orcl

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 1月 6 15:23:40 2009

    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

    SQL> execute sys.dbms_tts.transport_set_check('TBS02',true)

    PL/SQL 过程已成功完成。

    SQL> select * from sys.transport_set_violations;

    未选定行

    SQL> alter tablespace tbs02 read only;

    表空间已更改。

    SQL> host exp 'sys/orcl@orcl as sysdba' transport_tablespace=y tablespaces=tbs02
    file=d:\dump\tbs02.dmp

    Export: Release 10.2.0.1.0 - Production on 星期二 1月 6 15:27:09 2009

    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 字符集
    注: 将不导出表数据 (行)
    即将导出可传输的表空间元数据...
    对于表空间 TBS02...
    . 正在导出簇定义
    . 正在导出表定义
    . . 正在导出表                           TAB02
    . . 正在导出表                           TAB02
    . 正在导出引用完整性约束条件
    . 正在导出触发器
    . 结束导出可传输的表空间元数据
    成功终止导出, 没有出现警告。

    SQL> host copy d:\orcl\tbs02.dbf d:\demo\tbs02.dbf
    已复制         1 个文件。

    SQL> host imp 'sys/demo@demo as sysdba' transport_tablespace=y file=d:\dump\tbs0
    2.dmp datafiles=d:\demo\tbs02.dbf

    Import: Release 10.2.0.1.0 - Production on 星期二 1月 6 15:29:34 2009

    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:V10.02.01 创建的导出文件
    即将导入可传输的表空间元数据...
    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . 正在将 SYS 的对象导入到 SYS
    . 正在将 SYS 的对象导入到 SYS
    . 正在将 SYSTEM 的对象导入到 SYSTEM
    . . 正在导入表                         "TAB02"
    . 正在将 SCOTT 的对象导入到 SCOTT
    . . 正在导入表                         "TAB02"
    . 正在将 SYS 的对象导入到 SYS
    成功终止导入, 没有出现警告。

    SQL> alter tablespace tbs02 read write;

    表空间已更改。

  • 相关阅读:
    Masonry介绍与使用实践:快速上手Autolayout
    OC文件大小的计算方法,多用于清理缓存
    OC接收数据时毫秒转date时间最简略方法
    使用OC语言编写两个超大数相乘或相加的算法的思路和超大正整数相乘的代码
    简述AFN(AFNetWorking 2.X)的实现分析和简单使用【转】
    iOS开发中xib和Storyboard中需要注意的事项
    如何将UISearchBar上"Cancel"按钮改为”取消“?
    iOS开发中关于本地数据中SQLite数据库常用的SQL语句
    UItableViewCell上的button点击无响应的办法
    UIScrollView的几个要点总结
  • 原文地址:https://www.cnblogs.com/yiwuya/p/1370377.html
Copyright © 2011-2022 走看看