ORA-01536: space quota exceeded for tablespace

  2016-06-28 12:19

前些天,一次平常的做数据库对比,将更新应用到目标库时报错:

ORA-01536: space quota exceeded for tablespace 'HBFS' 

根据网上资料,该问题是由于用户在使用表空间时候受到了权限的限制

解决方案很简单,

修改这个用户的使用这个表空间的空间的权限就可以了。

oracle提供两种方法:

  1. Increase the tablespace quota allocated to that user or role by using the following command(即增加具体的大小限额): 

ALTER USER <username> QUOTA

<integer> [K/M] ON <tablespacename> 

  1. suggest QUOTA

UNLIMITED(即去掉配额限制,unlimited,推荐使用这种,否则当第一个方法用后,如果再不够,那岂不是要再进行分配限额!): 

ALTER USER <username> QUOTA UNLIMITED ON <tablespacename>

方法2的另外一种写法:

grant unlimited tablespace to <username>;

于是在sqlplus下面以sysdba权限登陆操作:

SQL> grant unlimited tablespace to hbfs;

Grant succeeded. 

SQL> delete from hbfs_gongnengtx where texingid=2736;

1 row deleted 

操作成功,问题解决!

(亦可用plsql管理员登录,

A找到目标库编辑quotas,选择空,

orcl10g_002_001

B找到目标库编辑system privileges,选择unlimited tablespace,点击应用;

orcl10g_002_002

完成。)

本来到这里也告一段落,结果在一篇文章上面

(https://www.dbasupport.com/forums/archive/index.php/t-47410.html)

发现产生这个问题可能与role是DBA和RESOURCE被revoke有关。

换句话说,拥有dba角色的用户在使用表空间时,才可能有无限的表空间允许使用,当某种情况(不同版本的数据库数据 迁移等)下用户的dba角色被撤销,对应用户的无限的表空间使用权限也将停止。

你好,游客!(点击更改信息)

您的电子邮件不会被公布,带*为必填。


  • *

    code

      正在提交中,请稍候...
      评论提交成功
    回复 的评论,点击取消回复。