改变用户在表空间上的配额

一、作为DBA,在如下情况可能需要修改用户的表空间配额

1.用户所拥有的表出现没有预料到得增长;

2.某个应用被加强,需要额外增加表和索引;

3.对象被重组,并放到不同的表空间;

4.非配给用户的表空间过多,已经影响到系统的效率和安全;

二、修改方法:

修改用户表空间配额的方法:

1.alter user user_name quota size on tablespace_name

其中size可以是诸如‘32M’,‘2G’,‘unlimited’等。

这都是针对某个特定的表空间进行配额修改。

2.grant unlimited tablespace to user_name

这是全局性质的授权无限使用表空间。

创建用户时,指定用户表空间配额的方法:

eg:

CREATE USER SKATE IDENTIFIED BY SKATE_PWD
DEFAULT TABLESPACE SKATE_TS
TEMPORARY TABLESPACE temp
QUOTA 3M ON SKATE_TS
PASSWORD EXPIRE

回收用户表空间配额的方法:

1.alter user user_name quota 0 on tablespace_name

这是针对某个特定的表空间进行配额回收。

2.revoke unlimited tablespace to user_name

这是全局性质的授权无限使用表空间。

三、查看方法:

通过视图查看:

dba_ts_quotas : DBA_TS_QUOTAS describes tablespace quotas for all

users.user_ts_quotas :USER_TS_QUOTAS describes tablespace quotas for the current user. This view does not display the USERNAME column.

max_bytes 字段
-1代表没有限制,其它数值就表示配额大小。

四、注意:

1.如果用户已经在某个表空间上创建了一些对象,但随后DBA回收了该用户在该表空间上的配额,那么oracle如何处理它们呢?所创建的对象完好无损可以继续使用,但已经无法再要求新的磁盘空间了,就像法律和政策不能回溯一样。

2.当在创建表空间对象的时候,出现“超出表空间的空间限量”错误提示的处理思路。这种情况一般是由很多种情况所造成的。笔者在遇到这种问题的时候,一般的处理思路是,先查看该用户的磁盘配额,看其是否满足空间上的需求。若该用户没有磁盘配额管理的话,或者磁盘配额大小符合既定需求的话,则建议查看表空间的大小,看是否是因为表空间不足所造成的。若前两步还是不能够解决问题的,则看看表空间的管理方式。若是数据字典管理模式的话,则把他改为本地管理模式,一般就可以解决问题了。

3.若数据库中存放着不同办事处或者不同分公司的数据时,笔者建议对Oracle数据库进行磁盘限额。这可以有效的防止因为硬盘空间的不足导致整个数据库的崩溃。而若对用户进行磁盘配额管理的话,那最多只是某个办事处(某个用户)数据库操作出现故障而已。这也是提高Oracle数据库可用性的一个有效手段。



郑重声明:资讯 【改变用户在表空间上的配额】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——