본문 바로가기

빅데이터과정/WORKSHOP 1

#21_140711_WSHOP_ DEAD LOCK

728x90

#DEAD LOCK





DEAD LOCK(P9-31)
update를 하게되면 행(row)에 lock을 건다
행에 락을 걸기 떄문에 해당하는 행의 모든 데이터는 접근 불가능하다
- 2개의 SCOTT 세션으로 접속하고 아래의 순서로 수행하면 5번째 세션에서 오류가 발생한다


SCOTT (A)

SCOOT (B)
1
SQL> update emp
  2  set sal = 0
  3  where ename='KING';





2
SQL> update emp
  2  set sal=9000
  3  where ename='ALLEN';
3
SQL> update emp
  2  set deptno=40
  3  where ename='ALLEN';




4
SQL> update emp
  2  set deptno =40
  3  where ename='KING';
5
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource




문제79. ORA-00060 dead lock 메시지를 보게되면 바로 해야할 작업이 무엇인가?

답 : commit 이나 rollback 을 해서 작업을 종료해야 다른 waiting 하고 있는 세션이 작업을 계쏙 할 수 있다.

문제80. DBA가 dead lock이 DB에서 발생하고 있는지 확인하는 방법은?

답 : alert log file을 열어보면 된다.
평상시에 dead lock 이 발생하면 실시간으로 alert log file 에 반영이 된다.

문제81. alert log file 을 열어서 맨 아래쪽에 dead lock 관련 메시지가 있는지 확인하시오

alert log file의 background_dump_dest 위치로 가서 아래를 수행한다
SQL> show parameter dump


[orcl:trace]$ tail -f alert*


'빅데이터과정 > WORKSHOP 1 ' 카테고리의 다른 글

#21_140711_WSHOP_최소 권한의 원칙 적용  (0) 2014.07.15
#21_140711_WSHOP_UNDO DATA  (0) 2014.07.15
#21_140711_WSHOP_LOCK충돌  (0) 2014.07.15
#21_140711_WSHOP_임시테이블  (0) 2014.07.15
#20_140710_WSHOP_유저관리  (0) 2014.07.15