08-ORA-00060死锁定位
ORA-00060死锁——两个会话互相等对方那行社保系统里两个人同时操作同一个参保人的数据是最常见场景。A在修改参保信息B在改缴费记录——两个事务交叉等同一行30秒后Oracle自动杀一个。这篇文章告诉你怎么查到是谁杀了谁、为什么。文章目录ORA-00060死锁——两个会话互相等对方那行一、死锁长什么样二、社保系统的死锁场景三、死锁后怎么查四、预防死锁的编码规范五、unbreakable 死锁——APPLICATION级死锁一、死锁长什么样ORA-00060: deadlock detected while waiting for resourceOracle 自动检测到两个会话互相等待对方持有的锁。解决方式是随机杀掉一个让另一个继续。被杀的那个收到ORA-00060事务回滚。在alert.log里能看到完整的死锁图Deadlock graph: ---------Blocker(s)-------- ---------Waiter(s)--------- Resource Name process session holds waits process session holds waits TX-000b0017-0000041e 129 201 X 96 155 X TX-00090017-000003fb 96 155 X 129 201 X翻译会话201持有TX锁A在等B会话155持有TX锁B在等A。死锁。二、社保系统的死锁场景场景一两个人改同一个人操作员AUPDATE PERSON_INFO SET salary8000 WHERE id_card460027660601003——锁住这一行操作员BUPDATE PAYMENT_HISTORY SET gzze018000 WHERE id_card460027660601003——想锁同一个人等A释放操作员A接着UPDATE PAYMENT_HISTORY SET ylbf01... WHERE id_card460027660601003——想锁B已经锁了的行等B释放死锁 → Oracle杀B根因两个操作员同时操作同一个人的不同表事务太长。场景二外键没有索引-- 删单位时Oracle要检查PERSON_INFO表里有没有这个单位的员工DELETEFROMunit_infoWHEREunit_idA2209;-- 没有索引 → 全表扫描PERSON_INFO → 锁住所有扫描过的行Oracle 在执行外键约束检查时会对子表的相关行加共享锁。如果子表大且外键列没有索引——Oracle会锁住整张表。此时另一个人来更新PERSON_INFO的任意一行——死锁。修法CREATEINDEXidx_jbxx_dwbhONPERSON_INFO(unit_id);三、死锁后怎么查-- 查看alert.log中的最近死锁有完整trace-- 路径$ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log-- 实时锁等待检查SELECTddl.holding_session,ddl.holding_lock,ddl.waiting_sessionFROMdba_locks ddlWHEREddl.blocking_othersBlocking;-- 查出锁的SQLSELECTs.sid,s.serial#, s.username, s.status, q.sql_textFROMv$sessions,v$sqlqWHEREs.sql_idq.sql_idANDs.sidIN(阻塞的SID列表);杀掉阻塞会话如果业务允许ALTERSYSTEMKILLSESSIONsid,serial#IMMEDIATE;四、预防死锁的编码规范1. 统一加锁顺序// 所有修改单个人数据的接口按这个顺序加锁// 1. PERSON_INFO 2. PAYMENT_HISTORY 3. PERSON_ACCOUNT如果所有人都先锁A再锁B——永远不会交叉。死锁的根本原因是加锁顺序不一致。2. 缩短事务// 坏打开连接→查三张表→算金额→写三张表→COMMIT可能5秒// 好查三张表→算金额→开事务→写三张表→COMMIT事务内1秒3. 外键列必须建索引-- 查哪些外键列没有索引SELECTTABLE_NAME,CONSTRAINT_NAME,COLUMN_NAMEFROMDBA_CONS_COLUMNSWHERECONSTRAINT_NAMEIN(SELECTCONSTRAINT_NAMEFROMDBA_CONSTRAINTSWHERECONSTRAINT_TYPERANDOWNER)ANDNOTEXISTS(SELECT1FROMDBA_IND_COLUMNSWHERETABLE_OWNERANDCOLUMN_NAMEDBA_CONS_COLUMNS.COLUMN_NAME);五、unbreakable 死锁——APPLICATION级死锁还有一种死锁不是Oracle层面的是业务设计造成的。社保系统有一个工作流互斥——一个人不能同时跑两个同类型业务。实现方式是启动业务时在互斥表插入一条记录INSERT INTO hcmutex ...完成时删除。两个操作员同时点发起参保——两条INSERT同时进互斥表——后一条等前一条提交——前一条提交后后一条插入成功——但互斥检查过了——一个人同时跑了两个同类型业务。这不是锁的问题——是互斥检查在业务层的时机不对。修法用SELECT ... FOR UPDATE NOWAIT代替INSERT做互斥。-- 启动业务前先锁住互斥行SELECT1FROMhcmutexWHEREywbmLC01ANDid_card...FORUPDATENOWAIT;-- 如果返回resource busy——该业务已在运行拒绝✅ 亮点死锁debug从alert.log的死锁图出发配合v$session定位SQL补上预防死锁的三条编码规范。扩展方向分布式锁Redis/ZK在Oracle之外的死锁场景、RAC环境下的跨节点死锁。

相关新闻

极地遥感数据处理:DMSP卫星亮度温度数据实战解析

极地遥感数据处理:DMSP卫星亮度温度数据实战解析

1. 项目概述:极地遥感数据处理的工程实践 这个项目涉及国防气象卫星计划(DMSP)搭载的SSM/I和SSMIS传感器采集的极地亮度温度数据,经过网格化处理后形成的近实时数据集(版本V002)。作为从事遥感数据处理八年…

2026/7/29 13:58:41 阅读更多 →
终极iOS设备复活指南:用Legacy iOS Kit解锁旧设备新生命

终极iOS设备复活指南:用Legacy iOS Kit解锁旧设备新生命

终极iOS设备复活指南:用Legacy iOS Kit解锁旧设备新生命 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …

2026/7/29 14:27:23 阅读更多 →
大语言模型提示词交互原型设计与工程实践

大语言模型提示词交互原型设计与工程实践

1. 大语言模型提示词交互原型的核心价值 去年参与某金融知识库项目时,我们团队花了整整三周时间反复调试提示词(Prompt)。最崩溃的是每次修改都要重新输入长达800字的系统提示模板,这种低效交互让我意识到:好的提示词设…

2026/7/29 14:27:07 阅读更多 →

最新新闻

直播下播后再切片来不及引流有什么 AI 解决办法?

直播下播后再切片来不及引流有什么 AI 解决办法?

一、发现问题很多直播带货团队存在一个普遍困扰:传统切片流程必须等待直播结束,下载完整回放之后才能开始剪辑处理。短视频引流具备时效性,直播间的福利话术、爆款讲解内容,如果间隔数小时才制作成短视频投放,流量热度…

2026/7/29 14:28:38 阅读更多 →
WorkshopDL:跨平台Steam创意工坊模组下载器的技术实现与应用指南

WorkshopDL:跨平台Steam创意工坊模组下载器的技术实现与应用指南

WorkshopDL:跨平台Steam创意工坊模组下载器的技术实现与应用指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 对于拥有GOG、Epic Games Store等非Steam平台游戏的…

2026/7/29 14:28:38 阅读更多 →
MatAnyone终极指南:3分钟学会免费AI视频抠像,轻松替换任何背景

MatAnyone终极指南:3分钟学会免费AI视频抠像,轻松替换任何背景

MatAnyone终极指南:3分钟学会免费AI视频抠像,轻松替换任何背景 【免费下载链接】MatAnyone [CVPR 2025] MatAnyone: Stable Video Matting with Consistent Memory Propagation 项目地址: https://gitcode.com/gh_mirrors/ma/MatAnyone 你是否曾梦…

2026/7/29 14:28:38 阅读更多 →
BilibiliDown:5步搞定B站视频下载的终极免费神器

BilibiliDown:5步搞定B站视频下载的终极免费神器

BilibiliDown:5步搞定B站视频下载的终极免费神器 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bil…

2026/7/29 14:28:38 阅读更多 →
如何用3分钟将电子文字变成逼真手写体?文字转手写工具完整指南

如何用3分钟将电子文字变成逼真手写体?文字转手写工具完整指南

如何用3分钟将电子文字变成逼真手写体?文字转手写工具完整指南 【免费下载链接】text-to-handwriting So your teacher asked you to upload written assignments? Hate writing assigments? This tool will help you convert your text to handwriting xD 项目…

2026/7/29 14:28:38 阅读更多 →
基于行空板M10与Home Assistant打造全屋智能家居控制终端

基于行空板M10与Home Assistant打造全屋智能家居控制终端

1. 项目缘起与核心价值 前阵子折腾家里的智能设备,灯是小米的,空调是格力的,窗帘电机又是另一个牌子,手机里装了四五个App,想开个灯还得先想想用哪个软件,实在麻烦。后来看到行空板M10这块开发板&#xff0…

2026/7/29 14:27:37 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻