오라클을 사용할때
어느 순간 데이터가 삭제가 않되는 상태가 발생했다.
일명 테이블에 락이 걸린것이다.
테이블에 락이 걸리는 이유 사용중 비정상적이 종료로 인해서 발생한다.
락을 제거하기 위해서는 SYSTEM 계정(관리자)으로 접근해서 작업을 진행해야 한다.
일반 계정으로는 불가능하다.
1 .락이 걸린 테이블이 유무 확인
select *
from v$locked_object
where oracle_username = 'oracle user name';
2 .락이 걸려있는 테이블 갯수 확인
SELECT count(*)
FROM v$locked_object vo , dba_objects do
WHERE vo.object_id = do.object_id
FROM v$locked_object vo , dba_objects do
WHERE vo.object_id = do.object_id
3. 락 걸린 섹션 확인
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'
4.락이 걸린 테이블명을 알고 있은 경우.
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='테이블명'
결과 값
SESSION_ID/SERIAL_NO/OS_USER_NAME/ORACLE_USERNAME/STATUS
24 1102 Administrator ABCDWRK INACTIVE
92 4665 OPS$ABCD OPS$ABCDUSR INACTIVE
92. 4665 OPS$ABCD OPS$ABCDUSR INACTIVE
24 1102 Administrator ABCDWRK INACTIVE
92 4665 OPS$ABCD OPS$ABCDUSR INACTIVE
92. 4665 OPS$ABCD OPS$ABCDUSR INACTIVE
형식
alter system kill session 'sid, serial#'
sid : session_id
serial# : serial_no 을 의미한다.
alter system kill session '24, 1102';
commit ;
[출처] 쌍둥이별의 보물상자
'미분류' 카테고리의 다른 글
[spring] Error configuring application listener of class com.sun.faces.config.ConfigureListener (0) | 2014.09.02 |
---|---|
[spring] Error configuring application listener of class org.springframework.web.context.ContextLoaderListener (0) | 2014.09.02 |
SSL 설정 오류 (webtob) (0) | 2014.07.31 |
[오라클] 테이블스페이스 여유공간확인 (0) | 2014.07.02 |
jstl empty (null) check (0) | 2014.06.28 |