一、解決問題:
為大箐山等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及大箐山網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、成都網(wǎng)站制作、大箐山網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
解決表空間很大,總顯示空間不足的問題
ORA-01536:space quota exceeded
for table space 'AAA '
二、三個解決辦法:
(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,當用戶a在tablespace
a中的數(shù)據(jù)量達到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來獲取相關信息
二、Quota 說明
配額大小指的是用戶指定使用表空間的的大小。在1.1 節(jié)里提到,默認情況下,用戶對所有表空間都是沒有配額的,即不受空間的限制。 查看幾個用戶的創(chuàng)建腳本來驗證一下:
CREATE USER SYSTEM
IDENTIFIED BY
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
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個腳本來看,默認情況下,都會對用戶賦 unlimited tablespace 的權限。這是是在創(chuàng)建的時候指定的,當我們的用戶創(chuàng)建好之后,我們也可以修改用戶的配額。
有關用戶的配額的操作說明
1. 創(chuàng)建用戶時,指定限額
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.
這種方式是全局性的. 即修改用戶多所有表空間的配額。
如果我們想改某個具體的,即針對用戶的某個特定的表空間,可以使用如下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
這時候max_bytes 為-1,即不受限制。
3. 回收用戶對表空間的配額:
同樣兩種方式,
全局:
SQL> revoke unlimited tablespace from anqing;
Revoke succeeded.
在查看配額,已經(jīng)沒有了相關信息:
SQL> select tablespace_name,username,max_bytes from DBA_TS_QUOTAS where username='ANQING';< /FONT>
no rows selected
針對某個特定的表空間:
SQL> alter user anqing quota 0 on users;
User altered.