飄ぺ風
【宁可因梦想而忙碌,不要因忙碌而失去梦想】

1、故障情况

星期一上班一早,客户打电话来,说数据库空间满了。检查表空间情况,还有剩余,检查alert_XXX.log也未有报错。

软件方手工测试,执行插入数据时报错,如下:

 

ORA-01536: 超出表空间 'xxxx' 的空间限额

 

 

2、故障解决

 

使用业务用户'AA'登陆数据库,查询业务用户'AA'对表空间'XXXX'的限额

 

select * from user_ts_quotes;

max_bytes字段为“0”,说明限额用完了,需要调整

 

增大用户对表空间的读写限额,由原来的2.5G加大到5G:

 

alter user 'AA' quota 5G on 'XXXX';

 

3、验证

 

软件测试后,数据库使用正常。

 

 4、总结

 

遇到ORA-01536错误,首先要查看用户的表空间的限额
select * from dba_ts_quotas;
select * from user_ts_quotas;

max_bytes字段-1是代表没有限制,其它值多少就是多少.
dba_ts_quotas :描述所有用户表空间的限额
user_ts_quotas :描述当前用户表空间的限额。

如果查询结果中max_bytes字段不为-1,修改为无限制或者指定的大小。

不对用户做表空间限额控制:
GRANT UNLIMITED TABLESPACE TOuser;

这种方式是全局性的。  或者
alter user  user  quota  unlimited on  user_tablespace;
这种方式是针对特定的表空间的.

回收表空间限额控制:
revoke unlimited tablespace from  user;

或者
alter user  user  quota  0  on  user_tablespace;

 

 

 

 

 

posted on 2014-12-22 11:35  飄ぺ風  阅读(334)  评论(0编辑  收藏  举报