表空间与存储
文件路径、盘符一律用占位:/u01/oradata/appdb/。不要把真实挂载点写进笔记仓库。
谁快满了
SELECT
tablespace_name,
round(used_percent, 1) AS used_pct
FROM dba_tablespace_usage_metrics
ORDER BY used_percent DESC;
数据文件:
SELECT tablespace_name, file_name, autoextensible,
round(bytes/1024/1024) AS mb
FROM dba_data_files
ORDER BY tablespace_name;
TEMP
临时表空间被排序、哈希、索引创建打满时,会话会报无法分配临时段。
SELECT tablespace_name, round(used_blocks*8/1024) AS used_mb
FROM v$temp_space_header;
SELECT username, sql_id, extents, blocks
FROM v$tempseg_usage;
处理顺序:先找大 SQL,再考虑加临时文件。不要一上来就扩到「很大就行」。
UNDO
长查询或大事务会把 UNDO 吃满,表现为快照过旧或无法扩展。
SELECT tablespace_name, status, round(bytes/1024/1024) AS mb
FROM dba_undo_extents;
SHOW PARAMETER undo_retention;
UNDO_RETENTION 只是目标,空间不够时实例还是会复用过期段。
注意
AUTOEXTEND 不是无限。文件系统满了,数据文件也伸不出去。ASM 和文件系统的查看方式不同,先确认存储层。
参考:Tablespaces