Oracle学徒日志---表空间迁移(转)

作为一个Oracle菜鸟,将oracle对象建在默认的system表空间中是常常会发生的事情.比如:creat user user1 identified by pass1;因为没有指定默认的表空间,所以当导入数据的时候就会导入到SYSTEM表空中,可想而知,这样数据库的性能是极其糟糕的.

于是就需要对表空间进行迁移,以下是总结的步骤:

要为USER_A将TABLESPACE_A的所有对象移动到TABLESPACE_B,应遵循以下步骤:

1 为USER_A导出TABLESPACE_A中的所有对象。

2 执行REVOKE UNLIMITED TABLESPACE FROM USER_A;以收回任何授予用户帐户的无限制表空间权限。

3 执行ALTER USER USER_A QUOTA 0 ON TABLESPACE_A;以使USER_A帐户不能在TABLESPACE_A上创建任何对象。

4 删除TABLESPACE_A中USER_A拥有的所有对象。这一步不同的人有不同的习惯,大致有几种:

a.在plsql developer中手工删除,象我这样的菜鸟似乎没有plsql developer就不能活了,以后要注意了.

b.drop user user_a cascade;create user user_a identified by pass_a default tablespace tablespace_a;然后是一系列的grant 操作;

c.执行SQL生成drop脚本:select 'drop '||object_type||' '||object_name||';' from dba_objects where owner='USER_A';执行drop 脚本.

5 执行ALTER USER USER_A DEFAULT TABLESPACE TABLESPACE_B;以使TABLESPACE_B成为USER_A用户帐户的缺省表空间。Oracle试图将对象导入TABLESPACE_A,因为这些对象是从TABLESPACE_A导出的。注意用户不具有TABLESPACE_A上的配额。然后将查看用户的缺省表空间。在Oracle可以将数据导入TABLESPACE_B之前,必须给予USER_A用户该表空间上足够大的配额,如下步骤所示。

6 执行ALTER USER USER_A QUOTA UNLIMITED ON TABLESPACE_B;

7 导入被导出的数据库对象。缺省情况下,导入工具试图将它们导入到TABLESPACE_A中,然而,因为用户不具有这个表空间的配额,所以所有的对象将被创建在USER_A的缺省表空间TABLESPACE_B中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值