Oracle 使用者對錶空間配額quota說明
一、解決問題:
解決表空間很大,總顯示空間不足的問題
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中的資料量達到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 節裡提到,預設情況下,使用者對所有表空間都是沒有配額的,即不受空間的限制。 檢視幾個使用者的建立指令碼來驗證一下:
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個指令碼來看,預設情況下,都會對使用者賦 unlimited tablespace 的許可權。這是是在建立的時候指定的,當我們的使用者建立好之後,我們也可以修改使用者的配額。
有關使用者的配額的操作說明
1. 建立使用者時,指定限額
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.
在檢視配額,已經沒有了相關資訊:
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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2137072/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的表空間quota詳解Oracle
- oracle的表空間quota詳講Oracle
- Linux磁碟配額Quota配置Linux
- Linux磁碟配額(Quota)(轉)Linux
- 【TABLESPACE】Oracle 表空間結構說明Oracle
- Oracle 表空間 建立引數 說明Oracle
- 資料庫使用者表空間配額管理資料庫
- Linux下的磁碟配額quotaLinux
- unlimited tablespace許可權和quota 配額MIT
- Oracle資料泵建立使用者避坑(表空間配額、許可權)Oracle
- oracle 檢視錶空間Oracle
- 安裝及使用quota管理磁碟配額(轉)
- Oracle檢視錶空間大小Oracle
- 表空間配額和UNLIMITED TABLESPACE許可權MIT
- Oracle 11gR2 注意revoke dba 會一併回收通過”quota“分配的表空間限額Oracle
- oracle 檢視錶空間使用情況Oracle
- ORACLE如何檢視錶空間路徑及使用者許可權Oracle
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-使使用者口令過期Oracle
- 淺說Oracle PGA空間管理Oracle
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-關於口令策略Oracle
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-修改預設口令策略Oracle
- 2 Day DBA-管理Oracle例項-給使用者帳戶指定表空間配額-鎖定和解鎖使用者帳戶Oracle
- Oracle檢視錶空間大小和使用率Oracle
- oracle 檢視錶所佔用的空間大小Oracle
- Oracle檢視使用者預設表空間、臨時表空間、系統許可權、物件許可權、角色許可權舉例說明Oracle物件
- Oracle profile 使用者資源限制 說明Oracle
- Oracle檢視錶空間使用率SQL指令碼OracleSQL指令碼
- 使用diskpart命令進行擴充硬碟空間操作說明硬碟
- oracle 建立表空間和使用者Oracle
- Oracle新建使用者、表空間、表Oracle
- Oracle中新建表空間、使用者Oracle
- Oracle建立表空間和使用者Oracle
- oracle10g 預設使用者說明Oracle
- oracle 10g 命令檢視錶空間大小情況Oracle 10g
- oracle 資料庫裡檢視錶空間使用狀況;Oracle資料庫
- oracle 11gR2,取消使用者unlimited tablespace 許可權,那麼表空間上的quota也會相應取消OracleMIT
- Oracle Latch 說明Oracle
- Oracle Namespace 說明Oraclenamespace