enq:TX-rowlockcontention故障处理一则
一个很简单的问题,之所以让我对这个问题进行总结,一是因为没我想象的简单,在处理的过程中遇到了一些磕磕碰碰,甚至绕了一些弯路,二是引发了我对故障处理时的一些思考。 6月19日,下午5点左右,数据库出现了大量的enq: TX - row lock contention等待事件,
一个很简单的问题,之所以让我对这个问题进行总结,一是因为没我想象的简单,在处理的过程中遇到了一些磕磕碰碰,甚至绕了一些弯路,二是引发了我对故障处理时的一些思考。6月19日,下午5点左右,数据库出现了大量的enq: TX - row lock contention等待事件,按照以往的经验,这类等待一般与业务逻辑有关,DBA能够做的事情,一般就是将锁等待着的连接信息,等待锁的SQL语句,甚至等待的具体数据行,还有就是锁持有者的连接信息,造成锁等待的SQL语句等一些基本信息提交给开发人员,修改业务逻辑。
注意 很多情况下,修改业务逻辑不是一时半会能够立即解决的事,有时候如果锁持有或者锁等待业务不是特别重要,可以与应用维护人员协商,先停掉这部分业务,让其它业务正常运行很多时候,数据库只有一个锁持有者,并且这个锁持有的连接也没有活动,可以与应用维护人员协商,尝试kill锁持有者,看看后续锁等待能否自动解决。这种情况一般是一个单独的连接出现僵死导致,kill掉持有者以后,问题自然就解决了另外一种情况就是,前天晚上上线后,平时运行好好的业务,也没出现锁等待,有一天出现了这类问题,而且kill掉锁持有者以后,问题无法得到解决(业务逻辑问题,kill掉以后,后续还会发生),这一般是前天晚上上线引起。 本来觉得数据库层提供信息很简单,结果与想象的有点区别,来看一下具体的过程 (1)查询锁信息,如下
SESS | LMODE | LMODE | REQUEST | TYPE | EVENT | SQL_TEXT |
Holder: 4266 | exclusive | 6 | 0 | TX | SQL*Net message from client | |
Waiter: 3136 | none | 0 | 4 | TX | enq: TX - row lock contention | insert into xxxxx(ID,xxx,xxxx,xxx,….) values(seq_xxx.nextval,:"SYS_B_0",:"SYS_B_1",:"SYS_B_2",:"SYS_B_3",:"SYS_B_4",:"SYS_B_5") |
Holder: 2276 | exclusive | 6 | 0 | TX | SQL*Net message from client | |
Waiter: 1716 | none | 0 | 4 | TX | enq: TX - row lock contention | insert into xxxxx(ID,xxx,xxxx,xxx,….) values(seq_xxx.nextval,:"SYS_B_0",:"SYS_B_1",:"SYS_B_2",:"SYS_B_3",:"SYS_B_4",:"SYS_B_5") |
Holder: 1288 | exclusive | 6 | 0 | TX | SQL*Net message from client | |
Waiter: 1565 | none | 0 | 4 | TX | enq: TX - row lock contention | insert into xxxxx(ID,xxx,xxxx,xxx,….) values(seq_xxx.nextval,:"SYS_B_0",:"SYS_B_1",:"SYS_B_2",:"SYS_B_3",:"SYS_B_4",:"SYS_B_5") |
Holder: 1000 | exclusive | 6 | 0 | TX | SQL*Net message from client | |
Waiter: 1147 | none | 0 | 4 | TX | enq: TX - row lock contention | insert into xxxxx(ID,xxx,xxxx,xxx,….) values(seq_xxx.nextval,:"SYS_B_0",:"SYS_B_1",:"SYS_B_2",:"SYS_B_3",:"SYS_B_4",:"SYS_B_5") |
Holder: 2989 | exclusive | 6 | 0 | TX | SQL*Net message from client | |
Waiter: 862 | none | 0 | 4 | TX | enq: TX - row lock contention | insert into xxxxx(ID,xxx,xxxx,xxx,….) values(seq_xxx.nextval,:"SYS_B_0",:"SYS_B_1",:"SYS_B_2",:"SYS_B_3",:"SYS_B_4",:"SYS_B_5") |
问题总结 其实这个问题本身不难,值得思考的是,为什么一个这么简单的问题,无法立即找到原因。说到底,很多时候都是经验束缚了我们,在遇到这类问题时,我们需要抛开已有的那些经验,通过数据库的原理来发现根本原因。因此,理论知识再怎么强调都不过分,它真的很重要,理解了原理,你才可以举一反三,游刃有余,而不是每次一碰到没见过的问题都战战兢兢!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









1. 먼저 작업 표시줄의 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 [작업 관리자] 옵션을 선택하거나, 시작 로고를 마우스 오른쪽 버튼으로 클릭한 후 [작업 관리자] 옵션을 선택합니다. 2. 열린 작업 관리자 인터페이스에서 맨 오른쪽에 있는 [서비스] 탭을 클릭합니다. 3. 열린 [서비스] 탭에서 아래의 [서비스 열기] 옵션을 클릭하세요. 4. 열리는 [서비스] 창에서 [InternetConnectionSharing(ICS)] 서비스를 마우스 오른쪽 버튼으로 클릭한 후 [속성] 옵션을 선택하세요. 5. 열리는 속성 창에서 [연결 프로그램]을 [사용 안 함]으로 변경하고 [적용]을 클릭한 후 [확인]을 클릭하세요. 6. 시작 로고를 클릭한 후 종료 버튼을 클릭하고 [다시 시작]을 선택한 후 컴퓨터를 다시 시작합니다.

Black Shark 휴대폰이 켜지지 않으면 어떻게 해야 합니까? 자신을 구하는 방법을 가르쳐주세요! 일상생활에서 휴대폰은 우리에게 없어서는 안 될 필수품이 되었습니다. 많은 사람들에게 Black Shark 휴대폰은 사랑받는 게임용 휴대폰입니다. 그러나 다양한 문제에 직면하게 되는 것은 불가피하며, 그 중 하나는 전화기가 켜지지 않는다는 것입니다. 그러한 상황이 발생하더라도 당황하지 마십시오. 다음은 도움이 될 수 있는 몇 가지 해결 방법입니다. 우선, 블랙샤크 휴대폰이 켜지지 않을 경우 먼저 휴대폰의 전원이 충분한지 확인하세요. 배터리가 방전되어 휴대폰이 켜지지 않을 수도 있습니다.

0x0000004e 오류란 무엇입니까? 오류는 컴퓨터 시스템에서 흔히 발생하는 문제입니다. 컴퓨터에 오류가 발생하면 일반적으로 시스템이 제대로 실행될 수 없기 때문에 시스템이 종료되거나 충돌하거나 오류 메시지가 표시됩니다. Windows 시스템에는 시스템에 심각한 오류가 발생했음을 나타내는 블루 스크린 오류 코드인 특정 오류 코드 0x0000004e가 있습니다. 0x0000004e 블루 스크린 오류는 시스템 커널 또는 드라이버 문제로 인해 발생합니다. 이 오류로 인해 일반적으로 컴퓨터 시스템이

CSV 형식 파일을 열고 처리하는 방법을 빠르게 배우십시오. 데이터 분석 및 처리의 지속적인 개발로 인해 CSV 형식은 널리 사용되는 파일 형식 중 하나가 되었습니다. CSV 파일은 다양한 데이터 필드가 쉼표로 구분되어 있는 간단하고 읽기 쉬운 텍스트 파일입니다. 학술 연구, 비즈니스 분석, 데이터 처리 등 CSV 파일을 열고 처리해야 하는 상황에 자주 직면하게 됩니다. 다음 가이드는 CSV 형식 파일을 열고 처리하는 방법을 빠르게 배우는 방법을 보여줍니다. 1단계: CSV 파일 형식 이해하기 먼저,

0x00000001 블루 스크린 문제는 어떻게 해야 할까요? 블루 스크린 문제는 많은 컴퓨터 사용자들이 자주 겪는 골칫거리입니다. 컴퓨터에 블루 스크린이 발생하면 갑자기 실행이 중단되고 오류 코드와 함께 블루 스크린 인터페이스가 표시됩니다. 그 중 0x00000001은 일반적인 블루 스크린 오류 코드입니다. 블루 스크린 문제는 소프트웨어 오류, 하드웨어 오류, 드라이버 문제 등을 포함한 다양한 이유로 인해 발생할 수 있습니다. 이 문제가 실망스러울 수 있지만 이를 해결하기 위해 할 수 있는 일이 있습니다. 아래에서는 블루 스크린에 대한 몇 가지 솔루션을 소개하겠습니다.

PHP 개발 과정에서 특수 문자를 처리하는 것은 일반적인 문제이며, 특히 문자열 처리에서는 특수 문자가 이스케이프되는 경우가 많습니다. 그중에서도 특수 문자를 작은따옴표로 변환하는 것은 상대적으로 일반적인 요구 사항입니다. 왜냐하면 PHP에서는 작은따옴표가 문자열을 래핑하는 일반적인 방법이기 때문입니다. 이 기사에서는 PHP에서 특수 문자 변환 작은따옴표를 처리하는 방법을 설명하고 구체적인 코드 예제를 제공합니다. PHP에서 특수 문자에는 작은따옴표('), 큰따옴표("), 백슬래시() 등이 포함되지만 이에 국한되지는 않습니다.

많은 친구들이 그래픽 카드를 새로 구입했는데 며칠 동안 갑자기 팬이 회전하지 않습니다. 이유는 무엇입니까? 섀시에 있는 그래픽 카드를 확인하면 됩니다. 메모리와 하드디스크 케이블은 연결되어 있는데 전원이 들어오지 않는군요. 전압이 불안정한가요? 그래픽 카드 팬이 회전하지 않는 이유에 대해 알아보겠습니다. 1. 전원 공급 장치가 부족하면 팬이 회전하지 않게 됩니다. 가장 일반적인 이유 중 하나는 컴퓨터 프로그램의 정상적인 작동을 유지하기 위해 전원 공급 장치에서 제공하는 에너지가 그래픽 카드의 요구 사항을 충족할 수 없기 때문입니다. 그래픽 카드는 GPU 코어가 계속해서 계산을 수행할 수 있도록 냉각 팬을 멈추게 됩니다. 이러한 상황이 발생하더라도 그래픽 카드가 강력하지 않다고 비난하지 마십시오! 확실히 배려가 깊은 것 같군요. 그렇죠?

Black Shark는 강력한 성능과 탁월한 게임 경험으로 유명한 스마트폰 브랜드입니다. 그러나 다른 스마트폰과 마찬가지로 Black Shark 휴대폰에도 다양한 문제가 있으며 그 중 충전 실패가 흔한 문제입니다. 충전 실패는 휴대폰의 정상적인 사용에 영향을 미칠 뿐만 아니라 더 심각한 문제를 일으킬 수도 있으므로 충전 문제를 적시에 해결하는 것이 매우 중요합니다. 이 기사에서는 Black Shark 휴대폰 충전 실패의 일반적인 원인부터 시작하여 충전 문제를 해결하는 방법을 소개하고 독자가 Black Shark 휴대폰 충전 문제를 해결하는 데 도움이 되기를 바랍니다.
