OSCAR数据库上锁问题如何排查

关键字

oscar lock

问题描述

oscar 数据库上锁问题如何排查

解决问题思路

准备数据
create table lock_test(name varchar(10),age varchar(10));

insert into lock_test values('ff','10');
insert into lock_test values('yy','20');
insert into lock_test values('ll','30');


session1:
begin;
update lock_test set age = 'session1' where name = 'ff';

session2:
begin;
update lock_test set age = 'session2' where name = 'ff';

session2 因为更新同一行数据肯定 pending



-- 查询阻塞PID及SQL
SELECT a.SID,a.STATUS,a.BLOCKING_SESSION,a.EVENT,a.CURRENT_SQL,a.PREV_SQL ,b.CURRENT_SQL AS BLOCK_CURRENT_SQL, b.PREV_SQL AS BLOCK_PREV_SQL
FROM V$SESSION a JOIN V$SESSION b ON a.BLOCKING_SESSION = b.sid  WHERE a.BLOCKING_SESSION IS NOT NULL ;

|SID|STATUS|BLOCKING_SESSION|EVENT      |CURRENT_SQL                                            |PREV_SQL|BLOCK_CURRENT_SQL|BLOCK_PREV_SQL                                         |
|---|------|----------------|-----------|-------------------------------------------------------|--------|-----------------|-------------------------------------------------------|
|9  |ACTIVE|10              |RowLockWait|update lock_test set age = 'session2' where name = 'ff'|begin   |                 |update lock_test set age = 'session1' where name = 'ff'|



这里可以明显看到是 10 阻塞了 9


kill掉指定的SQL语句:
KILL SESSION 10 IMMEDIATE;



模拟二
session1:
begin;
update lock_test set age = 'session1' where name = 'ff';

session2:
alter table lock_test add column name1 varchar(100);


依然可以使用如上的方式查找及kill

问题总结

oscar数据库的锁排查方法

相关推荐
NaZiMeKiY5 小时前
SQLServer数据分页
数据库·sql·sqlserver
码爸6 小时前
java 执行es中的sql
java·sql·elasticsearch
中文很快乐6 小时前
springboot结合p6spy进行SQL监控
java·数据库·sql
666786667 小时前
Mysql高级篇(中)—— SQL优化
linux·运维·服务器·数据库·sql·mysql
知识分享小能手7 小时前
mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(19)
大数据·开发语言·数据库·sql·学习·mysql·数据开发
冰镇毛衣7 小时前
2.4 数据库表字段约束
数据库·sql·mysql
冰镇毛衣8 小时前
数据库简介
开发语言·数据库·sql·oracle
失心疯_20239 小时前
006.MySQL_查询数据
数据库·sql·mysql·关系型数据库·sqlyog·mysql教程·查询语句
环能jvav大师9 小时前
基于R语言的统计分析基础:使用SQL语句操作数据集
开发语言·数据库·sql·数据分析·r语言·sqlite
hayhead10 小时前
高频 SQL 50 题(基础版)| 626. 换座位
sql·力扣