ORACLE表空间限额是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE表空间限额是啥?相关的知识,希望对你有一定的参考价值。

用来限制用户对表空间的使用。用户要能够在表空间中建立对象,至少需要以下三个条件之一:
拥有resource角色
拥有该表空间的unlimited限额
拥有该表空间的具体限额值
例如某个用户的users表空间限额为30M,当用户试图存储数据到表空间时,如果会导致空间使用超过30M,就会被拒绝。追问

有些时候要修改表空间中的数据文件时,会提示“无效的表空间”,这是什么原因呢?

追答

表空间的名字是否写错了,检查一下
或者看看表空间的状态,是否offline或者read only了

参考技术A 表空间的大小由数据文件来决定
数据文件可以有多个
每个都可以设置大小的上限也可以无限制
不知道你问的是不是这个

ORA-01536: 超出表空间 'tablespace_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.
    查看用户的表空间的限额
        select * from dba_ts_quotas;

       select * from user_ts_quotas;(查看当前没dba权限的用户的表空间限额,要用要查看的用户登录,也就是看自己的权限)
        max_bytes字段就是了
        -1是代表没有限制,其它值多少就是多少了.
用户表空间限额的创建与更改:
     1.创建用户时,指定限额
     eg:
        CREATE USER SKATE IDENTIFIED BY SKATE_PWD
        DEFAULT TABLESPACE SKATE_TS
        TEMPORARY TABLESPACE temp
        QUOTA 3M ON SKATE_TS
        PASSWORD EXPIRE;
    2.更改用户的表空间限额:
        A:不对用户做表空间限额控制:
                  GRANT UNLIMITED TABLESPACE TO skate;
                 这种方式是全局性的.
            或者
                  alter user USER_NAME quota unlimited on TABLESPACE_NAME;(用此方法改变表空间限额问题)
               这种方式是针对特定的表空间的.
    3.可以分配自然也可以回收了:
            revoke unlimited tablespace from skate;
        或者
            alter user skate quota 0 on SKATE_TS;

以上是关于ORACLE表空间限额是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何把dmp导入到指定用户指定的表空间 [转]

oracle的表空间是啥

oracle中用户,表,表空间,三者的关系是啥?

oracle数据库,表空间和表之间是啥关系

ora-01536:超出表空间“users"的空间限额

oracle数据库,表空间和表之间是啥关系