1. 程式人生 > >ORA-01536: 超出表空間 'tablespace_name' 的空間限額

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;