oracle 导入导出

一:基本导入导出
exp  scott/oracle@orcl file=d:/test.dmp
imp scott/oracle@orcl file=d:/test.dmp ignore=y

ignore参数

如果表中没有数据,在使用IMP导入  的ignore=y参数时,ORACLE不会检查要导入的数据结构和现存在数据库中表的结构是否相同。
会直接显示如下信息:
. . importing table       "XXXXX_tablename"  0 rows imported
只有真要有数据需要导入时,才会检查数据结构的一致性问题。
所以在检查自己做的定时导入导出时,一定要用数据去检测,否则可能造成一种假象。


二:从用户A导入用户B

1将数据库中用户A的表导出
1:exp system/manager@TEST file=d:daochu.dmp tables=(table1,table2) 
注:如果用exp system/manager@TEST file=d:daochu.dmp owner=(system),会将所有是system用户的表都导出,所以还是一个表一个表的写吧!
2:导入到用户B
imp user/test@TEST fromuser=system touser=user file=d:daochu.dmp:

============================================================================

三:ORACLE 导出多个用户的表
exp sljsxmgk/sljsxmgk@124.128.194.93 file=d:/sxz.dmp owner=(user1,user2)
imp system/oracle@orcl file=d:/sxz.dmp grants=n rows=y ignore=y  fromuser=(user1,user2) touser=(user1,user2)

============================================================================

四:ORACLE无法导出空表解决方案
11G中新特性,当表无数据时,不分配segment,以节省空间
解决方法:
1查找空表并分配空间:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
2然后将执行结果复制到另一个SQL窗口,并执行类似的语句:
ALTER TABLE COMJARREF ALLOCATE EXTENT;  
ALTER TABLE COMSTORE ALLOCATE EXTENT;  
ALTER TABLE DATASERVER ALLOCATE EXTENT;  
ALTER TABLE EIMP_COLUMNS ALLOCATE EXTENT;  
ALTER TABLE EIMP_TABLES ALLOCATE EXTENT; 

===============================================================

五:ORACLE 导入导出某几个表

数据导出:

 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
   exp system/manager@TEST file=d:daochu.dmp full=y
 2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
 3 将数据库中的表table1 、table2导出
   exp system/manager@TEST file=d:daochu.dmp tables=(table1,table2) 
 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
  
     上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
  不过在上面命令后面 加上 compress=y  就可以了 
数据的导入
 1 将D:daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST  file=d:daochu.dmp
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
 2 将d:daochu.dmp中的表table1 导入
 imp system/manager@TEST  file=d:daochu.dmp  tables=(table1) 

 

 

 

原文地址:https://www.cnblogs.com/leonkobe/p/3612515.html