ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle中的【ORA-01536表空间限额不够】的解决方法

2020-05-05 17:40:22  阅读:306  来源: 互联网

标签:01536 his sms SMS 限额 空间 Oracle ORA


Oracle中的【ORA-01536表空间限额不够】的解决方法

错误场景:

今天在SMS短信数据库一个功能运行时候遇到了ORA-01536错误,具体如下:

--执行一条插入语句
INSERT INTO SMS_MASTER
  (CREATE_DATE, TYPE_NAME, SMS_ID, SMS_CONTENT,SMS_PHONE)
VALUES
  (SYSDATE, 'HIS', 00003689, '测试数据', '138****2263');

/*报错信息: ORA-01536: 超出表空间 'USERS' 的空间限额 */

解决过程:

ps:开始以为是表空间不够用了,看了下,的确USERS表空间剩余不多了,于是新建了一个数据文件增加表空间,可是再次运行还是一样的ORA-01536;


/*对表空间设取消的限制 或指定限额大小*/
--2.1、这种方式是全局性的
GRANT UNLIMITED TABLESPACE TO sms_his;
--2.2这种方式是针对特定的表空间的
alter user sms_his[这的sms_his里是用户] quota unlimited on USERS(这的USERS里是表空间);
--2.3指定限额大小 如果你要设置实际的大小,那你可以设置需要的大小如下
alter user sms_his quota 500m on users;
--查看用户表空间的限额 
select * from dba_ts_quotas t where t.username ='SMS_HIS';
/*max_bytes字段【-1】是代表没有限制,其它值多少就是多少*/
/*ps:2.1我使用的是第一种方法*/
--授予用户帐户的系统权限 如下图 PRIVILEGE 值是 UNLIMITED TABLESPACE 就没问题了
select * from dba_sys_privs t where t.GRANTEE = 'SMS_HIS';

 

知识补充

回收表空间限额控制:

--1、回收表空间限额控制:
--1.1方式1
revoke unlimited tablespace from  user;
--1.2方式2
alter user  sms_his  quota 0 on  user_tablespace;

表空间的大小与用户的配额大小是两种不同的概念

  1. 表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小。
  2. 把表空间文件增大,还是出现这个问题,用户在使用表空间的同时使用空间的限额。
  3. 如果超出限制,就算有空的地方,也不会让用户使用。

标签:01536,his,sms,SMS,限额,空间,Oracle,ORA
来源: https://blog.csdn.net/qq_20454875/article/details/105908273

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有