如题,自己是做java开发的,突然接到这个任务,不是太清楚怎么操作,网上看了很多文章也没看到完全合适的,求助大家背景:oracle10g(10.2.4.0),导出文件是用emp按用户(不是sys)导出的dmp文件,大小接近50个G。 可以确定的是里面有的表作了partition,现在需要把这个库导出到另外一台电脑上作为备份。 目标机器上相同版本的oracle数据库软件已安好现在想要导入这个dmp文件,不过不清楚该怎么操作。 
我看有的文章说不需要提前创建表空间什么的;
但又看到一篇文章这么说:
  “有关imp表空间的问题
1 如果存在和源环境一致的表空间,并且imp的用户在该表空间有quato,那么对象会在和源环境一样的表空间
2 如果不存在和源环境一致和表空间,对象生成在用户的默认表空间下面
3 如果存在和源环境一致表空间,但没有quato在这个表空间上面,对象也生成在用户的默认表空间上面
4 但是对于以下情况,一定要存在源和目标一致的表空间,并且在之上有quato
Is partitioned
Is a type table
Contains LOB, VARRAY, or OPAQUE type columns
Has an index-organized table (IOT) overflow segment”这个第4点是不是意味着我需要手动建立表空间、分区这些?  我这个库里面东西挺杂的,上百个表,部分大表作了分区。 具体该如何操作呢?
必须要这样么:
   先手动创建用户,再手动创建和原库一样的表空间和分区,之后再用imp命令导入? 感觉这样一是很麻烦,二是很容易输入错误吧。有没有更方便的方法?

解决方案 »

  1.   

    不用纠结那么多啊,你参考原库建上对应的表空间和用户及授权。
    然后 imp导入就行了。
    imp导入的时候会自动创建表结构包括分区的。Imp的命令网上查很多。
      

  2.   

    不想麻烦最无脑的方法就是直接建和原库一样的表空间,名称,大小等等,否则只有先建表然后加ignore=y或者data_only=y导入了
      

  3.   

    另外,因为是10g,那么可以考虑用impdp+dblink的方案来解决这个问题,最安逸,想转换表空间也就是一个remap_tablespace参数的事~