EXP/IMP使用技巧总结

来源:互联网 发布:谷嫂淘宝店 编辑:程序博客网 时间:2024/06/05 09:15
1、 用sys用户全库导出DDL,不导出数据
exp 'sys/oracle@ORCL as sysdba' file=D:/AIX/ORCL_ALL.dmp full=y ROWS=N log=D:/AIX/IRS_exp.log  
说明:sys用户as sysdba登录,要用单引号引起来,SID紧跟着用户名密码,as sysdba放其后;rows=N表示不导出数据,只导出数据库对象定义。

2、  导出某个用户的表的前1000行
exp irsadmin/irsadmin@ORCL query=/"WHERE ROWNUM<10000 /" file=D:/AIX/IRS.dmp tables=(LOAN%) log=D:/AIX/IRS_exp.log rows=Y  
说明:做成BAT文件执行,一直闪,执行不了;在CMD直接运行命令会报错,但不影响导出,是字符集设置问题。

3、 使用参数文件
exp parfile=exp_par.par file=IRS_%date:~0,10%.dmp log=IRS_exp_%date:~0,10%.log  
参数文件:(exp_par.par)
 
userid=irsadmin/irsadmin  
full=y  
ROWS=N  
buffer=8192000  
compress=N  
grants=Y  

说明:在数据导出在可以使用参数文件的方式,但一般认为没有必要;日志文件和数据文件可以保存为以日期结尾的形式。

4、 预估导出文件的大小
估算导出文件的大小
SELECT SUM(BYTES) / 1024 / 1024 / 1024 AS 空间大小_G  
  FROM DBA_SEGMENTS  
 WHERE OWNER = 'EDW';  

5、 如果对象已经存在,只导入数据,忽视对象创建错误
imp irsadmin/irsadmin@orcl file=IRS.dmp log=irs.log ignore=Y tables=CUSTOMER  
但如果违反了唯一性约束,仍然会出错。

6、 多个数据文件导出与导入
这种做法通常用在表数据量较大,单个 dump文件可能会超出文件系统的限制的情况
exp edw/edw file=edw_1.dmp,edw_2.dmp,edw_3.dmp filesize=1G log=exp_more_file.log owner=edw  
imp edw/edw file=edw_1.dmp,edw_2.dmp,edw_3.dmp filesize=1G log=imp_more_file.log fromuser=edw touser=dw  

说明:导出时,如果列出的数据文件不能完全装载导出的数据,则会提示输入新的数据文件名;导入时,各文件名是作为一个整体(所有导出的数据文件),必须全部列出。

7、 全库导入的一般步骤
注意:在导出时,需要通过toad或其他工具提取源数据库创建主键和索引的脚本
(1).先全库加 rows=n 把结构导进去
imp system/manager file=exp.dmp log=imp.log full=y rows=n indexes=n
(2).使业务用户的触发器失效/删除主键和唯一索引
spool drop_pk_u.sql  
select 'alter table '||table_name||' drop constraint '||constraint_name||';'from user_constraints where constraint_type in ('P','U');  
/  
spool OFF  
spool disable_trigger.sql  
select 'alter trigger '||trigger_name||' disable;'from user_triggers;  
/  
spool OFF  

执行生成的脚本:
@drop_pk_u.sql
@disable_trigger.sql
(3).以 ignore=y全库导入
$imp system/manager file=exp.dmp log=imp.log full=y ignore=y
(4).通过 toad或其他工具提取源数据库创建主键和索引的脚本,在目标数据库中创建主键和索引;使触发器生效。

8、 导入时忽略约束
imp edw/edw file=CJJBH_JGDH_20090930.dmp log=CJJBH_JGDH_20090930.log fromuser=edw touser=dw tables=CJJBH_JGDH_20090930 ignore=Y constraints=N  

但一般没有实际用处,因为如果这样,数据虽然可能导进去,但逻辑上可能已经全是错误的了。


转至:http://blog.csdn.net/nsj820/article/details/5771286

0 0
原创粉丝点击