在 Ubuntu + Oracle 数据库 环境中出现“响应慢”,通常不是单一原因,而是多个层面叠加。下面按常见原因 → 排查方法 → 解决建议给你一个系统性的思路。
Oracle 非常吃内存,一旦用到 Swap,响应会急剧下降。
排查
free -h
swapon --show
vmstat 1
看 si/so 是否持续不为 0。
解决
top
htop
mpstat 1
Oracle 对 IO 极其敏感。
排查
iostat -x 1
关注:
%util 接近 100%await 非常高常见原因
解决
filesystemio_options=setall常见错误:
查看
SHOW PARAMETER sga_target;
SHOW PARAMETER pga_aggregate_target;
建议
导致 CBO 选错执行计划。
SELECT table_name, last_analyzed FROM user_tables;
解决
EXEC DBMS_STATS.GATHER_SCHEMA_STATS('USERNAME');
SELECT * FROM v$session_longops;
SELECT sql_id, elapsed_time FROM v$sql ORDER BY elapsed_time DESC;
解决
SELECT * FROM v$lock WHERE block=1;
SELECT sid, event, seconds_in_wait FROM v$session_wait;
常见事件:
enq: TX - row lock contentionlatch: cache buffers chains排查
ping db_host
nslookup db_host
解决
listener.ora 中使用 IPOracle 官方要求修改:
shmmaxshmmnisemfile-maxUbuntu 默认通常不达标。
free -h 是否使用 swapiostat IO 是否瓶颈如果你愿意,可以告诉我:
我可以直接给你针对性调优命令。