반응형

"ORA-30006: resource busy; acquire with WAIT timeout expired" 에러 해결 방법

ORA-30006 Cause: 

  • The requested resource is busy.

ORA-30006 원인: 

  • 요청한 리소스가 사용 중입니다.

ORA-30006 Action: 

  • Retry the operation later.

ORA-30006 조치: 

  • 나중에 작업을 다시 시도하십시오.

ORA-30006 해결:

1. 업무 로직 필요해서 

SELECT * FROM TB_ FOR UPDATE WAIT 1 --1초

 

2. 락 해제 

	------------------------------------------------------------------------------------------------------
	-- 사용자 계정 삭제
	-- status 값 : 	active 오라클서버에 session을 맺은후 dml, ddl, dcl, 트랜잭션 컨트롤등 구문 실행중 상태
	-- 				inactive 오라클서버에 session을 맺은후 어떤 실행 구문도 없이 연결만 되어 있는 상태
	------------------------------------------------------------------------------------------------------
	select a.sid,a.serial#,a.username,a.status ,a.* from v$session a where a.schemaname = 'S_WCS';--session조회 
	------------------------------------------------------------------------------------------------------
	-- 락 테이블 조회
	-- locked_mode 값 : ROW SHARE  공유
	-- 				    ROW EXCLUSIVE 독점
	------------------------------------------------------------------------------------------------------
	SELECT B.OWNER
	     , B.OBJECT_NAME
	    -- , A.SESSION_ID
	     , A.LOCKED_MODE
	     , DECODE(LOCKED_MODE, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE',  4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') LOCK_MODE_NM 
	     , A.OS_USER_NAME 
	     , C.USERNAME,C.SID,C.SERIAL#,C.SID||','||C.SERIAL# AS kill_VAL,C.LOGON_TIME,C.MACHINE,C.TERMINAL,C.PROGRAM,C.STATUS AS SESSION_STATUS ,C.OSUSER
	FROM V$LOCKED_OBJECT A, DBA_OBJECTS B, V$SESSION C
	WHERE B.OBJECT_ID = A.OBJECT_ID
	  AND A.SESSION_ID = C.SID 
	ORDER BY A.SESSION_ID
	;
	--session삭제 'SID,SERIAL#'; 
	alter system kill session '1603,38249';
반응형

+ Recent posts