一、新增 Datafile / Tempfile
ALTER TABLESPACE myts01
ADD DATAFILE 'D:\oracle\oradata\orcl\myts03.dbf' SIZE 10M;
ALTER TABLESPACE temp
ADD TEMPFILE 'D:\oracle\oradata\orcl\mytemp.dbf' SIZE 10M;
二、建立表空間時指定自動擴展
CREATE SMALLFILE TABLESPACE myts02
DATAFILE 'D:\oracle\oradata\orcl\myts02_1.dbf' SIZE 10M
AUTOEXTEND ON NEXT 5M MAXSIZE 50M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
三、事後啟用/關閉自動擴展
ALTER DATABASE
DATAFILE 'D:\oracle\oradata\orcl\myts01_3.dbf'
AUTOEXTEND ON NEXT 2M MAXSIZE 20M;
ALTER DATABASE
DATAFILE 'D:\oracle\oradata\orcl\myts01_3.dbf'
AUTOEXTEND OFF;
四、手動調整 Datafile 大小 (Resize)
ALTER DATABASE
DATAFILE 'D:\oracle\oradata\orcl\myts01_3.dbf'
RESIZE 100M;
ALTER DATABASE
DATAFILE 'D:\oracle\oradata\orcl\myts01_3.dbf'
RESIZE 50M;
五、查詢 Datafile 使用狀況
SELECT file_name, tablespace_name,
bytes/1024/1024 AS size_mb,
maxbytes/1024/1024 AS max_mb,
autoextensible,
increment_by * (SELECT value FROM v$parameter WHERE name='db_block_size')/1024/1024 AS next_mb
FROM dba_data_files
ORDER BY tablespace_name, file_id;
六、最佳實踐建議
- 預設啟用 AUTOEXTEND,設定合理
MAXSIZE 避免撐爆磁碟。
- NEXT 增量:建議 10M~100M,避免頻繁擴展產生效能抖動。
- Bigfile Tablespace (10g+):單一超大 Datafile (最多 128TB),簡化管理,配合 ASM 更佳。
- 監控告警:設定
DBA_TABLESPACE_USAGE_METRICS 閾值告警 (如 85%),而非等待 ORA-01653/ORA-01654。
- 縮小前必須:
ALTER TABLESPACE ... COALESCE (字典管理) 或確認 LMT 高水位線已下移,否則 RESIZE 失敗。