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