溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle 用戶對表空間配額quota說明

發(fā)布時(shí)間:2020-08-08 06:39:18 來源:ITPUB博客 閱讀:232 作者:達(dá)芬奇的夢 欄目:關(guān)系型數(shù)據(jù)庫

一、解決問題:

解決表空間很大,總顯示空間不足的問題
ORA-01536:space   quota   exceeded   for   table   space   'AAA '
二、三個(gè)解決辦法:
        (1)   alter   user   USERNAME   quota   100M   on   TABLESPACENAME;
        (2)   alter   user   USERNAME   quota   unlimited   on   TABLESPACENAME;
        (3)   grant   unlimited   tablespace   to   USERNAME;
quota是為了限制用戶對表空間的使用
比如你限制用戶a在tablespace   a中的quota為10m,當(dāng)用戶a在tablespace   a中的數(shù)據(jù)量達(dá)到10m后,無論你的tablespace   a中有多少空間,a都無法再使用tablespace   a   了。
所以你需要
alter   user   a   quota   1000M   on   a;
alter   user   a   quota   unlimited   on   a;
grant   unlimited   tablespace   to   a
你可以查詢dba_ts_quotas來獲取相關(guān)信息

二、Quota 說明

            配額大小指的是用戶指定使用表空間的的大小。在1.1 節(jié)里提到,默認(rèn)情況下,用戶對所有表空間都是沒有配額的,即不受空間的限制。 查看幾個(gè)用戶的創(chuàng)建腳本來驗(yàn)證一下:

CREATE USER SYSTEM

  IDENTIFIED BY <password>

  DEFAULT TABLESPACE SYSTEM

  TEMPORARY TABLESPACE TEMP

  PROFILE DEFAULT

  ACCOUNT UNLOCK;

  -- 2 Roles for SYSTEM

  GRANT AQ_ADMINISTRATOR_ROLE TO SYSTEM WITH ADMIN OPTION;

  GRANT DBA TO SYSTEM WITH ADMIN OPTION;

  ALTER USER SYSTEM DEFAULT ROLE ALL;

  -- 5 System Privileges for SYSTEM

  GRANT GLOBAL QUERY REWRITE TO SYSTEM;

  GRANT CREATE MATERIALIZED VIEW TO SYSTEM;

  GRANT CREATE TABLE TO SYSTEM;

  GRANT UNLIMITED TABLESPACE TO SYSTEM WITH ADMIN OPTION;

  GRANT SELECT ANY TABLE TO SYSTEM;

CREATE USER DAVE

  IDENTIFIED BY <password>

  DEFAULT TABLESPACE USERS

  TEMPORARY TABLESPACE TEMP

  PROFILE DEFAULT

  ACCOUNT UNLOCK;

  -- 2 Roles for DAVE

  GRANT CONNECT TO DAVE;

  GRANT RESOURCE TO DAVE;

  ALTER USER DAVE DEFAULT ROLE ALL;

  -- 1 System Privilege for DAVE

  GRANT UNLIMITED TABLESPACE TO DAVE;

            從這2個(gè)腳本來看,默認(rèn)情況下,都會(huì)對用戶賦 unlimited tablespace 的權(quán)限。這是是在創(chuàng)建的時(shí)候指定的,當(dāng)我們的用戶創(chuàng)建好之后,我們也可以修改用戶的配額。

有關(guān)用戶的配額的操作說明

1. 創(chuàng)建用戶時(shí),指定限額

SQL> conn / as sysdba;

Connected.

SQL> create user anqing identified by anqing default tablespace users temporary tablespace temp quota 10M on users;

User created.

查詢用戶配額的信息:

SQL> select tablespace_name,username,max_bytes from  DBA_TS_QUOTAS where username='ANQING';< /FONT>

TABLESPACE_NAME      USERNAME    MAX_BYTES

------------------------------ ---------- ----------

USERS                    ANQING       10485760

2.更改用戶的表空間限額:

不對用戶做表空間限額控制:

SQL> grant unlimited tablespace to anqing;

Grant succeeded.

這種方式是全局性的. 即修改用戶多所有表空間的配額。

如果我們想改某個(gè)具體的,即針對用戶的某個(gè)特定的表空間,可以使用如下SQL:

SQL> alter user anqing quota unlimited on users;

User altered.

查看配額:

SQL> select tablespace_name,username,max_bytes from  DBA_TS_QUOTAS where username='ANQING';< /FONT>

TABLESPACE_NAME                USERNAME    MAX_BYTES

------------------------------ ---------- ----------

USERS                          ANQING             -1

這時(shí)候max_bytes 為-1,即不受限制。

3. 回收用戶對表空間的配額:

同樣兩種方式,

全局:

SQL> revoke unlimited tablespace from anqing;

Revoke succeeded.

在查看配額,已經(jīng)沒有了相關(guān)信息:

SQL> select tablespace_name,username,max_bytes from  DBA_TS_QUOTAS where username='ANQING';< /FONT>

no rows selected

針對某個(gè)特定的表空間:

SQL> alter user anqing quota 0 on users;

User altered.

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI