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

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

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

Microsoft PowerPoint - Tech-iSeminar_Logminer.ppt

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

목 차

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

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

PowerPoint 프레젠테이션

MS-SQL SERVER 대비 기능

FlashBackt.ppt

PowerPoint Presentation

歯sql_tuning2

10.ppt

DBMS & SQL Server Installation Database Laboratory

untitled

13주-14주proc.PDF

Microsoft PowerPoint - 10Àå.ppt

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

PRO1_09E [읽기 전용]

ALTIBASE HDB Patch Notes

Oracle Database 10g: Self-Managing Database DB TSC

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

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

PowerPoint Presentation

untitled

슬라이드 1

The Self-Managing Database : Automatic Health Monitoring and Alerting

62

chapter4

MySQL-.. 1

ETL_project_best_practice1.ppt

最即時的Sybase ASE Server資料庫診斷工具

Intra_DW_Ch4.PDF

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

[Brochure] KOR_TunA

제목을 입력하세요.

Simplify your Job Automatic Storage Management DB TSC

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Spring Boot/JDBC JdbcTemplate/CRUD 예제

CD-RW_Advanced.PDF

Orcad Capture 9.x

ecorp-프로젝트제안서작성실무(양식3)

1217 WebTrafMon II

윈도우시스템프로그래밍

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Chapter 1

DW 개요.PDF

단계

PRO1_02E [읽기 전용]

DocsPin_Korean.pages

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

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

Portal_9iAS.ppt [읽기 전용]

Microsoft Word - 기술노트[19회] Flashback.doc

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

MySQL-Ch10

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

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

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

Secure Programming Lecture1 : Introduction

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

문서 템플릿


untitled

휠세미나3 ver0.4

PCServerMgmt7

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

Remote UI Guide

슬라이드 1

PRO1_04E [읽기 전용]

PowerPoint Presentation


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

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

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

슬라이드 제목 없음

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

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

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

Jerry Held

PowerPoint Template

Microsoft Word - Goodus_기술노트[19회]_Flashback

thesis

Cache_cny.ppt [읽기 전용]

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

15_3oracle

Backup Exec

Something that can be seen, touched or otherwise sensed

제목 레이아웃

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

Solaris Express Developer Edition

#KM-250(PB)

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

윈도우시스템프로그래밍

uFOCS

6주차.key

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft PowerPoint Python-DB

歯CRM개괄_허순영.PDF

Transcription:

Goodus 기술노트 [23 회 ] Logminer Author 서강혁, 정철우 Creation Date 2007-08-30 Last Updated 2007-08-30 Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved Version 변경일자 변경자 ( 작성자 ) 주요내용 1 2007-08-30 서강혁, 정철우 문서최초작성 2 3

Contents 1. Logminer... 3 1.1. Logminer란?...3 1.1.1. Logminer로가능한것들... 3 1.1.2. Logminer의제약사항... 4 1.2. Logminer를사용하기위한준비사항...4 1.3. Logminer 활용예제...4 1.3.1. 사용자실수로데이터를변경 (delete, insert, update) 후 Logminer로복구하기... 5 1.3.2. 특정시점에서데이터가변경되었을때 Logminer로유저확인하기... 8 1.3.3. Toad에서 Logminer 쉽게사용하기... 9 1.3.4. Logminer시발생하는 Error 및조치방법... 15 1.4. V$LOGMNR_CONENTS... 16 2. Pro-Active Tuning Service... 19 2.1. 실제사용자 (End-User) 관점의응답시간튜닝... 19 2.2. 최상의성능상태로비즈니스고가용성을유지... 19 2.3. Knowledge Transfer... 20 2.4. Tuning 범위확대... 20 2.5. 기대효과... 21 2.5.1. 재무적관점... 21 2.5.2. 서비스관점... 21 2.5.3. 사용자관점... 22 2.5.4. 혁신적관점... 22 2.6. 제안 Package별가격... 23 2.6.1. DBMS Tuning... 23 2.6.2. DBMS Tuning+ APM + NA... 23 2.6.3. Server (H/W, OS) Tuning + Storage 재구성컨설팅 + DBMS Tuning... 23 2.7. Package 설명... 24 2.8. Promotion... 25-2 -

1. Logminer 1.1. Logminer 란? Logminer 는 Oracle 8i 이상에서사용가능한 tool 로써, Oracle 에기본내장되어있으며, Redo log 와 Archive log file 의내용을읽어들이는데사용할수있다. 1.1.1. Logminer로가능한것들 Logminer 로 Redo 와 Archive log file 을읽어들이게되면, DB 에서해당 Log file 의생성시점에일어났던모든 DML 및 DDL(9i 이상지원 ) 문을확인할수있으므로, 특정트랙잭션의발생시점이나, 실행한유저등을확인할수있고, UNDO SQL 을추출해내어해당쿼리를 Rollback 하는데사용할수있다. Database 에작성된변경사항들의기록 유형 (INSERT, UPDATE, DELETE, COMMIT/ROLLBACK, DDL 또는 INDEX 작업 ) 그와같은변경이발생하는 SCN (System Change Number) 변경을포함하는트랜잭션식별 특정트랜잭션이커밋되는 SCN 변경된객체의테이블및스키마명칭 DML 또는 DDL 문을발생시킨사용자정보 Redo 레코드들을생성하는 동등한 SQL 을나타낼수있는재생성된 SQL (SQL_REDO) 변경사항의실행취소를위해필요한 SQL 을제공하는재생성된 SQL (SQL_UNDO) - 3 -

1.1.2. Logminer의제약사항 1) LONG and LOB data type 2) Object types 3) Nested tables 4) Object Refs 5) IOT(Index-Organized Table) 6) Chianed row or migrate row 1.2. Logminer 를사용하기위한준비사항 UTL_FILE_DIR Parameter 설정 : init parameter file에설정해주어야하며, 그용도는 Log를읽을때생성되는 Dictionary 정보를저장하는데사용되는, Flat file의저장공간으로사용된다. UTL_FILE_DIR = /oracle/ora9/dict scope=spfile; 를위한 dictionary file 생성 ( 또는 Online Redo log) =>Object 정보를저장하기위한 Flat file 용도이다. SQL> execute dbms_logmnr_d.build (dictionary_filename => 'dictionary.ora', - dictionary_location => '/data/ora9/dict', options => dbms_logmnr_d.store_in_flat_file); 분석할 Redo log 또는 Archive log file Database 가 ArchiveLog Mode 이어야한다. 필요에따라서 Mining 하고자하는 Table 이 supplemental logging 이되어야한다. Archive Log 및 Flat Dictionary File 에대한 read 권한이있어야한다. 최소 CPU 1장정도의 resource 을사용한다. ( 대략 Logminer 1개의 DB Session 당 1개의 CPU 사용함 ) 최소 Memory 을 10MB 에서 100MB 정도사용한다. (Redo Size 을 100MB일경우 ) Mining 데이터를 Table 로저장시 Tablespace 확인후작업을해야하며추후꼭 Drop 처리를해야한다 1.3. Logminer 활용예제 관련 View 및 Package 1) V$LOGMNR_CONTENTS - 현재분석되고있는 log file 의내용 2) V$LOGMNR_DICTIONARY - 사용중인 dictionary file 3) V$LOGMNR_LOGS 분석에사용되고있는 log file 4) V$LOGMNR_PARAMETERS - 에 Setting 된현재의 parameter 의값 5) dbms_logmnr Package (start, end, new, addfile, remove) - 4 -

1.3.1. 사용자실수로데이터를변경 (delete, insert, update) 후 Logminer로복구하기 데이터삭제하기 SQL> delete adress where name=' 정철우 '; 1 row deleted. SQL> select * from adress where name=' 정철우 '; no rows selected 위와같이 data 가 delete 된경우해당시점을명확히알고있거나최소한해당날짜 라도정확히알고있다면다음과같은방법으로해당데이터를복구할수있다. Dictionary file 을등록한다. (UTL_FILE_DIR Parameter 설정되어있어야함 ) SQL> execute dbms_logmnr_d.build - (dictionary_filename => 'dictionary.ora', - dictionary_location => '/oracle/ora9/dict', - options => dbms_logmnr_d.store_in_flat_file); 해당시점의 logfile 을확인 SQL> alter session set nls_date_format='yyyy-mm-dd HH24:MI:SS'; Session altered. SQL> select group#, sequence#, status, first_time from v$log GROUP# SEQUENCE# STATUS FIRST_TIME ----------------------------------- ---------- ---------------- ------------------- 1 1259 INACTIVE 2007-08-2921:09:00 2 1261 CURRENT 2007-08-30 15:43:12 3 1260 INACTIVE 2007-08-2921:12:55 여기서 group# 과 first_time( 해당 logfile 의기록이시작된시간 ) 을확인해보면몇번 logfile 이해당시점인지확인할수있다. Ex) 15:50 분에복구해야할트랜잭션이있었다면 2번 redo log file 을읽어와야함을알수가있다. 한가지주의할점은 redo log file 의경우파일의내용이 log switch 가발생하면서계속변동이발생하기때문에현시점이아닌특정시점의내용을 redo log 에서는찾기란거의불가능하다. 위의 v$log 에서확인한시간도 DB가운영중이라면계속변동이발생하기때문에, archive log file 을사용하여야정확한시점의내용을찾을수가있다. 가장확실한방법은 Logminer 에해당 log file 을등록후 v$logmnr_logs 뷰를조회하는것이다. - 5 -

exec dbms_logmnr.add_logfile('/data/ora9/redo03.log', dbms_logmnr.new); exec dbms_logmnr.add_logfile('/data/ora9/redo01.log', dbms_logmnr.addfile); exec dbms_logmnr.add_logfile('/data/ora9/redo02.log', dbms_logmnr.addfile); SQL> select filename, low_time, high_time from v$logmnr_logs; FILENAME LOW_TIME HIGH_TIME ------------------------------ ------------------- ------------------- /data/ora9/redo01.log 2007-08-29 21:09:00 2007-08-29 21:12:55 /data/ora9/redo03.log 2007-08-29 21:12:55 2007-08-30 15:43:12 /data/ora9/redo02.log 2007-08-30 15:43:12 1988-01-01 00:00:00 ->CURRENT ARCHIVE LOG FILE 도위와같은방법으로확인하거나, 아래의뷰를이용하여완료시간을확인하면된다. SQL> exec dbms_logmnr.add_logfile('/data/arch/1_1259.dbf', dbms_logmnr.new); exec dbms_logmnr.add_logfile('/data/arch/1_1260.dbf', dbms_logmnr.addfile); exec dbms_logmnr.add_logfile('/data/arch/1_1261.dbf', dbms_logmnr.addfile); SQL> select filename, low_time, high_time from v$logmnr_logs; FILENAME LOW_TIME HIGH_TIME ------------------------------ ---------------------------------------------------- ------------------- /data/arch/1_1259.dbf 2007-08-29 21:09:00 2007-08-29 21:12:55 /data/arch/1_1260.dbf 2007-08-29 21:12:55 2007-08-30 15:43:12 /data/arch/1_1261.dbf 2007-08-30 15:43:12 2007-08-30 16:18:36 또는 SQL> select name, completion_time from v$archived_log; NAME COMPLETION_TIME (archive 완료시간 ) ------------------------------ - -------------------------------------- /data/arch/1_1259.dbf 2007-08-29 21:12:56 /data/arch/1_1260.dbf 2007-08-30 15:43:12 /data/arch/1_1261.dbf 2007-08-30 16:18:36 여기서대략 8 월 29~30 일경에해당데이터가삭제된것을알고있다면다음과같은 방법으로복구가가능하다. SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'; SQL> execute dbms_logmnr.start_logmnr( - dictfilename => '/oracle/ora9/dict/dictionary.ora', - starttime => '2007-08-29 22:00:00', - - 6 -

endtime => '2007-08-30 16:15:00') SQL> select sql_undo, sql_redo from v$logmnr_contents 2 where username='test' 3 and seg_name='adress' 4 and operation ='DELETE'; SQL_UNDO SQL_REDO ---------------------------------------- ---------------------------------------- insert into "TEST"."ADRESS"("NAME","MOBI LE","HOME","WORK","EMAIL","MEMO","BIRTHD AY") values (' 정철우 ','011-9901-7811','0 2-2603-5596','070-7017-4194','roka1002@y ahoo.co.kr','oracle','1978-01-01'); delete from "TEST"."ADRESS" where "NAME" = ' 정철우 ' and "MOBILE" = '011-9901-781 1' and "HOME" = '02-2603-5596' and "WORK " = '070-7017-4194' and "EMAIL" = 'roka1 002@yahoo.co.kr' and "MEMO" = 'ORACLE' a nd "BIRTHDAY" = '1978-01-01' and ROWID = 'AAAGINAAGAAAAAPAAo'; SQL_REDO 는사용자가 row 를삭제했던구문이고, SQL_UNDO 는이를 Rollback 위한 구문이므로, SQL_UNDO 를실행해주면해당 row 를복구할수있다. SQL> insert into "TEST"."ADRESS"("NAME","MOBILE","HOME","WORK","EMAIL","MEMO","BIRTHDAY") values (' 정철우 ','011-9901-7811','02-0000-0000','070-7017-4194','roka1002@o.co.kr','ORACLE','1900-01-01'); 1 row created. Commit; SQL> select name, mobile from adress where name=' 정철우 '; NAME MOBILE -------------------- -------------------- 정철우 011-9901-7811 정상적으로 row 가복구됨을확인할수있다. SQL> exec dbms_logmnr.end_logmnr -> Logminer 세션종료. 만약 delete, insert, update 명령등으로해당테이블의모든데이터를변경했다면 Sql_undo 는 1건이아닌해당테이블의 row 수만큼생성이된다. 이것은 rowid 단위로 log 가기록되기때문이다. 만약삭제된해당시점을정확히모를경우, 가용한 ARCHIVE LOG 를전부등록한후 - 7 -

execute dbms_logmnr.start_logmnr(dictfilename => '/oracle/ora9/dict/dictionary.ora'); 로 logmnr 세션을시작해서 v$logmnr_contents view 를찾으면된다. 이때 ARCHIVE LOG FILE 의개수와크기에따라더많은시간을필요로한다. 데이터가변경된것이많아서찾기가힘들때는해당결과값을 spool 명령어로저장후 PC 의검색기능등을이용해찾는게빠르다. 1.3.2. 특정시점에서데이터가변경되었을때 Logminer 로유저확인하기 SQL> drop table adress; Table dropped. SQL> select * From adress; ERROR at line 1: ORA-00942: table or view does not exist Logminer 를이용하면해당테이블을 DROP 한것이어느 Client 에서접근하여언제 작업하였는지를확인할수있다. 단이때 DDL 문 (ALTER, DROP, CREATE) 은 UNDO 정보는제공되지않으므로, 변경 된테이블의복구는굿어스기술노트 19 회에서소개한 FLASHBACK 이나 CLONE DB 등을이용하여복구하도록한다. 1 번챕터의데이터복구하기와같이 DICTIONARY FILE 생성과분석할 ARCHIVE LOGFILE 을등록하도록한다. 그다음 alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'; execute dbms_logmnr.start_logmnr( - dictfilename => '/oracle/ora9/dict/dictionary.ora', - starttime => '2007-08-29 22:00:00', - endtime => '2007-08-30 16:55:00') SQL> select timestamp, session_info, sql_undo, sql_redo from v$logmnr_contents where username='test' and seg_name='adress' and sql_redo like 'drop%'; TIMESTAMP SESSION_INFO SQL_UNDO SQL_REDO ------------------- ---------------------------------------------------------------------------------------- ---------- -------------------- 2007-08-30 16:54:52 login_username=test client_info= OS_username=oracl drop table adress; e9 Machine_name=test.nt OS_terminal=pts/1 OS_proce ss_id=19298 OS_program name=sqlplus@test.nt (TNS V1-V3) - 8 -

위의결과값을보시면 SQL_UNDO 란의공백을확인할수있다.(DDL 은 UNDO 안됨 ) 그리고 TIMESTAMP 컬럽에서해당 table 이 drop 된시간과 session_info 컬럼에서접속한 client 의 Machine_name 을확인하여어느유저가테이블을 drop 했는지를확인할수가있는것이다. 1.3.3. Toad에서 Logminer 쉽게사용하기 DBA 가주로사용하는 TOAD 나 ORANGE 같은 Tool 을사용하면좀더손쉽게 Logminer 에접근하는것이가능하다. 이러한 tool 을사용했을때의장점은 GUI 의직관적인인터페이스로손쉽게사용이가능하며, Logminer 시의부하가모두 tool 을실행하는 PC 에걸림으로써, DB 서버에부하를주지않으며, 결과값을엑셀파일이나, 텍스트파일등다양한포맷으로변환해, 필터등을이용해쉽게원하는값을추출할수있다는데있다. 여기에서는 Toad(9.0) 를이용한 Logminer 사용법을알아보도록하자. (Orange 도거의비슷함 ) 1. Logminer 시작 2. Dictionary file 설정 - 9 -

여기서 Use Dictionary in redo logs 를선택하면밑의 dictionary 생성창이활성화된다. 일반적으로, 기본적으로선택되어있는 online 방식을사용하면된다. 3. 분석할 Redo log 또는 Archive log file 선택 4. FTP 를이용하여 DB 서버에서 PC 로 Logfile download - 10 -

첫번째그림에서 Connect 버튼을누르면밑의 server setting 창이열리면서 FTP 로 LOGIN 할수있는정보를요구한다. (ARCHIVE DEST 는자동적으로찾음 ) 여기서정상적으로접속이이루어지면오른쪽화면처럼 ARCHIVE LOG LIST 가나오고여기서분석할 ARCHIVE 를선택하면된다. ( 연속된 FILE 을여러개선택가능 ) 5. 분석할 ARCHIVE LOG FILE 목록 다음과같이정상적으로분석할 LOG FILE 목록이보이게된다. 6. 분석할 FILE 의 SCN 및 TIMESTAMP 확인 다음과같이자동으로해당 LOG FILE 의첫번째파일의시작 SCN 및 TIMESTAMP 와마지막파일의 SCN 및 TIMESTAMP 가보여지게되며, 사용자가범위안에서임의 로원하는값을수정할수있다. - 11 -

7. Log 에서읽어올 Colum 값선택 다음과같이읽어올 Colum 값을선택할수있다. 해당트랜잭션의발생시간 ( TIMESTAMP) 트랜잭션을발생시킨세션의정보 (Session info) 해당오라클 USER 명 (Username) 실행된 SQL 정보 (SQL REDO) ROLLBACK 할 SQL 정보 (SQL_UNDO) Colum을선택후초록색화살표를클릭하면 Logminer 가시작이된다. 8. Logminer 결과값화면 위화면에서마우스오른쪽버튼를누른후 Save Grid 를선택. - 12 -

9. 해당결과값을 EXCEL file format 으로변환 ` Save Grid 를선택하면 Excel format 으로 Logminer 결과값을저장할수있다. 10. 생성된 EXCEL File Excel file 로변환후 Filter 등을이용하면손쉽게원하는값만을찾는것이가능하다. - 13 -

11. Logminer 시 DB 서버 ( 위 ) 와 Tool 를실행하는 PC( 아래 ) 의부하비교 위의그림을보면 Toad 를이용하여 Logminer 진행시 DB 서버 ( 위 ) 에는 CPU Idle 이 99% 로 부하가거의없고 clinet ( 아래 ) 에는 Toad 에서 CPU 를 99% 이용함을볼수있다. - 14 -

1.3.4. Logminer시발생하는 Error 및조치방법 ERROR at line 1: ORA-01282: date range specified is invalid ORA-06512: at "SYS.DBMS_LOGMNR", line 53 ORA-06512: at line 1 원인 : 지정한날짜및시간이해당 LOGFILE 의범위에없을때발생. 조치 : 날짜및시간을적절한값으로수정 (v$logmnr_logs view 참고 ) ERROR at line 1: ORA-01291: missing logfile ORA-06512: at "SYS.DBMS_LOGMNR", line 53 ORA-06512: at line 1 원인 : 잘못된 Logfile 을등록했을때발생조치 : Logfile 의이름및연속된 logfile 인지확인 ERROR at line 1: ORA-01861: literal does not match format string ORA-06512: at line 1 원인 : 잘못된포맷 ( 날짜시간등 ) 을사용했을때발생조치 : alter session set nls_date_format 명령으로정확한 DATE 값지정 ERROR at line 1: ORA-01284: file /data/arch/1_1257.log cannot be opened ORA-00308: cannot open archived log '/data/arch/1_1257.log' ORA-27037: unable to obtain file status 원인 : 해당파일에접근할수없을때발생조치 : 정확한디렉토리경로및권한확인 ERROR at line 1: ORA-01306: dbms_logmnr.start_logmnr() must be invoked before selecting from v$logmnr_contents 원인 : Logminer 세션이종료된상태이다. 조치 : SQL PLUS 에서 EXIT 로 Logout 하면발생하며, 이때 Dictionary file 등록부터다시진행하여야한다. - 15 -

1.4. V$LOGMNR_CONENTS API Type Description SCN NUMBER System change number (SCN) when the database change was made CSCN NUMBER System change number (SCN) when the transaction committed; only meaningful if the COMMITTED_DATA_ONLY option was chosen TIMESTAMP DATE Timestamp when the database change was made COMMIT_TIMESTAMP DATE Timestamp when the transaction committed; only meaningful if the COMMITTED_DATA_ONLY option was chosen THREAD# NUMBER Number of the thread that made the change to the database XIDUSN NUMBER Transaction ID undo segment number of the transaction that generated the change XIDSLT NUMBER Transaction ID slot number of the transaction that generated the change XIDSQN NUMBER Transaction ID sequence number of the transaction that generated the change SEG_OWNER VARCHAR2(32) Owner of the modified segment SEG_NAME VARCHAR2(256) Name of the modified data segment TABLE_NAME VARCHAR2(32) Name of the modified table (in case the redo pertains to a table modification) SEG_TYPE NUMBER Type of the modified data segment 0 = UNKNOWN 1 = INDEX 2 = TABLE ex) SEG_NAME = ZORD_SVC 19 = TABLE PARTITION ex) SEG_NAME = ZORD_SVC_HST,PR_2007 20 = INDEX PARTITION 34 = TABLE SUBPARTITION All other values = UNSUPPORTED SEG_TYPE_NAME VARCHAR2(32) UNKNOWN INDEX TABLE - 16 -

TABLE PARTITION UNSUPPORTED TABLE_SPACE ROW_ID VARCHAR2(18) Row ID of the row modified by the change (only meaningful if the change pertains to a DML) SESSION# NUMBER Session number of the session that made the change USERNAME VARCHAR(30) Name of the user who executed the transaction SESSION_INFO VARCHAR2(4000) Information about the database session that executed the transaction Contains process information, machine name from which the user logged in etc (login_username, client_info, OS_username, Machine_name, OS_program_name) EX) login_username=apps client_info= OS_username=invb01 Machine_name=nngmpbt1 OS_terminal= OS_process_id=17465 OS_program_name=ZINVBCAL00010@nngmpbt1 (TNS V1-V3) ROLLBACK NUMBER 1 = if the redo record was generated because of a partial or a full rollback of the associated transaction 0 = otherwise OPERATION VARCHAR2(32) User level SQL operation that made the change INSERT = change was caused by an insert statement UPDATE = change was caused by an update statement DELETE = change was caused by a delete statement DDL = change was caused by a DDL statement START = change was caused by the start of a transaction COMMIT = change was caused by the commit of a transaction ROLLBACK = change was caused by a full rollback of a transaction SELECT_FOR_UPDATE = operation was a SELECT FOR UPDATE statement INTERNAL = change was caused by internal operations initiated by the database UNSUPPORTED = change was caused by operations not currently supported by OPERATION_CODE NUMBER Number of the operation code - 17 -

0 = INTERNAL 1 = INSERT 2 = DELETE 3 = UPDATE 5 = DDL 6 = START 7 = COMMIT 25 = SELECT_FOR_UPDATE 36 = ROLLBACK 255 = UNSUPPORTED SQL_REDO VARCHAR2(4000) Reconstructed SQL statement that is equivalent to the original SQL statement that made the change SQL_UNDO VARCHAR2(4000) Reconstructed SQL statement that can be used to undo the effect of the original statement that made the change - 18 -

2. Pro-Active Tuning Service 2.1. 실제사용자 (End-User) 관점의응답시간튜닝 Pro-active tuning service 는사용자관점의모니터링및분석을통하여실제 End-User 가느끼는응답시간 (Response Time) 을튜닝합니다. APM(Application Performance Management) 툴을이용하여 End-User 의 Request 결과를반환받기까지의모든구간 (Client PC, Internet 구간, FireWall, DNS, Web Server, WAS, DBMS) 을분석하여가장 Delay Time 이많이소요된구간을찾아냅니다. ISP Backb one ISP Client Time Internet Time Firewall Time DNS Time Backend Systems Time 2.2. 최상의성능상태로비즈니스고가용성을유지 Pro-Active Tuning Service 매업무단위프로젝트마다참여하여업무적용 (Open) 前문제요소를분석하여튜닝. 단위업무적용 (Open) 후매 3 개월 ( 데이터량갱신주기 ) 마다튜닝포인트를설정, 성능둔화요소를해결. 전사적으로새롭게추가되는업무단위프로젝트의모든 SQL 쿼리를검토및튜닝. 다양한대용량데이터베이스관리 / 튜닝기법을도입하여최적의 DB 상태를 1 년내내상시유지. 전략적튜닝 Factor 를분석, 투자대비효율이높은 Targeting 기법적용. ( 비중도높은 SQL 을튜닝함 ) - 19 -

2.3. Knowledge Transfer Pro-Active Tuning Service 는고객의 Business Process 를이해하고시스템을분석한후튜닝하는것으로완료되지않습니다. 실제로고객사환경에서튜닝한내용을그대로실무자들에게전수하여내부임직원의역량을제고시킵니다. 또한, Oracle RDBMS 신버젼의 New Features 를교육함으로써, 이용자 ( 관리자및개발자 ) 가스스로개발업무의효율및생산성을향상시킬수있도록지원합니다. 이외에도 DBMS 관리자를위한관리노하우 ( 고급 Trouble-Shooting, 대용량 DB 처리, 병렬처리등 ) 를전수함으로써, 최상의시스템을최고의기술로유지할수있도록지원합니다. UAS (User Adapted Seminar) 진행사례및내용 (Contents) 개발자를위한 SQL 튜닝실무사례세미나 G 쇼핑몰업체튜닝후실제고객사의튜닝사례를개발자들에게전수하여개발자들이성능을고려한 SQL 을작성할수있도록내부역량을제고시킴. Oracle 10g New Features 세미나 S Global 전자기업 : Oracle 10g 버전으로업그레이드하기전, 신버전의새로운기능과주의사항을전파함으로써, 업그레이드후발생할수있는문제점의사전제거와개발자들이새로운기능을이용함으로써, 개발생산성을향상시킴. K 국가기관 DBMS 관리노하우세미나내부관리자 (DBA,SE) 들을대상으로 DBMS 관리자들이흔히겪을수있는상황에대한 Administration Know-How 와고급 Trouble-Shooting 사례를소개함으로써, 관리기술력을향상시킴. 2.4. Tuning 범위확대 Pro-active tuning service 의제공범위는제한된 Database, 제한된 Server 에국한되지않으며, 고객사전체의 Server+DB 를대상으로그범위를확대함으로써고객사전체 Performance 향상에기여합니다. - 20 -

2.5. 기대효과 2.5.1. 재무적관점 기존 Tuning Service 는주로 System Performance 향상에따른업무트레픽감소에초점이맞춰져있었습니다. Pro-actvice 서비스는 Tuning 작업을통한업무처리시간단축뿐만아니라, 업무처리시간단축으로가져올수있는재무적성과를가능하게합니다. 2.5.2. 서비스관점 단기적성능향상에맞추어진기존 Tuning 서비스는계약된 system 및 Database 를서비스대상으로하기때문에전사적인차원의성능향상을기대하기어려웠습니다. Proactive tuning service 는계약기간동안주요비즈니스 Factor 별로 SLA 를정하여 Tuning consulting 을수행함으로써서비스자체의안정성을제고할수있습니다. - 21 -

2.5.3. 사용자관점 Proactive tuning service 는계약종료시점작업한 Tuning 산출물을통한기술전수세미나를진행함으로서고객사의사용자가실무에서바로적용가능한기술을전수함과동시에, 계약기간종료후에도 Proactive tuning service 를유지할수있는방향을제시합니다. 2.5.4. 혁신적관점 - 22 -

2.6. 제안 Package별가격 2.6.1. DBMS Tuning ( 단위 : 천원 ) 상품 집중 Tuning 정기 Tuning Total 시간 시간당 List Price 할인가 할인률 Package1 1주 (5일) 1 일 / 분기 40H + 24H 8H*5D 8H*3Q = 64H (8D) = 40H = 24H 200 12,800 12,000 6.3 % Package2 2주 (10일) 1일 / 월 80H + 88H 8H*10D 8H*1D*11M = 168H (21D) = 80H = 88H 200 33,600 30,000 10.7 % Package3 3주 (15일) 2일 / 월 120H + 176H 8H*15D 8H*2D*11M = 296H (37D) = 120H = 176H 200 59,200 50,000 15.5 % Package4 4 주 (1 개월 ) 3일 / 월 160H + 264H 8H*20D 8H*3D*11M = 424H (53D) = 160H = 264H 200 84,800 68,000 19.8 % 집중 Tuning 이나정기 Tuning 의시간을사용자교육 (UAS) 로전환하실수있습니다. Tuning 대상 Instance 를고정하지않습니다. 2.6.2. DBMS Tuning+ APM + NA ( 단위 : 천원 ) 상품집중 Tuning 정기 Tuning Total 시간시간당 List Price 할인가할인률 1주 (5일) 1 일 / 분기 40H + 24H Package5 8H*5D 8H*3Q = 64H (8D) = 40H = 24H 추가 1 일당 2,000,000 원이책정됩니다. 250 16,000 15,000 6.3 % 2.6.3. Server (H/W, OS) Tuning + Storage 재구성컨설팅 + DBMS Tuning ( 단위 : 천원 ) 상품집중 Tuning 정기 Tuning Total 시간시간당 List Price 할인가할인률 1 주 (5 일 ) 1 일 / 분기 Package6 40H + 24H 8H*5D 8H*3Q Athena = 64H (8D) = 40H = 24H 추가 1 일당 2,000,000 원이책정됩니다. 250 16,000 15,000 6.3 % - 23 -

2.7. Package 설명 내용설명 집중 Tuning 정기 Tuning User Adapted Seminar Package5 Package6 Target DB 의산정된 Tuning 기간에따라, 성능이저하된 DB 를최적의성능을발휘할수있도록집중적인 Tuning 을실시합니다. Database Server Tuning, Database Instance Tuning, Database Object Tuning, Database SQL Tuning 집중 Tuning 을통해서향상된최적의성능을지속적으로유지하기위하여, 정기적으로 Tuning 을실시하여, 업무추가 / 변경, Data 증가등으로인한성능저하의요인을찾아최적의성능을유지할수있도록정기적으로 Tuning 을실시합니다. 장기적관점의관리운영 Know-How 전파합니다. 내부관리자 (DBA,SE) 대상 DBMS Administration Know-How 와사례소개함으로써, 관리기술력을향상할수있습니다. 개발자대상최적의 SQL 을작성할수있는 Skill 을전파합니다. DBMS Tuning 뿐만이아니라, DB 및 Network 에대한 Advanced Trouble Shooting 을실시합니다. ( 예를들어, 고객사의본사에서는속도가빠른데, 지사에서는느릴경우, 해결되지않는 Database 의복구 ) 사용중인고가의 System 의최적화여부를진단해서튜닝을실시합니다. Server(Hardware, O/S), Storage 구성상태를진단하여, 최상의성능을발휘할수있도록 Tuning 을실시합니다, - 24 -

2.8. Promotion Promotion 기간 2007 년 9 월 1 일 ~ 2007 년 11 월 31 일 3 개월간 ( 단위 : 천원 ) 상품 Total 시간 List Price 특전 1 특전 2 특전 3 시간당금액무상정밀진단시간당할인가추가할인 할인률 Package1 Package2 Package3 Package4 40H + 24H = 64H (8D) 80H + 88H = 168H (21D) 120H + 176H = 296H (37D) 160H + 264H = 424H (53D) 200 12,800 1 일 무상 150 9,600 9,000 29.7% 200 33,600 1 일 무상 150 25,200 25,000 25.6% 200 59,200 1 일 무상 150 44,400 44,000 25.7% 200 84,800 1 일 무상 150 63,600 63,000 25.7% Promotion 기간중계약하시는모든고객에게아래의특전이주어지며, 계약여부와관계없이무상진단을제공합니다. Promotion 특전 1 : Database 무상 Analysis (Max 3 Instances) Promotion 특전 2 : Package 구매시, 시간당 15 만원으로할인적용 Promotion 특전 3 : Package 별추가할인적용 집중 Tuning 이나정기 Tuning 의시간을사용자교육 (UAS) 로전환하실수있습니다. Tuning 대상 Instance 를고정하지않습니다. 담당자연락처권웅원과장 011-514-6678 070-7017-4206 김승필대리 011-9096-4919 070-7017-4129-25 -

- 26 -