일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 중문색달해수욕장
- RAC
- oracle
- 선유도
- 도로주행
- 영문면허증
- grid
- Compression
- 감정날씨
- apache
- 11g
- MariaDB
- php
- 메리 크리스마스 늑대아저씨
- 일산실내운전연습실
- adr
- 죠리퐁 라떼
- 일산실내운전연습장
- 내 인생에 봄다방
- homeschooling,
- VMware
- 아파치
- 낙서봉사단
- partition
- 그림책
- Linux
- 사랑해
- 실내운전연습
- 실내운전연습실
- 달광
- Today
- Total
소소한 일상에서 책읽기 중
(10G) TRANSACTION ROLLBACK을 하는 문장을 찾는 방법과 ROLLBACK 시간 예상하기 본문
(10G) TRANSACTION ROLLBACK을 하는 문장을 찾는 방법과 ROLLBACK 시간 예상하기
============================================================================
PURPOSE
-------
이 문서는 Transaction Rollback을 모니터하는데 이용한다. Rollback을 하는데 얼마나
많은 시간이 남았는지 , rollback을 하는 문장은 무엇인지 확인할수 있다.
Explanation
-----------
Oracle Database 10g에서는 transaction rollback이 수행될때 , 진행중인 transaction이
$SESSION_LONGOPS view에 event가 기록되어진다.
이 view는 10g 이전 데이타베이스에도 존재하였지만, transaction을 rollback을 하는것은
기록하지 못했었다. Rollback의 경우에 , 6초보다 길어지는 경우에 이 view에 기록되어진다.
$SESSION_LONGOPS view는 모든 진행중인 작업에 대해 보여주는데, "Transaction Rollback"
이라고 기록되어진 OPNAME 컬럼을 통해 확인할수 있다.
다음은 각 컬럼에 대해 살펴보도록 한다.
TIME_REMAINING : 예상된 남겨진 시간을 보여준다. (초단위)
ELAPSED_SECONDS : 이제까지 수행한 시간을 보여준다. (초단위)
TOTALWORK : 수행하는 작업의 전체 양을 보여준다.
SOFAR : 이제까지 수행한 작업의 양을 보여준다.
UNITS : 작업한 양의 단위를 보여준다.
LAST_UPDATE_TIME : view의 내용이 현재것인지를 판단하게 한다.
Example
-------
< Terminal 1 >
sqlplus scott/tiger
SQL> create table emp10 as select * from emp where 1=2;
Table created.
SQL> begin
for i in 1..100000 loop
insert into emp10 select * from emp;
end loop;
end;
/
SQl>Commit;
SQL>update emp10 set sal=1000;
SQL>Rollback;
< Terminal 2 >
sqlplus system/manager
Terminal 1 에서 실행중인 Rollback에 대한 자세한 정보를 얻기 위해 다음의 query을 수행한다.
SQL> select OPNAME,TARGET,SOFAR,TOTALWORK,UNITS,START_TIME,TIME_REMAINING,
ELAPSED_SECONDS from v$session_longops where username='SCOTT';
OPNAME
----------------------------------------------------------------
TARGET SOFAR
---------------------------------------------------------------- ----------
TOTALWORK UNITS START_TIME TIME_REMAINING
---------- -------------------------------- ------------ --------------
ELAPSED_SECONDS
---------------
Transaction Rollback
978
23438 Blocks 24-NOV-04 207
9
참고 : 위의 query 결과를 보면, 지금까지 978 block이 rollback 되었고 전체 작업양은 23438 block임을
알수 있다. 이 작업은 9초간 수행되었고 남아 있는 예상 시간은 207 초이다.
계속 query하면 작업이 진행됨에 따라 SOFAR column의 값은 늘어나고, TIME_REMAINING column의
값은 둘어드는 것을 관찰할수 있다.(TIME_REMAINING column의 값은 예상시간이기 때문에 조금 늘었다
줄었다 할때도 있다.)
SQL> /
OPNAME
----------------------------------------------------------------
TARGET SOFAR
---------------------------------------------------------------- ----------
TOTALWORK UNITS START_TIME TIME_REMAINING
---------- -------------------------------- ------------ --------------
ELAPSED_SECONDS
---------------
Transaction Rollback
10162
23438 Blocks 24-NOV-04 183
140
참고 : 새로운 SQL_ID column은 V$SQL view와 대응하여 rollback하고 있는 문장을 찾는데 사용된다.
SQL> select OPNAME,SQL_ID ,TOTALWORK,UNITS,START_TIME,TIME_REMAINING,
ELAPSED_SECONDS from v$session_longops where username='SCOTT';
OPNAME SQL_ID
---------------------------------------------------------------- -------------
TOTALWORK UNITS START_TIME TIME_REMAINING
---------- -------------------------------- ------------ --------------
ELAPSED_SECONDS
---------------
Transaction Rollback 18grqd4nfgv98
23438 Blocks 24-NOV-04 119
226
SQL> SELECT SQL_TEXT FROM V$SQL WHERE SQL_ID ='18grqd4nfgv98';
SQL_TEXT
---------------------------------------------------------------------
rollback
Reference Documents
-------------------
<NOTE:1067799.6> - ESTIMATING TIME TO ROLLBACK A TRANSACTION
<NOTE:265198.1> - Oracle 10G Transaction Rollback Monitoring
<Note:271981.1> 10g - Estimating time and finding the statement of a Transaction Rollback
'DB까다롭다' 카테고리의 다른 글
[11g] ADR - AlertLog와 Tracefile의 새로운 위치 (0) | 2011.12.15 |
---|---|
11g 데이타베이스 문제 원인 분석을 위한 정보 수집 방법 (동영상 포함) (0) | 2011.12.15 |
underbar(hidden) parameter의 값을 확인하는 방법 (0) | 2011.10.18 |
BROKEN된 JOB을 자동으로 재실행 시키는 방법 (0) | 2011.10.13 |
SUBPARTITION 추가 (0) | 2011.10.07 |