본문 바로가기

DataBase/Oracle

[Oracle]ora-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다

해결 방법


아래내용은 오라클 Bulletin 에 있는 내용입니다.
====================================================
ORA-54 WHEN DROP A TABLE(LOCK SESSION KILL)
Bulletin no : 10060
=====================================================
ORA-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';

 

'DataBase > Oracle' 카테고리의 다른 글

SQL Loader 사용법  (0) 2008.04.28
분석함수의 사용  (0) 2008.04.28
ORA-01786: FOR UPDATE 구는 사용할 수 없습니다  (0) 2008.04.28
오라클 8080포트 변경  (0) 2008.04.28
오라클 에러메세지  (0) 2008.04.28