ORACLE RAC反应卡顿时enq: SV - contention和latch: row cache objects的分析

某客户数据库系统使用ORACLE RAC 11G版本,两个节点。在上午8点钟之后,业务开始大量进行时,出现严重的卡顿问题;在工程师分析后,发现当时出现了很多异常等待数据,如典型的enq: SV - contention 、enq: TX - row lock contention、enq: SQ - contention、cursor: pin S wait on X、latch: row cache objects、enq: US - contention;如何穿透这些异常事件,快速找到数据库异常的根本原因,快速进行解决呢?

1、快速查看主机性能、负载和磁盘空间;然后查看实时的SESSION状态以及收集AWR进行分析

实时的SESSION状态:

复制代码
SQL> select program,sql_id,event,FINAL_BLOCKING_INSTANCE,FINAL_BLOCKING_SESSION
  2  from gv$session where status='ACTIVE' and BLOCKING_SESSION is not null ;

PROGRAM                   SQL_ID          EVENT                          FINAL_BLOCKING_INSTANCE FINAL_BLOCKING_SESSION
------------------------- --------------- ------------------------------ ----------------------- ----------------------
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
w3wp.exe                  3zk1may0smdy8   enq: SV -  contention                                2                   4347
ghsf.exe                  0qk8kh49vs5gq   enq: TX - row lock contention                        1                  12709
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347
w3wp.exe                  bn46318t1a0h4   enq: SV -  contention                                2                   4347

查看AWR中的等待事件及时间

节点1:

节点2:

2、从基本信息来看,出现了很多异常等待数据,如典型的enq: SV - contention 、enq: TX - row lock contention、enq: SQ - contention、cursor: pin S wait on X、latch: row cache objects、enq: US - contention;实时的会话最多的是enq: SV - contention;查询AWR中的TOP SQL,也是执行获取序列值的SQL。序列相关的SQL执行速度和时间排在数据库的最前列,主要为:Select SEQ_XXXX.NextVal From Dual;分析:序列对应的配置为(主要指标,CACHE=20,ORDER=Y),RAC环境下默认的20缓存及ORDER=Y属性会急剧序列的性能问题:

基于此分析,紧急将序列CACHE值改为200后,处于卡顿的进程在逐渐下降,但是前端业务还未完全恢复;

3、继续从AWR中分析,节点2的latch: row cache objects等待进入视野;参考MOS文档上RAC database hangs with enq: SQ - contention & latch: row cache objects & enq: US - contention (Doc ID 1484604.1)、Resolving Issues Where 'Row Cache Lock' Waits are Occurring (Doc ID 1476670.1)等文档,查看对应的data dictionary cache问题,可以直观发现问题点:

4、看起来问题比较清楚,大量回滚端请求,查看对应UNDO表空间使用率,可以发现UNDO表空间使用率高,查看UNDO段状态,大量在UNEEXPIRED状态;因此快速对UNDO表空间进行扩容,问题解决。

Tablespace_Name Size(GB) Status Used Extents US_SIZE(GB) Used R


UNDOTBS1 253.00 ACTIVE 421 .39 .15

UNDOTBS1 253.00 EXPIRED 112364 87.16 34.48

UNDOTBS1 253.00 UNEXPIRED 145372 106.47 42.12

UNDOTBS2 188.00 ACTIVE 473 .42 .22

UNDOTBS2 188.00 EXPIRED 50811 25.62 13.67

UNDOTBS2 188.00 UNEXPIRED 172751 107.72 57.45

相关推荐
灵犀学长16 分钟前
解锁Spring Boot多项目共享Redis:优雅Key命名结构指南
数据库·redis
轩情吖18 分钟前
Qt的信号与槽(二)
数据库·c++·qt·信号·connect·信号槽·
ZeroNews内网穿透24 分钟前
服装零售企业跨区域运营难题破解方案
java·大数据·运维·服务器·数据库·tcp/ip·零售
可观测性用观测云28 分钟前
达梦数据库监控观测最佳实践
数据库
时序数据说41 分钟前
IoTDB:专为物联网场景设计的高性能时序数据库
大数据·数据库·物联网·开源·时序数据库·iotdb
码农小站2 小时前
ClickHouse 时间范围查询:精准筛选「本月数据」
数据库
paopaokaka_luck2 小时前
基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
java·数据库·vue.js·spring boot·后端·spring·小程序
小疯仔3 小时前
navicat导出数据库的表结构
数据库
TOSUN同星3 小时前
干货分享 | TSMaster DBC编辑器操作指南:功能详解+实战示例
数据库·oracle·编辑器·汽车·软件工程
蓝天42023 小时前
ORACLE 日常查询
oracle