如何将EXP出来的数据IMP进不同的表空间

原创 2004年06月10日 10:37:00

AuthorKamus

Mailkamus@itpub.net

Date2004-1

 

经常有人会问:原来的数据在USERS表空间里面,我想把它IMPAPP表空间,我已经修改了目的用户的默认表空间,为什么结果还是IMPUSERS表空间中了呢。

 

关于此问题,作如下解释:

Oracle并没有提供什么参数来指定要导入哪个表空间,数据默认将导入到原本导出时数据所在的表空间中,但是我们可以通过以下的方法来实现导入到不同的表空间。

 

1.在IMP时候使用INDEXFILE参数

当给此参数指定了某一文件名,IMP的时候所有的index将不会直接导入到表空间中,而是在指定的文件中生成创建index的脚本。

然后用文本编辑器打开此文件,直接编辑脚本中的storage参数,修改为想要导入的表空间名称。

然后重新执行IMP,使用INDEXS=n参数将除Index之外的Objects导入。

最后进入SQL*PLUS,直接运行刚才编辑的脚本,生成索引。

该方法适用于将index以及constraints导入指定的表空间。

 

2.改变目的用户的默认表空间

这就是上面说的经常有人提问的方法。但是上述的问题之所以没有成功,是因为缺少了下面的几步。

首先,收回目的用户的"UNLIMITED TABLESPACE"权限:

revoke unlimited tablespace from username;

其次,取消目的用户在原数据导出表空间中的配额,这样才能迫使IMP把数据导入到用户的默认表空间中去。

然后,将希望导入的表空间设为目的用户的默认表空间,并添加配额。

最后,执行IMP

 

3。使用TOAD

TOAD是强大的Oracle数据库管理软件,是Quest出品的第三方软件,我们可以使用其中的Rebuild Multi Objects工具来实现将多个Object转移到指定的表空间。

于是我们可以不管三七二十一,先IMP,然后再用TOAD作事后的修改。

关于TOAD的使用,此处不作详细解释。

Oracle exp/imp:源和目标表空间不同时的处理方法

场景描述: 1、做一个从UAT到PRD的Schema迁移,UAT环境有sys用户,PRD环境没有sys用户,由于权限限制,没办法使用expdp/impdp,只好选择exp/imp命令; 2、UAT和P...
  • gmf2014
  • gmf2014
  • 2016年08月31日 15:50
  • 5015

IMP数据到指定的表空间

一直以来,我都认为只要指定用户的默认表空间,向该用户导入数据时,会自动进入到默认表空间。后来发现从System导出的dmp文件在导入时,即使指定新用户的默认表空间,还是要往System表空间中导数据。...
  • roamer314
  • roamer314
  • 2016年03月21日 20:54
  • 816

oracle 数据库imp操作导入dmp文件时表空间问题

一: 假设数据用户USER1使用默认表空间TS1,用户USER2使用默认表空间TS2,现在将USER1的数据导入到USER2,要求使用表空间TS2。通过IMP命令参数tablespaces指定表空间...
  • zhuxiaowei716
  • zhuxiaowei716
  • 2015年03月26日 16:16
  • 17586

oracle通过impdp导入不同表用户、不同表空间的数据

impdp smtj2012/密码@localhost/devdb DIRECTORY=dump_dir DUMPFILE=bkmmtdb_smtj20130417120001.dmp remap_s...
  • tegwy
  • tegwy
  • 2013年04月21日 17:34
  • 34805

exp-imp实现oracle不同表空间的迁移

 --1 在迁徙目标机上新建 create tablespace tzsb datafile 'I:\app\Administrator\oradata\orcl\tzsb01.dbf' si...
  • mxz55
  • mxz55
  • 2014年10月30日 09:20
  • 810

Oralce 用IMP导入到指定表空间

来源:http://blog.sina.com.cn/s/blog_62d1205301012udn.html SQL> create user myhuang identified by ...
  • ytfy12
  • ytfy12
  • 2014年11月30日 10:10
  • 7727

Oracle中exp,imp的TableSpace表空间问题

当用EXP导出表,其表的表空间和需要导入的表空间不一致时,有两种处理方法。 1.修改该表的表空间语句。  如有表T1,所在表空间为USER。直接修改其表空间必须先删除此表数据,而且当有几百张表时,...
  • luo_yifan
  • luo_yifan
  • 2011年11月16日 16:35
  • 2215

关于在IMP时指定表空间的心得:将EXP出来的数据IMP进不同的表空间

因开发需要,欲新建一用户B,并将A用户的所有表COPY一份到B中,A、B在同一数据库,且位于不同的表空间中。发现IMP时即使是指定FORMUSER,TOUSER,仍然无法在B的表空间建表,所有的表还是...
  • Blaider
  • Blaider
  • 2010年07月01日 09:46
  • 1551

Oracle exp/imp导入不同的表空间

我们在做Oracle数据库表迁移时,通常会有这种需求,在开发阶段,可能所有用户的数据都放在一个表空间中,比如users表空间,但是在生产中,我们希望将每个用户的数据分别放到不同表空间中,此时直接使用e...
  • mhmds
  • mhmds
  • 2017年08月26日 15:05
  • 362

Oracle IMP导出到不同表空间不成功

Oracle IMP导出到不同表空间不成功        一、问题描述:        所用环境:Oracle 11g客户端、Windows 64bit、C#;        具体描述:用户UserA...
  • sean4m
  • sean4m
  • 2016年08月05日 14:25
  • 4474
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何将EXP出来的数据IMP进不同的表空间
举报原因:
原因补充:

(最多只允许输入30个字)