오라클을 사용할때
어느 순간 데이터가 삭제가 않되는 상태가 발생했다.
일명 테이블에 락이 걸린것이다.
테이블에 락이 걸리는 이유 사용중 비정상적이 종료로 인해서 발생한다.
락을 제거하기 위해서는 SYSTEM 계정(관리자)으로 접근해서 작업을 진행해야 한다.
일반 계정으로는 불가능하다.
1 .락이 걸린 테이블이 유무 확인
select *
from v$locked_object
where oracle_username = 'oracle user name';
2 .락이 걸려있는 테이블 갯수 확인
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='테이블명'
결과 값
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 ;
출처: http://twinstarbox.tistory.com/entry/오라클-테이블-락-주회-해제-방법 [쌍둥이별의 보물상자]
'ORACLE' 카테고리의 다른 글
UPDATE 시 셀렉트 업데이트하기 (0) | 2018.02.26 |
---|---|
oracle 태그 삭제 후 select (0) | 2018.02.02 |
oracle 테이블 컬럼추가,변경,삭제 (0) | 2018.01.26 |
select 후 update 하기 // 오라클 2시간전 데이터 셀렉트하기 (0) | 2018.01.18 |
오라클 날짜 기간 검색 2가지방법 (0) | 2018.01.11 |