SELECT TABLESPACE_NAME, TABLESPACE_TYPE, -- 类型:SWAP/REGULAR/TEMP等 STATUS, BYTES/1024/1024 AS SIZE_MB, -- 表空间大小(MB) AUTOEXTENSIBLE, CREATE_TIME FROM SYS.DBA_TABLESPACES WHERE TABLESPACE_TYPE = 'SWAP';-- 查看SWAP表空间对应的数据文件SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS FILE_SIZE_MB, MAXBYTES/1024/1024 AS MAX_SIZE_MB FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME LIKE '%SWAP%';
2. 排查核心成因 (1)检查内存使用情况
-- 查看数据库内存使用(SGA/PGA)
SELECT NAME, VALUE/1024/1024 AS VALUE_MB, DESCRIPTION FROM SYS.V$PARAMETER WHERE NAME IN ('sga_max_size', 'pga_aggregate_limit', 'memory_max_target');-- 查看内存溢出/交换日志SELECT LOG_TIME, MESSAGE_TEXT FROM SYS.V$DIAG_ALERT_EXT WHERE MESSAGE_TEXT LIKE '%SWAP%' OR MESSAGE_TEXT LIKE '%memory%full%';
SELECT SQL_TEXT, ELAPSED_TIME/1000000 AS ELAPSED_SEC, DISK_READS, SORTS FROM SYS.V$SQL WHERE ELAPSED_TIME > 10000000 -- 执行超10秒的SQLORDER BY ELAPSED_TIME DESC;
CONNECT / AS SYSDBA;-- 收缩SWAP表空间(示例:收缩到10GB)ALTER TABLESPACE SWAP01 RESIZE 10240M;-- 若不需要额外的SWAP表空间,删除(需先确认无依赖)DROP TABLESPACE SWAP02 INCLUDING CONTENTS AND DATAFILES;
(2)长期优化:调整配置
-- 限制SWAP表空间自动创建
ALTER SYSTEM SET SWAP_TABLESPACE_AUTO_CREATE = OFF SCOPE=SPFILE;-- 调整内存参数(根据服务器内存,示例:SGA设为32G,PGA设为16G)ALTER SYSTEM SET SGA_MAX_SIZE = 32768M SCOPE=SPFILE;ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 16384M SCOPE=SPFILE;-- 重启数据库使配置生效(需业务低峰期操作)SHUTDOWN IMMEDIATE;STARTUP;
(3)版本问题:升级补丁
如果确认是版本 BUG 导致,联系华为技术支持获取对应补丁,升级崖山 DB 到稳定版本。