ENQ 기억 HW가 - 이벤트 및 테이블 스페이스에 대한 경합 대기가 자동으로 확장 오류가 발생합니다

첫째, 장애 현상

  15 : 30 ~ 16 : 00 발견 테스팅을 그 ENQ 많은 수의 : HW - 경쟁과 ENQ : TX - 행 잠금 경합 이벤트에 대한 대기, 점점 더 많은, 결국 짧은 서비스 중단으로 이어지는 두 이벤트.

돌아 가기 테스트 용도의 테이블 스페이스 따라서 사용자 테이블 공간을 증가, 확장 자동으로 사용되는 발견, 문제 해결

둘째, 고장 분석

  1 참조 30-16 : 00 시간 15 시간의 모든 기간 찾는데 사용 snap_id, 세션 동작을

  

선택  *  로부터 dba_hist_snapshot 여기서 begin_interval_time > TO_DATE ( ' 2019년 12월 3일 ' , ' YYYY-MM-DD ' )

  2, 대기는 메인 이벤트이 시간을 볼 수

선택  
       TO_CHAR (sample_time를 ' YYYY-MM-DD HH24 : MI ' ), 이벤트
        카운트 ( * )
   DBA_HIST_ACTIVE_SESS_HISTORY
  여기서 snap_id 에서 ( 116,604 , 116,605 )
   sample_time > = TO_DATE ( ' 2019년 12월 3일 15시 10분 ' , " YYYY-MM-DD HH24 : MI ' )
  그룹  에 의해   TO_CHAR (sample_time, " YYYY-MM-DD HH24 : MI ' ), 이벤트의
  순서  에 의해  1 ,3 ;

경쟁, ENQ - HW : TX - 행 잠금 경합 위의 분석에서 그것은 대기 이벤트 ENQ로 볼 수있다

 3. 위의 문은 (526awsta39934를) 실행에 의해 생성되는 이벤트를 볼 수 기다리고 있습니다

 

선택 , t.instance_number
        t.sample_time,
        t.session_id,
        t.session_serial #
        t.sql_id,
        t.event,
        t.blocking_session,
        t.blocking_inst_id,
        t.program,
        t.machine
   DBA_HIST_ACTIVE_SESS_HISTORY t
   여기서 snap_id 에서 ( 116,604 , 116,605 )
      TO_CHAR (sample_time, " YYYY-MM-DD HH24 : MI ' ) = ' 2019년 12월 3일 15시 39분 ' 
     이벤트  ( ' ENQ : TX - 행 잠금 경합 ' , ' ENQ : HW - 경쟁 ' )
   순서  에 의해  2 , 1 ;
 

4 '526awsta39934'발생로서 상기 SQL_ID에 따라 'ENQ : HW는 - 경쟁'고수위 경합 이벤트 문장을 볼

INSERT  INTO TRANSACTION_LOG의 VALUES (: B1 : B2 : B3 : B4 : B5 : B6 : B7 : B8 : B9 : B10 : B11 : B12 : B13 : B14 : B15)

5, 3 단계에 따라 '을 ENQ : TX - 행 로크 경합'단리 할 수 ​​광고 잠금 세션 ID 차단

세션 ID 위의 방해가 차단 정확히 SQL_ID '526awsta39934'에 따라 찾아보실 수 있습니다

선택 , t.instance_number
        t.sample_time,
        t.session_id,
        t.session_serial #
        t.sql_id,
        t.event,
        t.blocking_session,
        t.blocking_inst_id,
        t.program,
        t.machine
   DBA_HIST_ACTIVE_SESS_HISTORY t
   snap_id 에서 ( 116,604 , 116,605 )
     / * sample_time> = TO_DATE ( '2019년 12월 3일 15시 10분', 'YYYY-MM-DD HH24 : MI') * / TO_CHAR (sample_time, " YYYY-MM-DD HH24 : MI ' ) = ' 2019년 12월 3일 15시 39분 ' 
     t.session_id  ( 2531 , 3595 , 2128 , 3208 , 3555 , 5598 , 168 )
      t.instance_number = 2 
   - 과의 이벤트 ( 'ENQ : TX - 행 잠금 경합', 'ENQ : HW - 경쟁') 
  순서  에 의해  2 , 1 ;
 

6 합산

由上面可以分析当大量高并发语句‘526awsta39934’,往数据库中插入数据会去查看数据块高水位线下的可用块,正好此时表空间users处于自动扩展,同时其他的会话也在插入数据或修改数据,也需要高水位线下的可用块。最终引起了行锁。

 

ps:关于oracle高水位线参考

https://www.cnblogs.com/linjiqin/archive/2012/01/15/2323030.html

추천

출처www.cnblogs.com/chhx/p/11983917.html