급격히 증가한 데이터 원인 찾기?? 0 1 3,751

by 김정렬 테이블스페이스 [2013.01.23 00:51:22]



데이터가 급격히 증가를 했다면 누군가가 다량의 인서트 작업을 해서이겠죠.
.
문제는 안그래도 자원이 부족한데 조금전에 20기가정도의 데이타 파일을 추가하여
.
테이블스페이스를 늘려놓았음에도 30분만에 또 같은 테이블 스페이스가 가득차버리는 상황입니다.
.
아주 미추어버리겠습니다. 서버관리자는 자원부족하니까 적당히 하라고 욕하고...
.
당장 다른 부서에서는 업무가 안되니 징징대고...
.
상황 모니터에는 계속 빨간 불 들어오고...
.
이러다보니 누가 그 단시간에 20기가정도의 데이타를 들이부었는지 알아내고 싶어졌습니다.
.
어떻게 알아낼 수 있을까요? 데이터가 급증한 시간대와 증가한 테이블 스페이스에 대한 정보만
.
알고 있는 상황입니다.
.
로그마이너? 운영서버라 제가 함부로 실행 및 설정 못합니다.
.
EM?? 그거 안씁니다. 역시 제가 함부로 설정 못합니다.
.
Orange? Toad? Pharos? 접속 권한 없습니다. 대단합니다. 정말 잘 막아놓았습니다.
.
워찌 해야 범인을 알아낼 수 있을까요? 해당 서버에서 SQLPLUS 만 실행 가능합니다.
by 타락천사 [2013.01.23 09:32:59]

지금처럼 계속 증가된다면
방법1)
dba_segment 에서 where 절에 tablespace_name 을 주시고
시간마다 저장하시구..사이즈를 비교 해보세요..
방법2)
아래 쿼리는 OWNER 부분만 변경 하시면 되실꺼에요.. 파티션을 제외 하구 확인 합니다.
파티션 테이블 있으면 그것도 확인 하셔야 하구요..

-- 테이블 변경 정도 체크 하기
-- 10% 이상 변경 발생시만 Logging 된다.
-- 전제 조건 : MONITORING=YES / STATISTICS_LEVEL is set to TYPICAL
-- 아래 질의 결과가 없다면, 강제로 모니터링 정보를 Flush 하면 된다고 한다.
-- execute DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
-- SYS 로만 수행 가능하다.

2011/12/26

Partition + Normal Table

SELECT SYSDATE AS CHECK_DT, A.OWNER, A.SEGMENT_NAME, A.PARTITION_NAME, A.BYTES/1024/1024 AS TSIZE, B.NUM_ROWS,
C.INSERTS, C.UPDATES, C.DELETES, ( C.INSERTS + C.UPDATES + C.DELETES) AS MODIFIED, (C.INSERTS + C.UPDATES + C.DELETES )/B.NUM_ROWS*100 ,C.TIMESTAMP
FROM DBA_SEGMENTS A, DBA_TAB_PARTITIONS B , DBA_TAB_MODIFICATIONS C
WHERE B.TABLE_OWNER IN ('ADM','CDM')
AND B.TABLE_NAME = A.SEGMENT_NAME
AND B.PARTITION_NAME = A.PARTITION_NAME
AND A.SEGMENT_NAME = C.TABLE_NAME
AND A.PARTITION_NAME= C.PARTITION_NAME
UNION ALL
SELECT SYSDATE AS CHECK_DT, A.OWNER, A.SEGMENT_NAME, A.PARTITION_NAME, A.BYTES/1024/1024 AS TSIZE, B.NUM_ROWS,
C.INSERTS, C.UPDATES, C.DELETES, ( C.INSERTS + C.UPDATES + C.DELETES) AS MODIFIED, (C.INSERTS + C.UPDATES + C.DELETES )/B.NUM_ROWS*100 ,C.TIMESTAMP
FROM DBA_SEGMENTS A, DBA_TABLES B , DBA_TAB_MODIFICATIONS C
WHERE B.OWNER IN ('ADM','CDM')
AND B.PARTITIONED = 'NO'

AND B.TABLE_NAME = A.SEGMENT_NAME
AND A.SEGMENT_NAME = C.TABLE_NAME ;

==> 데이타 변경이 없는 경우 TAB_TAB_MODIFICATION 값이 없어, 조회 결과에서 제외 된다.


댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입