当前位置:   article > 正文

Oracle EXP/IMP 命令详解

Oracle EXP/IMP 命令详解

为了区别于Oracle 10g引入的书库泵导出和导入实用程序,将以前的导入和导出实用程序称为原始导出和导入实用程序。原始导入和导出实用程序,调用EXP和IMP命令。数据泵导出和导入实用程序,调用EXPDB和IMPDB命令。接下来,将详细介绍原始导出和导入实用程序的用法。

1.导出和导入实用程序

导出和导入实用程序提供一种在Oracle数据库之间传递数据对象的简单方式,即使他们驻留在不同的硬件和软件配置平台上。

当你在数据库中运行导出时,对象(例如表)以及相关联的对象(例如,索引,注释和授权)被提取。这些提取数据被写入到一个导出备份文件中。导入实用程序从这备份文件中读取对象定义和表数据。

导出文件是Oracle二进制格式的备份文件,通常位于磁盘或磁带上。

导出备份文件只能由Oracle导入实用程序读取。导入实用程序的版本不能早于导出实用程序用于创建备份文件的版本。

2.使用导出和导入之前

在使用导出和导入之前,必须确保以下项目:

  • 运行catexp.sql或catalog.sql脚本。
  • 确保有足够的磁盘或磁盘存储导出文件写入
  • 验证你是否有所需访问权限。

3.运行 catexp.sql或 catalog.sql脚本

为了使用导出和导入,你必须运行脚本 catexp.sql或 catalog.sql。Oracle 10g之后的数据库已经创建,不需要手动运行。

catexp.sql或 catalog.sql脚本只需要在数据库上运行一次。为了数据库准备导出和导入操作,该脚本执行以下任务:

  • 在数据字典中创建导出和导入必需的视图。
  • 创建EXP_FULL_DATABASE角色。
  • 为EXP_FULL_DATABASE和IMP_FULL_DATABASE角色分配必需的权限。
  • 为DBA角色分配EXP_FULL_DATABASE和IMP_FULL_DATABASE角色。
  • 记录安装的CATEXP.SQL版本。

4.导出和导入操作访问权限

为了导出和导入,必须有CREATE SESSION权限。这个权限属于CONNECT角色,CONNECT角色在数据库创建时被建立。为了导出其他用户的表,必须要有EXP_FULL_DATABASE权限。这些角色是被DBA授权的。

如果系统权限中没有包含EXP_FULL_DATABASE角色,不能导出包含其他用户模式的对象。例如,你不能导出其他用户模式的一张表,即使给这张创建了同义词。

一些系统模式不能被导出,因为它们不是用户模式。它们包含了Oracle管理数据和元数据,不能被导出的模式包括SYS,ORDSYS和MDSYS。

你可以执行导入操作,即使你不能创建导出文件。记住通过EXP_FULL_DATABASE角色用户创建的导出文件,必须使用IMP_FULL_DATABASE角色导入。这两个角色通常都是DBA分配的。

5.调用导出和导入

你可以通过以下任意一种方法调用导出和导入:

  • 命令行输入
  • 参数文件
  • 交互模式

6.导出和导入模式

导入和导入功能支持4中操作模式:

  • FULL:导出和导入整个数据库。只有拥有EXP_FULL_DATABASE和IMP_FULL_DATABASE角色的用户可以使用此模式。使用FULL参数指定此模式。
  • Tablespace:允许有权限的用户将一组表空间从Oracle一个用户移到另一用户。使用TRANSPORT_TABLESPACE参数指定此模式。
  • User:允许你导出和导入属于你的所有对象(例如,表,索引,授权和存储过程)。有权限的用户在用户模式可以导入一组指定用户模式的所有对象。使用OWNER参数在导出时指定此模式,使用FROMUSER参数在导入时指定此模式。
  • Table:允许你导入和导致指定表和分区。有权限的用户可以通过指定模式包含限定的表。未指定任何表的模式名称,默认是导出者模式名称。使用TABLES参数指定此模式。

7.导出参数

在WINDOWS平台上,可以在DOS命令框下输入exp help=y,查看exp命令的参数:

例如:

C:\Users\chiclewu>exp help=y

Export: Release 11.1.0.6.0 - Production on 星期一 11月 18 10:12:18 2013

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

通过输入 EXP 命令和您的用户名/口令, 导出
操作将提示您输入参数:

例如: EXP SCOTT/TIGER

或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出
的运行方式。要指定参数, 您可以使用关键字:

格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明 (默认值) 关键字 说明 (默认值)
--------------------------------------------------------------------------
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 模式导出的模板名

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

8.导出例子

分别使用4种模式导出数据库。

8.1导出整个数据库

C:\Users\chiclewu>exp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' full=y

8.2导出SYSTEM和USERS表空间

C:\Users\chiclewu>exp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' tablespaces=(SYSTEM,USERS)

8.3导出SYSTEM和SCOTT用户

C:\Users\chiclewu>exp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' owner=(SYSTEM,SCOTT)

8.4导出SCOTT用户下EMP表和DEPT表

C:\Users\chiclewu>exp scott/tiger@REDHAT_VIRTUAL file='D:\oradata\backup\scott.dmp' tables=(emp,dept)

9.导入参数

在WINDOWS平台上,可以在DOS命令框下输入imp help=y,查看imp命令的参数:

C:\Users\chiclewu>imp help=y

Import: Release 11.1.0.6.0 - Production on 星期一 11月 18 22:01:21 2013

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

通过输入 IMP 命令和您的用户名/口令, 导入
操作将提示您输入参数:

例如: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种参数来控制导入
的运行方式。要指定参数, 您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明 (默认值) 关键字 说明 (默认值)
-----------------------------------------------------------------------
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 拥有可传输表空间集中数据的用户

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

10.导入例子

分别使用4种模式导出数据库。

10.1导入整个数据库

C:\Users\chiclewu>imp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' full=y ignore=y

10.2导入SYSTEM和USERS表空间

C:\Users\chiclewu>imp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' tablespaces=(SYSTEM,USERS) ignore=y

10.3 导入SYSTEM和SCOTT用户

C:\Users\chiclewu>imp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' fromuser=(SYSTEM,SCOTT) ignore=y

10.4导入SCOTT用户下EMP表和DEPT表

C:\Users\chiclewu>imp scott/tiger@REDHAT_VIRTUAL file='D:\oradata\backup\scott.dmp' tables=(emp,dept) ignore=y

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/992701
推荐阅读
相关标签
  

闽ICP备14008679号