数据库内存交换异常 故障报告

来源:这里教程网 时间:2026-03-03 18:57:54 作者:

1 【现象描述】 20xx年8月1日16:02:00,数据库出现卡顿现象。 20xx年8月2日09:10:00,数据库出现卡顿现象。 2 【故障影响】 已连接的业务出现卡顿,影响使用; 新的连接无法正常建立; 3 【故障处理】 20xx年8月1日,分别kill掉两个节点的全部会话,让业务重新建立连接,观察一段时间,应用恢复正常; ps -ef|grep -v grep |grep LOCAL=NO|awk '{print $2}'|xargs kill -9 20xx年8月2日,因服务器处于卡死状态,进行重启后,重新启动CRS集群后,业务恢复正常;/u01/app/19c/grid/bin/crsctl stop crs/u01/app/19c/grid/bin/crsctl start crs

4         【原因分析】

Ø   从AWR报告分析,数据库有很高的负载情况,正常范围应 <= 940;

 

异常:

描述:

如果DB Time远大于DB Time * CPU,说明系统比较繁忙;

如果DB Time远小于DB Time * CPU,说明系统比较空闲; 查看等待事件,发现数据库有严重的内存和CPU争用; 查看内存使用情况,发现free已经不足;

Ø   根据SWAP使用情况,可以定位到系统内存已有严重的换入换出的现象,系统Kswapd0进程严重消耗CPU;

5         【故障定位】

Ø   根据严重换页的情况,查看是否启用大页;(未启用)

Ø   根据官方文档[ Doc ID 361468.1 ] 指示:

HugePages is crucial for faster Oracle database performance on Linux if you have a large RAM and SGA. If your combined database SGAs is large (like more than 8GB, can even be important for smaller), you will need HugePages configured. Note that the size of the SGA matters.

(如果您有大的 RAM SGA ,那么 HugePages 对于 Linux 上更快的 Oracle 数据库性能至关重要。如果您的组合数据库 SGA 很大(比如超过 8GB ,甚至对较小的数据库也很重要),则需要配置 HugePages 。请注意, SGA 的大小很重要。)

 

所以,现网系统需要开启大页来避免对资源的争用,让数据库平稳的运行。

6        【整改措施】

Ø   根据现网的资源情况,设置对应的大页值;

 

步骤:修改参数 à 重启实例(滚动操作)

Node1 修改nr_hugepages vi /etc/sysctl.conf vm.nr_hugepages = xxxxxx   查看是否生效 sysctl –p cat /proc/meminfo | grep Huge   重启实例 shutdown immediate; startup;   Node2 修改nr_hugepages vi /etc/sysctl.conf vm.nr_hugepages = xxxxxx   查看是否生效 sysctl –p cat /proc/meminfo | grep Huge   重启实例 shutdown immediate; startup;   操作完成。

相关推荐