'락'에 해당되는 글 2건
- 2013.03.05 [MSSQL] LOCK 확인 및 처리 방법
- 2012.02.23 [Oracle] LOCK 해제
[MSSQL] LOCK 확인 및 처리 방법
SP_LOCK 이라는 저장프로시저를 통해 MSSQL Server Management Studio 에서 EXEC SP_LOCK 을 실행한다.
필요한건 Mode 와 spid 인데, Mode가 X로 표시된게 Lock이 걸린 세션이며, spid 값을 통해 처리가 가능하다.
세션을 강제 종료시키는 방법은 KILL spid 이지만,
또 발생시킬수 있을수 있으니 누가 소유자 인지 확인을 하고 종료를 시켜야 한다.
EXEC SP_WHO2 spid 로 누가 소유자 인지 확인하고,
DBCC INPUTBUFFER(spid) <-- 어떤 쿼리가 LOCK 걸리게 하였는지 확인할수 있다.
이와 같이 입력하여 EVENTINFO 를 확인해 본다.
SP_LOCK 을 통해 LOCK 된 세션이 있는지도 확인해본다.
'Database / Sql' 카테고리의 다른 글
[MSSQL] 개발자를 위한 MS SQL Server 성능 조정 및 최적화 (0) | 2013.03.19 |
---|---|
[MSSQL] 전체 백업 유지관리 계획 만들기 (4) | 2013.03.19 |
[Oracle] ROLLUP, GROUPING SETS (0) | 2013.02.13 |
[Oracle] Session Timeout (0) | 2013.02.08 |
[Oracle] 테이블 하나만 복원하기 (0) | 2013.02.07 |
[Oracle] LOCK 해제
## SESSION LOCK 해제 ##
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 = 'TABLE_NAME';
▶ ALTER SYSTEM KILL SESSION 'SID, SERIAL';
## USER ACCOUNT LOCK 해제 ##
SELECT O.OBJECT_NAME
FROM DBA_OBJECTS O, V$LOCKED_OBJECT OB
WHERE O.OBJECT_ID = OB.OBJECT_ID;
SELECT B.USERNAME USERNAME, C.SID SID, C.OWNER OBJECT_OWNER,
C.OBJECT OBJECT, B.LOCKWAIT, A.SQL_TEXT SQL
FROM V$SQLTEXT A, V$SESSION B, V$ACCESS C
WHERE A.ADDRESS=B.SQL_ADDRESS
AND A.HASH_VALUE=B.SQL_HASH_VALUE
AND B.SID = C.SID AND C.OWNER != 'SYS';
SELECT SUBSTR(S.USERNAME,1,11) "ORACLE USER", P.PID "PROCESS ID",
S.SID "SESSION ID", S.SERIAL#, OSUSER "OS USER",
P.SPID "PROC SPID",S.PROCESS "SESS SPID", S.LOCKWAIT "LOCK WAIT"
FROM V$PROCESS P, V$SESSION S, V$ACCESS A
WHERE A.SID=S.SID0
AND P.ADDR=S.PADDR
AND S.USERNAME != 'SYS'
AND S.LOCKWAIT IS NOT NULL;
▶ ALTER USER USER_NAME ACCOUNT UNLOCK;
'Database / Sql' 카테고리의 다른 글
[Oracle] DBA_USER 확인 (0) | 2012.02.23 |
---|---|
[Oracle] SESSION 수 체크 (0) | 2012.02.23 |
[Oracle] 쿼리문 처리 과정 (0) | 2012.02.16 |
[Oracle] USER_SOURCE (0) | 2011.12.27 |
[MS-SQL] CONVERT를 이용한 날짜 형식 변경 (1) | 2011.12.14 |