"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';
'Oracle > ORA-' 카테고리의 다른 글
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 (0) | 2023.05.21 |
---|---|
ORA-12570: 네트워크 세션 예상치 않은 패킷 읽기 오류 (0) | 2023.05.13 |
ORA-01787: 질의 블록당 1개의 구만 허용됩니다 (0) | 2023.05.13 |
ORA-06550: 호출 시 인수의 갯수나 유형이 잘못되었습니다 (1) | 2023.05.13 |
ORA-38824: CREATE OR REPLACE 명령이 기존 객체의 EDITIONABLE 속성을 변경할 수 없습니다. (0) | 2023.05.13 |