关于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