CREATE TABLE)與目標表空間配額,才能建立物件。收回配額即可凍結擴展能力。CREATE USER app_user IDENTIFIED BY pwd
DEFAULT TABLESPACE app_data
QUOTA 500M ON app_data;
-- 給予無限制(慎用)
ALTER USER app_user QUOTA UNLIMITED ON app_data;
-- 給予具體額度
ALTER USER app_user QUOTA 1G ON app_data;
RESOURCE 角色(隱含 UNLIMITED TABLESPACE)。UNLIMITED TABLESPACE 系統權限。建議:生產環境拒絕無限配額,改用具體額度 + 監控告警。
錯誤訊息:ORA-01536: space quota exceeded for tablespace 'XXX'。
排查:SELECT * FROM dba_ts_quotas WHERE username='APP_USER'; 確認 MAX_BYTES 是否為 -1(無限)或足夠數值。
原則:擴充時沿用原表空間的區域管理模式。
ALTER TABLESPACE test1
ADD DATAFILE '/u02/oradata/test1_02.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 5G;
新增檔案後,同步增加用戶配額:
ALTER USER app_user QUOTA 1G ON test1;
圖形工具(EM/Cloud Control)適合總覽,但:
結論:精通 SQL*Plus / RMAN / Shell / Python 自動化腳本,是資深 DBA 的基本修養。
DBA_FREE_SPACE、DBA_SEGMENTS 找出大型無用物件,配合 PURGE、SHRINK SPACE 釋放空間。表空間配額看似基礎,實則是資源治理的關鍵槓桿。精準分配、主動擴充、自動化監控,讓儲存資源在可控範圍內最大化產出價值。