表空間是 Oracle 資料庫的邏輯儲存單位,位於資料庫與物理資料檔之間。每個資料庫至少包含一個 SYSTEM 表空間(存放資料字典),一個表空間只能屬於一個資料庫,但可由一個或多個資料檔組成。
ONLINE/OFFLINE/READ ONLY/READ WRITE,支援熱備份、維護窗口隔離。AUTOEXTEND 或手動 ADD DATAFILE / RESIZE 動態調整大小;表空間總大小 = 所有資料檔大小之和。ALTER TABLESPACE users READ ONLY;
ALTER TABLESPACE idx_data ONLINE;
SELECT tablespace_name, status FROM dba_tablespaces;
注意:SYSTEM、UNDO、TEMP不可設為OFFLINE。
SELECT tablespace_name, bytes/1024/1024 AS size_mb, file_name
FROM dba_data_files
ORDER BY tablespace_name;
SELECT username, default_tablespace FROM dba_users;
SELECT table_name, tablespace_name FROM user_tables;
ALTER USER app_user DEFAULT TABLESPACE app_data;
ALTER TABLE big_table MOVE TABLESPACE archive_ts;
搭配 ONLINE 關鍵字 (12c+) 可實現零停機遷移。
APP_DATA、APP_IDX、ARCHIVE),便於配額控制與備份策略差異化。EXTENT MANAGEMENT LOCAL AUTOALLOCATE 並配合 SEGMENT SPACE MANAGEMENT AUTO,減少碎片與管理負擔。DBA_FREE_SPACE 與 DBA_DATA_FILES,設定臨界值告警(如 80%)。