exp/imp命令的介绍和使用

1. exp/imp简介

      exp/imp是oracle提供的一个对数据库进行逻辑备份的客户端工具。利用这个工具可以把数据库按表空间、用户或某些表保存到操作系统下的一个二进制文件里。这个二进制文件与平台无关,利用这个特性可以完成数据的跨平台的迁移。exp/imp可以看做是一个select--create--insert的过程。exp时select出要导出的数据和相关的ddl,imp时执行这个“脚本”(ddl和insert)。

2.exp/imp导入导出的模式

      exp/imp一共有四种模式:FULL、USER、TABLES、TABLESPACES

FULL:必须具有EXP_FULL_DATABASE的权限,导出数据库中所有用户的对象,sys用户的对象不会被导出,因此属于sys用户的一些触发器将会丢失,导入后需要手工创建。

USER:具有create session的用户,即可对属于自己的schame进行导出。user模式将导出该模式下的所有对象及对象权限(不包括系统权限)等。

TABLES:导出指定的表(表明可用通配符%)。

TABLESPACES:主要用于transport tablespaces,必须以sysdba权限才能进行。

3.exp/imp主要参数介绍

exp:

 
BUFFER:指定缓冲区的大小,即一次fetch获取的最大行数,以字节为单位,默认是4096。buffer参数只在常规路径导出生效,直接路径导出不生效。
 
FILE:指定导出的文件名称,结合FILESIZE参数(导出文件的大小)可以指定多个数据文件名称,这样可以实现一边exp,一遍imp。
 
COMPRESS:不是指对导出的数据进行压缩。是指在导入时,创建表时指定initial_extent的大小,默认是Y。参数取Y时,导入时initial_extent的大小为导出时表的表大小;参数取N时,导入时initial——extent的大小即为导出表的initial_extent的大小。
COMPRESS 取Y,实验如下:
SQL> select segment_name,initial_extent,next_extent,bytes from user_segments whe
re segment_name='T';
SEGMENT_NA INITIAL_EXTENT NEXT_EXTENT      BYTES
---------- -------------- ----------- ----------
T                   65536               14680064
SQL> host exp userid=test/test tables=t file=d:\a.dmp compress=y;
Export: Release 10.2.0.1.0 - Production on 星期五 4月 12 19:22:30 2013
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 字符集
即将导出指定的表通过常规路径...
. . 正在导出表                               T导出了      278528 行
成功终止导出, 没有出现警告。
SQL> conn test1/test1
已连接。
SQL> host imp userid=test1/test1 file=d:a.dmp fromuser=test touser=test1
Import: Release 10.2.0.1.0 - Production on 星期五 4月 12 19:24:09 2013
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 创建的导出文件
警告: 这些对象由 TEST 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 TEST 的对象导入到 TEST1
. . 正在导入表                             "T"导入了      278528 行
成功终止导入, 没有出现警告。
SQL> select segment_name,initial_extent,next_extent,bytes from user_segments whe
re segment_name='T';
SEGMENT_NA INITIAL_EXTENT NEXT_EXTENT      BYTES
---------- -------------- ----------- ----------
T                14680064               14680064
COMPRESS 取N,实验如下:
SQL> conn test1/test1
已连接。
SQL> drop table t;
表已删除。
SQL> conn test/test
已连接。

SQL> select segment_name,initial_extent,next_extent,bytes from user_segments whe
re segment_name='T';
SEGMENT_NA INITIAL_EXTENT NEXT_EXTENT      BYTES
---------- -------------- ----------- ----------
T                    65536               14680064
SQL> host exp userid=test/test tables=t file=d:\b.dmp compress=n;
Export: Release 10.2.0.1.0 - Production on 星期五 4月 12 19:42:24 2013
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 字符集
即将导出指定的表通过常规路径...
. . 正在导出表                               T导出了      278528 行
成功终止导出, 没有出现警告。
SQL> conn test1/test1
已连接。
SQL> host imp userid=test1/test1 file=d:\b.dmp fromuser=test touser=test1;
Import: Release 10.2.0.1.0 - Production on 星期五 4月 12 19:43:35 2013
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 创建的导出文件
警告: 这些对象由 TEST 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 TEST 的对象导入到 TEST1
. . 正在导入表                             "T"导入了      278528 行
成功终止导入, 没有出现警告。
SQL> select segment_name,initial_extent,next_extent,bytes from user_segments whe
re segment_name='T';
SEGMENT_NA INITIAL_EXTENT NEXT_EXTENT      BYTES
---------- -------------- ----------- ----------
T                    65536               14680064
 
GRANTS:对指定表导出时是否把该表上所关联的权限信息也进行导出,默认是Y。
INDEXS:导出文件中包含表中相关索引的创建语句,默认是Y。
CONSTRAINTS:导出文件中包含表中相关约束的创建语句,默认是Y.。
DIRECT:是否使用直接路径,默认为N,即用常规路径导出。direct=y时可以起到提速作用。
ROWS:是否导入数据,默认是Y。
CONSISTENT:是否以只读事务的形式进行导出,默认值为N。参数取Y时,exp将在一个事务中进行,所有数据都是基于一个时间点的,导出过程中发生改变的数据将从回滚段中获取,当回滚段数据被覆盖时,会报ORA-01555;参数取N时,每张表都作为一个单独的事务导出,所以只能保证表内的数据一致性,表之间的一致性会被破坏,所以导出时都应该在系统不繁忙是进行。
RECORDLENTH:操作系统I/O缓存大小,与DIRECT=Y配合使用,以字节为单位,最大为64K。直接路径导出时,BUFFER参数失效,取而代之的是recordlength参数
TRIGTGERS:导出文件中包含表中相关触发器的创建语句,默认是Y。
STATISTICS:对象分析,默认为estimate(estimate,估算;compute,计算;none,无对象分析)
PARFILE:指定参数文件,把参数信息都放入一个文件中,exp是指定该参数文件即可。
FEEDBACK:每导出多少行显示一次进度。
 
imp
 
与exp一样的参数就不说了
SHOW:按顺序列出dmp文件中的ddl语句,但不执行具体的导入。
IGNORE:创建数据库对象时,如果对象已存在,是否忽略,默认为N。
FROMUSER:从哪个用户导出,配合TOUSER使用。
TOUSER:导入到哪个用户下,配合FROMUSER使用,实现用户间的数据迁移。
COMMIT:导入数据时是否以缓存记录作为提交单位,默认为N,以表为提交单位。
 
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26358285/viewspace-758393/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26358285/viewspace-758393/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值