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

已经测试过,没问题

 我们在做Oracle数据库表迁移时,通常会有这种需求,在开发阶段,可能所有用户的数据都放在一个表空间中,比如users表空间,但是在生产中,我们希望将每个用户的数据分别放到不同表空间中,此时直接使用exp/imp是不具备选择表空间功能的(expdp/impdp可以),这里我们提供了一种方法来实现这种功能。

 

正常情况下,我们使用exp导出,再用imp导入,它会将数据导入到原来表空间中。

 我们做imp导入时,即使新建用户指定了默认表空间,也很会导入到原来的表空间中(除非原来默认的表空间已经被删除掉了,否则即便换用户也不行)

 

此时我们提供另一种方式来更改数据表的表空间,假设用户为test01,步骤如下:

 1、创建用户,注意一定要加默认表空间

create user test01 identified by test01 default tablespace test01;

2、赋予权限,注意不要赋予dba权限,如果实在需要可以导入后再赋权,当然导入操作可以用system来做

GRANT CONNECT TO test01;
GRANT IMP_FULL_DATABASE TO test01;
GRANT RESOURCE TO test01;

3、收回用户test01无限制表空间权限

revoke unlimited tablespace from test01;

4、将原来表空间的权限收回

alter user test01 quota 0 on USERS;

5、赋予新表空间权限

alter user test01 quota unlimited on test01;

 

需要注意的是,假如users表空间可以删除,则可以直接导入到新的默认表空间test01中

 

此时我们直接导入,发现表全部在新的默认空间中

imp system/oracle file=test01.dmp fromuser=test01 touser=test01 buffer=10240 commit=y log=imptest01.log 

我是这样导入的

imp test01/test01@你的ip/orcl full=y   file=test01.dmp

 

转载于:https://www.cnblogs.com/li-sx/p/9641126.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值