您好,登錄后才能下訂單哦!
一、解決問題:
解決表空間很大,總顯示空間不足的問題
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.
免責(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)容。