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

2024-03-06 17:44

本文主要是介绍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_SESSION2  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

这篇关于ORACLE RAC反应卡顿时enq: SV - contention和latch: row cache objects的分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/780843

相关文章

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指