Tina Admin

Similar documents
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

歯sql_tuning2

10.ppt

PowerPoint Presentation

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

목 차

13주-14주proc.PDF

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

09.RAC_OWI_Part2

MS-SQL SERVER 대비 기능

62

DBMS & SQL Server Installation Database Laboratory

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

untitled

FlashBackt.ppt

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

The Self-Managing Database : Automatic Health Monitoring and Alerting

Oracle Wait Interface Seminar

Tablespace On-Offline 테이블스페이스 온라인/오프라인

NoSQL

Microsoft Word - 기술노트[23회] Logminer.doc

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

MySQL-Ch10

PowerPoint Presentation

untitled

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

경제통상 내지.PS

°æÁ¦Åë»ó³»Áö.PDF

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

SMB_ICMP_UDP(huichang).PDF

제목을 입력하세요.

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Oracle Database 10g: Self-Managing Database DB TSC

Slide 1

ETL_project_best_practice1.ppt

thesis

CD-RW_Advanced.PDF

MySQL-.. 1

슬라이드 1

슬라이드 1

OCP PL/SQL

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

Microsoft Word - 05_SUBPROGRAM.doc

PowerPoint Presentation

Jerry Held


Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Ç¥Áö

1217 WebTrafMon II

세계 비지니스 정보

[96_RE11]LMOs(......).HWP

INSTRUCTIONS

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들

Microsoft Word - 04_EXCEPTION.doc

Microsoft Word - SQL튜닝_실습교재_.doc

슬라이드 1

2 ㆍ 大 韓 政 治 學 會 報 ( 第 20輯 1 號 ) 도에서는 고려 말에 주자학을 받아들인 사대부들을 중심으로 보급되기 시작하였고, 이후 조선시대에 들어와서는 국가적인 정책을 통해 민간에까지 보급되면서 주자 성리학의 심 화에 커다란 역할을 담당하였다. 1) 조선시대

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

(SW3704) Gingerbread Source Build & Working Guide

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

세미나(장애와복구-수강생용).ppt

PCServerMgmt7

뇌를자극하는 SQL Server 2012 (1 권 ) 1 권 : 기본편 < 이것만은알고갑시다 > 모범답안 1 장 1. (1) Microsoft (2) Oracle (3) IBM (4) Oracle (5) Micr

6주차.key

제11장 프로세스와 쓰레드

윈백및업그레이드 Tibero Flashback 가이드

문서 템플릿

00-1표지

뇌를자극하는 SQL Server < 이것만은알고갑시다 > 모범답안 2 장 1. Windows XP Home, Windows XP Professional, Windows Vista Basic, Window

ALTIBASE HDB Patch Notes

Tibero

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

#SPS/C-5050.B.

ALTIBASE HDB Patch Notes

T100MD+


Microsoft PowerPoint - 10Àå.ppt

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PRO1_09E [읽기 전용]

슬라이드 1

<4D F736F F D205BB4EBBBF3C1A4BAB8B1E2BCFA5DB1E2BCFAB9AEBCAD2D524D414EBBE7BFEBBFB9C1A65F39695F313067>

씨에이에스는 서울특별시 시설관리공단 계약 제1579호( ) 장애인 콜택시 콜센터 차량관제시스템 구축사업 감리용역 에 근거하여 카나스 에서 수행중인 장애인콜택시 콜센터 차량관제시스템 구축사업에 대한 최종감리를 실시하고 본 보고서를 제출합니다

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7

Microsoft Word - 기술노트[23회]_Logminer_1.1

Oracle TimesTen 을이용한 DBMS 성능최적화구축방안 UNIONE I&C 김윤복대표

Simplify your Job Automatic Storage Management DB TSC

초보자를 위한 분산 캐시 활용 전략

Advanced Product Service

untitled

TITLE

Oracle9i Real Application Clusters

vm-웨어-01장

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Microsoft PowerPoint - Tech-iSeminar_Logminer.ppt

Transcription:

Lock session 확인 2010 년 01 월 27 일 DB 기술지원팀 문서정보 프로젝트명 Lock session 확인 서브시스템명 버전 1.0 문서명 작성일 2011-01-31 작성자 최종수정일 2011-01-31 문서번호 재개정이력 일자내용수정인버전 문서배포이력 발신자수신자배포목적일자비고 유니원아이앤씨 기술문서.

Table of Contents 1 오라클의 LOCK 형태... 3 1.1 DML LOCK... 3 1.2 DDL LOCK... 3 2 LOCK 의감시및진단... 3 2.1 v$lock... 3 2.2 v$locked_object... 4 2.3 DEAD LOCK... 4 3 LOCK 문제... 4 3.1 문제발생원인... 4 3.2 Lock session 확인... 5 3.3 해결방법... 5 4 TX LOCK TEST... 5 5 LOCK 의 TYPE... 7.

1 오라클의 LOCK 형태 1.1 DML LOCK - DML Lock은여러사용자에의해동시에액세스되고있는데이터의무결성을보장하기위한것입니다. 이들 lock은 DML 작업과, DDL 작업을동시에충돌시키는파괴적인작업을예방합니다. DML 문은최하두개의 LOCK을설정하게됩니다. (SHARED LOCK (TM), EXCLUSIVE LOCK (TX)) 테이블레벨잠금 (TM) - 테이블레벨잠금 (TM 유형 ) 은테이블을수정하는모든 DML 트랜잭션에대해설정됩니다. - INSERT, UPDATE, DELETE, SELECT, FOR UPDATE, LCOK TABLE - 테이블잠금은 DDL 작업이트랜잭션과충돌하지못하도록막습니다. 행레벨잠금 (TX) - insert, update, delete, select, for update 에의해수정된각행에대해자동으로행레벨의 lock(tx) 이설정됩니다. - row level lock은다른어떠한사용자도동시에동일한행을수정할수없도록보장됩니다. 따라서다른사용자에의해수정되었지만아직커밋되지않은행을사용자가수정할위험이없습니다. - 처음 DML operation에대해 COMMIT 또는 ROLLBACK때까지 lock을잡고있는것을말합니다. Queuing mechanism을사용하기때문에다른 session에서는 transaction이완전히끝날때까지기다리는것입니다. 1.2 DDL LOCK - DDL Lock은객체가지속적인 DDL 작업에의해활동하거나참조되는동안스키마객체의정의를보호한다. 오라클서버는동일한스키마객체를수정하거나참조할지도모르는다른 DDL 작업을막기위해 DDL Lock 을자동으로설정한다. 2 LOCK 의감시및진단 2.1 v$lock SQL> select * from v$lock; ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK ----------------------- ---------------------- -------- ----- --------- ---------- ---------- ------------ ------------ ------------- 00000003A3CDB5E0 00000003A3CDB600 165 XR 4 0 1 0 698522 0 00000003A3CDB678 00000003A3CDB698 165 CF 0 0 2 0 698522 0 3/7

- v$lock 컬럼설명 1) TY: TYPE의대표적인유형으로 TX, TM 이있습니다. 2) ID1: TYPE이 TX일경우에는롤백세그먼트번호및슬롯번호, TYPE이 TM일경우에는수정되고있는테이블의 ID( 오브젝트 ID) 3) LMODE: LOCK MODE로서 TX일경우 6, TM일경우 3, 0일경우 lock 을획득하기위해기다리고있는것입니다. 4) REQUEST: 획득하려고하는 lock의 mode를나타내며 0이아닐경우 lock을획득하기위해대기하고있는것입니다. 2.2 v$locked_object - v$locked_object 컬럼설명 1) XIDUSN: 롤백세그먼트번호, 값이 0이라면해당 SESSION_ID는 XIDUSN이 0이외의다른값을갖고있는 SESSION_ID에의해점유되고있는잠금을요청하면서기다리고있는중입니다. 2) OBJECT_ID: 수정되고있는객체의 ID입니다. 3) SESSION_ID: 객체를잠그는세션 ID입니다. 2.3 DEAD LOCK DEAD LOCK은 2 개이상의트랜잭션이각각서로가 lock을건데이터를기다리고있을때발생합니다. 트렌젝션 1, 2 SQL> udpate s_emp SQL> udpate s_emp ORA-00060: deadlock detected while waiting for resource 트랜잭션 1에서두번째 update문이 deadlock 을탐지하여오라클서버는그문장을롤백하고메시지를반환합니다. deadlock을발생시킨문장은롤백되지만트랜잭션은롤백되지않습니다. 3 LOCK 문제 3.1 문제발생원인 대부분의원인은 Application 의잘못된설계에기인합니다. 4/7

3.2 Lock session 확인 TX lock을 holding하는모든 session을보여줍니다. SQL> select * from v$lock where type='tx' and lmode>0; TX lock을 waiting하는모든 session을보여줍니다. SQL> select * from v$lock where type='tx' and request>0; 3.3 해결방법 Lock Holder에게 Commit, Rollback을요청합니다. Lock Holder의세션을 Kill 시킵니다. SQL> ALTER SYSTEM KILL SESSION sid,serial# ; 부득이한경우, OS 명령어 kill 사용 $> kill -9 12733 유닉스 Shadow Process (Server Process) 를 Kill 시키는것은바람직하지않습니다. 4 TX LOCK TEST <scott 1> SQL> conn scott/tiger SQL> update dept set loc= SEOUL where deptno=10; <scott 2> SQL> conn scott/tiger SQL> update dept set loc= BUSAN where deptno=10; - HANG 발생 <scott 3> SQL> conn scott/tiger SQL> delete from dept where deptno=10; - HANG 발생 <SYS> Holding session과 Waiting session 찾기 - Holding session을찾는실행명령문 $> vi hoding.sql SELECT DECODE(request,0,'Holder: ','Waiter: ') sid sess,id1, id2, lmode, request, type FROM V$LOCK WHERE (id1, id2, type) IN (SELECT id1, id2, type FROM V$LOCK WHERE request>0) ORDER BY id1, request / SQL>@hoding.sql 5/7

Sess ID1 ID2 LMODE REQUEST TY ------------------------------- ----------- ------------ ---------------- -------------- ---------- Holder: 8 327721 211 6 0 TX Waiter: 9 327721 211 0 6 TX Waiter: 12 327721 211 0 6 TX 위에서 session 9와 12가 session 8의 Transaction이종료되기를기다리고있는것을알수있습니 다. - Waiting session 상세정보를출력하는실행명령문 $> vi lock_objects.sql column username format a10 column lockwait format a20 column sql_text format a80 column object_owner format a14 column object format a15 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' / SQL>@lock_objects USERNAME SID OBJECT_OWNER OBJECT SQL -------------- -------- ------------------- ---------- --------------------------------------------- SCOTT 12 SCOTT DEPT delete from dept where deptno=10 SCOTT 9 SCOTT DEPT update dept set loc= BUSAN where deptno=10 위에서보면 SID 9 와 12가 DEPT에대한 DML Operation 중에 Waiting 하고있다는것을알수있습니다. - Lock 해결 : 1) SID 8을 COMMIT or ROLLBACK 을시킨다. 2) SQL> alter system kill session 8, 16 ; 3) OS 명령어 kill 사용 : kill -9 12733 - Holding session 의 SQL 문확인 6/7

SID USER_NAME SQL_TEXT ---------- ------------------------------ ------------------------------------------------------------ 8 SCOTT update dept set loc= SEOUL where deptno=10; 9 SCOTT update dept set loc= BUSAN where deptno=10; 12 SCOTT delete from dept where deptno=10; - Holding session의 Process ID 확인 SQL> select a.pid, a.spid, b.sid, b.serial# from v$process a, v$session b Where a.addr=b.paddr and b.sid=8 PID SPID SID SERIAL# --------- ---------- ------------ --------------- 10 12733 8 16 5 LOCK 의 TYPE V$lock에서의 "type" 컬럼에올수있는 lock type입니다. MR: Media Recovery, 매체복구 RT: Redo Thread, 리두쓰레드 UN: User Name, 사용자명 UL: PL/SQL User Lock, PL/SQL 사용자잠금 (lock) DX: Distributed Xaction, 분산활동 CF: Control File, 컨트롤파일 IS: Instance State, 인스턴스상태 FS: File Set, 파일세트 IR: Instance Recovery, 인스턴스복구 ST: Disk Space Transaction, 디스크공간트랜잭션 TS: Temp Segment, 임시세그먼트 IV: Libary Cache Invalidation, 라이브러리캐쉬무효 LS: Log Start or Switch, 로그시작또는로그스위치 RW: Row Wait, 행대기 SQ: Sequence Number, 시퀀스번호 TE: Extend Table, 테이블확장 TT: Temp Table, 임시테이블 TX: Transaction: 행레벨잠금 TM: 테이블레벨잠금 7/7