TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-16 |
제목 | ORA-54 WHEN DROP A TABLE(LOCK SESSION KILL) | ||
---|---|---|---|
RA-54 WHEN DROP A TABLE(LOCK SESSION KILL)
=========================================== TABLE에 LOCK이 걸려 있어 DML 및 DDL 명령 사용 시 ORA-54 ERROR가 나오는 경우가 있다. 00054, 00000, "resource busy and acquire with NOWAIT specified" // *Cause: Resource interested is busy. // *Action: Retry if necessary. 이 때에는 DB를 RESTART하면 되지만 더 효율적인 해결 방법은 다음과 같이 할 수 있다. (serial number가 negative인 경우 그 값에 65536을 더해야 한다.) 1. 예를 들어 lock이 걸려 있는 테이블이 emp라고 가정하면 다음 SELECT 문으로 emp 테이블에 lock을 걸고 있는 session을 찾는다. $ sqlplus system/manager SQL> select a.sid, a.serial# from v$session a, v$lock b, dba_objects c where a.sid=b.sid and b.id1=c.object_id and b.type='TM' and c.object_name='EMP'; SID SERIAL# --- ------- 5 1 6 1 2. 다음 명령으로 SESSION들을 KILL한다. SQL> alter system kill session '5, 1'; SQL> alter system kill session '6, 1'; |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |