关于Oracle IMP/EXP命令与参数详解

来源:互联网 发布:梦幻手游和互通版 知乎 编辑:程序博客网 时间:2024/06/07 11:25

关于IMP/EXP命令帮助

输入参数help=y就可以看到帮助。

如何使exp的帮助以不同的字符集显示:

set nls_lang=simplifiedchinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果setnls_lang=American_america.字符集,那么你的帮助就是英文的了。


EXP所有参数(括号中为参数的默认值):

USERID      用户名/口令    如:USERID=duanl/duanl     

FULL        导出整个数据库(N)

BUFFER      数据缓冲区的大小

OWNER      所有者用户名列表,你希望导出哪个用户的对象,就用owner=username

FILE         输出文件(EXPDAT.DMP)   

TABLES      表名列表,指定导出的table名称,如:TABLES=table1,table2

COMPRESS    导入一个extent(Y)  

RECORDLENGTH IO 记录的长度

GRANTS      导出权限(Y) 

INCTYPE      增量导出类型

INDEXES      导出索引(Y)

RECORD      跟踪增量导出 (Y)

ROWS         导出数据行(Y),否则是空表和表结构

PARFILE      参数文件名,如果你exp的参数很多,可以存成参数文件.

CONSTRAINTS导出约束(Y)   

CONSISTENT   交叉表一致性

LOG          屏幕输出的日志文件 (输出日志到文件)

STATISTICS    分析对象(ESTIMATE)

DIRECT       直接路径(N)

TRIGGERS    导出触发器(Y)

FEEDBACK    显示每 x 行 (0) 的进度

FILESIZE      各转储文件的最大尺寸

QUERY        选定导出表子集的子句

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TABLESPACES 将传输的表空间列表


EXP常用选项:

1.FULL,这个用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。例如:

exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y

2. OWNER和TABLE,这两个选项用于定义EXP的对象。OWNER定义导出指定用户的对象;TABLE指定EXP的table名称,例如:

exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl

exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap

3.BUFFER和FEEDBACK,在导出比较多的数据时,我会考虑设置这两个参数。例如:

exp userid=test/test file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT

4.FILE和LOG,这两个参数分别指定备份的DMP名称和LOG名称,包括文件名和目录,例子见上面。


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)

ANALYZE 执行转储文件中的ANALYZE 语句(Y)

FEEDBACK 显示每 x 行 (0) 的进度

TOID_NOVALIDATE 跳过指定类型 id 的校验

FILESIZE 各转储文件的最大尺寸

RECALCULATE_STATISTICS 重新计算统计值 (N)

 

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)

TABLESPACES 将要传输到数据库的表空间

DATAFILES 将要传输到数据库的数据文件

TTS_OWNERS 拥有可传输表空间集中数据的用户

关于增量参数的说明:exp/imp的增量并不是真正意义上的增量,所以最好不要使用。


1. ignore参数

Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。

若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,假如插入的记录违反了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。

若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。

2. indexes参数

在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。


IMP常用选项:

1、 FROMUSER和TOUSER,使用它们实现将数据从一个SCHEMA中导入到另外一个SCHEMA中。例如:假设我们做exp时导出的为test的对象,现在我们想把对象导入用户:

imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1

2、IGNORE、GRANTS和INDEXES,其中IGNORE参数将忽略表的存在,继续导入,这个对于需要调整表的存储参数[1] 时很有用,我们可以先根据实际情况用合理的存储参数建好表,然后直接导入数据。而GRANTS和INDEXES则表示是否导入授权和索引,如果想使用新的存储参数重建索引,或者为了加快到入速度,我们可以考虑将INDEXES设为N,而GRANTS一般都是Y。例如:

imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=N


扩展阅读: [1]http://blog.csdn.net/eigo/article/details/648843


以下为IMP/EXP导入导出命令工具在项目中一些常用的方式如下:

1:导出整个方案库

EXP username/password@databaseFILE=D:\filename.dmp log=D:\filename.log

2:导入整个方案库(当源库中存在表或其它信息内容)可加入ROWS=Y IGNORE=Y这两个参数

IMP username/password@database file=D:\filename.dmplog=D:\filename.log fromuser=exp_username touser=imp_username;

3:导出方案中部分表信息

EXP username/password@databasetables=(table_name1,table_name2,table_name3,...)   file=D:\filename.dmp   log=D:\filename.log

4:导入方案中部分表信息(当源库中存在表或其它信息内容)

IMP username/password@databasetables=(table_name1,table_name2,table_name3,...) ROWS=Y IGNORE=Y file=D:\filename.dmp log=D:\filenameimp.log fromuser=exp_username touser=imp_username

5:导出方案中表带子查询条件的数据--也就是导出某张表中满足条件的记录.(用\符号将"和'转义)

EXP username/password@database TABLES=(table_name)   QUERY=\"WHERE column_name IN(\'column_value1\',\'column_value2\',\'column_value3\',...)\"file=D:\filename.dmp log=D:\filename.log

6:导入方案中表的部分记录增量导入

IMP username/password@database tables=(table_name) ROWS=Y IGNORE=Y file=D:\filename.dmp log=D:\filename_imp.log fromuser=exp_username touser=imp_username

原创粉丝点击