Oracle基础 exp/imp命令

时间:2021-07-17 18:05:08

一、导出方式:  

  使用exp/imp方式导出数据分为四种方式:

  1、表方式导出:一个或多个指定的表,包括表的定义、表数据、表的所有者授权、表索引、表约束,以及创建在该表上的触发器。也可以只导出结构,不导出数据。还可以导出用户所拥有的全部表,还可以指定导出的表的分区。

  2、用户方式导出:用户模式的所有对象以及对象中的数据。

  3、表空间方式导出:包含在指定表空间中的所有对象,以及对象上的索引定义。

  4、全部数据库方式导出:是指数据库中的所有对象,包括表空间、用户及模式中的所有对象(表、视图、序列、同义词、约束、索引、存储过程和触发器等)、数据和权限。

二、用exp命令导出数据。

  语法:

  exp userid=username/password direct=y full=y rows=y file=d:/backup/back.dmp log=d:/backup/back.log

  说明:

  userid=username/password:表示用户名和密码。

  direct=y:是否按直接路径导出

  full=y:表示全部数据库导出

  rows=y:表示连同基表中的数据一同导出

  file:导出文件

  log:导出的日志文件

  参数可以是一个或者多个,如果在命令行没有给出必须的参数,导出使用程序会提示用户逐个输入。

  

  由于exp参数过多,可以通过输入 exp help=y 获取exp的语法信息。

通过输入 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 交叉表一致性                         CONSTRAINTS         导出约束条件 (Y)

FEEDBACK                              每 x 行显示进度 (0)
  FILESIZE                                每个转储文件的最大大小
  FLASHBACK_SCN                    用于回调会话快照的 SCN
  FLASHBACK_TIME                   用来获得最接近于指定时间的 SCN 的时间
  QUERY                                   用来导出表的子集的选择子句
  RESUMABLE                           遇到与空格有关的错误时挂起 (N)
  RESUMABLE_NAME                  用来标识可恢复语句的文本字符串
  RESUMABLE_TIMEOUT             RESUMABLE 的等待时间
  TTS_FULL_CHECK                   对 TTS 执行完全或部分相关性检查
  TABLESPACES                        要导出的表空间列表
  TRANSPORT_TABLESPACE       导出可传输的表空间元数据 (N)
  TEMPLATE                              调用 iAS 模式导出的模板名称

示例:

  1)将数据库完全导出

 exp system\system@accp file='d:\backup\full.dmp' full=y

  2)导出用户

  exp system/accp@accp file='d:\backup\scott.dmp' owner=(scott)

  3)导出表

  exp scott/scott@accp file='d:\backup\table.dmp' tables=(emp,dept)

  4)导出表空间

  exp scott/scott@accp file='d:\backup\table.dmp' tablespaces=(users)

  如果想对dmp文件进行压缩,可以在上面命令后面 加上 compress=y 来实现。

三、使用imp命令导入数据  

  可以通过在命令行输入 imp help=y 获取imp的语法信息:
=============================================================================
  C:/Documents and Settings/auduser>imp help=y

可以通过输入 IMP 命令和您的用户名/口令  后接用户名/口令的命令:

例程: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种参数来控制“导入”  按照不同参数。要指定参数,您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
  例程: 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)

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

  示例:

  1)导入全部

  imp scott/scott@accp file=full.dmp full=y

  2)导入表

  imp scott/scott@accp file=table.dmp tables=(emp,dept)

  3)导入用户

  imp scott/scott@accp file=d:\backup\scott.dmp fromuser=scott touser=scott