Oracle 데이터베이스 로그 보기 도구 LogMiner 사용 설명
11318 단어 Oacle 데이터베이스
Oracle 데이터베이스 에서 로 그 를 보 는 방법 은 매우 많 습 니 다. 우 리 는 SQL 문장 에 따라 실현 할 수 있 고 로그 조회 도구 인 LogMiner 를 통 해 실현 할 수 있 습 니 다. 본 고 는 주로 이 과정 을 소 개 했 습 니 다. 다음은 우리 가 함께 알 아 보 겠 습 니 다.
1. Oracle 로그 의 경로
로그 인: sqlplus "/ as sysdba"
보기 경로: SQL > select * from v $logfile;
SQL> select * from v$logfile;(\ # 로그 파일 경로)
2. Oracle 로그 파일 은 어떤 내용 을 포함 합 니까?
- control01.ctl example01.dbf redo02.log sysaux01.dbf undotbs01.dbf
- control02.ctl redo03.log system01.dbf users01.dbf
- control03.ctl redo01.log SHTTEST.dbf temp01.dbf
3. Oracle 로그 조회 방법
SQL>select * from v$sql (\ # 최근 작업 보기)
SQL > select * from v $sqlarea (\ # 최근 작업 보기)
Oracle 데이터베이스 의 모든 변경 사항 은 로그 에 기록 되 어 있 습 니 다. 현재 로 서 는 Oracle 로 그 를 분석 하 는 유일한 방법 은 Oracle 회사 가 제공 하 는 LogMiner 를 사용 하 는 것 입 니 다. 원시 로그 정 보 를 알 아 볼 수 없 기 때 문 입 니 다. Oracle 8i 후속 버 전에 서 LogMiner 를 가 져 왔 습 니 다. LogMiner 는 로그 정 보 를 알 아 보 는 도구 입 니 다.이 도 구 를 통 해 데이터 뱅 크 의 논리 적 변경 을 밝 히 고 사용자 의 오 작 동 을 정찰 하고 수정 하 며 사후 감 사 를 실시 하고 변화 분석 을 수행 할 수 있다.
4. LogMiner 의 사용
1. 데이터 사전 파일 만 들 기 (data - dictionary)
1). 우선 init. ora 초기 화 매개 변수 파일 에 매개 변수 UTL 을 추가 합 니 다.FILE_DIR, 이 매개 변 수 는 서버 에 데이터 사전 파일 을 설치 하 는 디 렉 터 리 입 니 다.UTLFILE_DIR = ($ORACLE HOME \ logs), 데이터 베 이 스 를 다시 시작 하여 새로 추 가 된 인자 가 적 용 됩 니 다.
SQL> shutdown;
SQL>startup;
2). 그리고 데이터 사전 파일 만 들 기
- SQL> connect /as sysdba
- SQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora',dictionary_location => '/data1/oracle/logs');
- PL/SQL procedure successfully completed
2. 분석 할 로그 파일 목록 만 들 기
1). 분석 목록, 즉 분석 할 로 그 를 만 듭 니 다.
- SQL>execute dbms logmnr.add logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.new);
- PL/SQL procedure successfully completeds
2). 분석 로그 파일 을 추가 하고 한 번 에 1 개 를 추가 하 는 것 이 좋 습 니 다.
- SQL>execute dbms_ logmnr.add_ logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.ADDFILE);
- PL/SQL procedure successfully completed
3. LogMiner 를 사용 하여 로그 분석 (구체 적 으로 어떤 내용 을 조회 하면 스스로 수정 할 수 있 습 니까?)
(1) 무제 한 조건
SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/data1/oracle/logs/v816dict.ora ');
(2) 제한 조건 이 있다
통과 대 과정 DBMSLOGMNR.START_로그 파일 을 분석 할 범 위 를 줄 일 수 있 는 몇 개의 서로 다른 매개 변수의 설정 입 니 다.시작 시간 과 종료 시간 파 라미 터 를 설정 함으로써 특정한 시간 범위 의 로그 만 분석 하 는 것 을 제한 할 수 있 습 니 다.아래 의 예 를 들 어 우 리 는 2007 년 9 월 18 일의 일 지 를 분석 할 뿐이다.
- SQL> EXECUTE dbms_logmnr.start_logmnr(
- DictFileName => ' /data1/oracle/logs/ v816dict.ora ',
- StartTime => to_date('2007-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')
- EndTime => to_date(''2007-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));
또한 초기 SCN 과 SCN 까지 설정 을 통 해 로 그 를 분석 할 범 위 를 제한 할 수 있 습 니 다.
- SQL> EXECUTE dbms_logmnr.start_logmnr(
- DictFileName => ' /data1/oracle/logs/ v816dict.ora ',
- StartScn => 20,
- EndScn => 50);
4. 분석 결과 관찰 (v $logmnr contents)
지금까지 로그 파일 을 다시 만 드 는 내용 을 분 석 했 습 니 다.동적 성능 보기 v $logmnrcontents 는 LogMiner 가 분석 한 모든 정 보 를 포함 합 니 다.SELECT sql_redo FROM v$logmnr_contents;만약 에 우리 가 특정한 사용자 가 특정한 표 에 대한 조작 만 알 고 싶다 면 아래 의 SQL 조 회 를 통 해 얻 을 수 있 습 니 다. 이 조 회 는 사용자 DB 를 얻 을 수 있 습 니 다.ZGXT 시계 SBDJ JL 이 하 는 모든 일.
SQL> SELECT sql_redo FROM v$logmnr_contents WHERE username='DB_ZGXT' AND tablename='SB_DJJL';강조해 야 할 것 은 보기 v $logmnrcontents 에서 의 분석 결 과 는 우리 가 실행 하 는 과정 에서 만 'dbmslogmrn.start_logmnr '이 세 션 의 생명 기 에 존재 합 니 다.이 는 모든 LogMiner 가 PGA 메모리 에 저장 되 어 있 고, 모든 다른 프로 세 스 는 이 를 볼 수 없 으 며, 프로 세 스 가 끝나 면서 분석 결과 도 사라 지기 때문이다.마지막, 사용 과정 DBMSLOGMNR.END_LOGMNR 이 로그 분석 업 무 를 종료 하면 PGA 메모리 영역 이 제거 되 고 분석 결과 도 존재 하지 않 습 니 다.
5. LogMiner 도구 분석 결과 보기
- SQL> select * from dict t where t.table_name like '%LOGMNR%';- logmnr
- TABLE_NAME COMMENTS
- ------------------------------ --------------------------------------------------------------------------------
- GV$LOGMNR_CALLBACK Synonym for GV_$LOGMNR_CALLBACK
- GV$LOGMNR_CONTENTS Synonym for GV_$LOGMNR_CONTENTS
- GV$LOGMNR_DICTIONARY Synonym for GV_$LOGMNR_DICTIONARY
- GV$LOGMNR_LOGFILE Synonym for GV_$LOGMNR_LOGFILE
- GV$LOGMNR_LOGS Synonym for GV_$LOGMNR_LOGS
- GV$LOGMNR_PARAMETERS Synonym for GV_$LOGMNR_PARAMETERS
- GV$LOGMNR_PROCESS Synonym for GV_$LOGMNR_PROCESS
- GV$LOGMNR_REGION Synonym for GV_$LOGMNR_REGION
- GV$LOGMNR_SESSION Synonym for GV_$LOGMNR_SESSION
- GV$LOGMNR_STATS Synonym for GV_$LOGMNR_STATS
- GV$LOGMNR_TRANSACTION Synonym for GV_$LOGMNR_TRANSACTION
- V$LOGMNR_CALLBACK Synonym for V_$LOGMNR_CALLBACK
- V$LOGMNR_CONTENTS Synonym for V_$LOGMNR_CONTENTS
- V$LOGMNR_DICTIONARY Synonym for V_$LOGMNR_DICTIONARY
- V$LOGMNR_LOGFILE Synonym for V_$LOGMNR_LOGFILE
- V$LOGMNR_LOGS Synonym for V_$LOGMNR_LOGS
- V$LOGMNR_PARAMETERS Synonym for V_$LOGMNR_PARAMETERS
- V$LOGMNR_PROCESS Synonym for V_$LOGMNR_PROCESS
- V$LOGMNR_REGION Synonym for V_$LOGMNR_REGION
- V$LOGMNR_SESSION Synonym for V_$LOGMNR_SESSION
- TABLE_NAME COMMENTS
- ------------------------------ --------------------------------------------------------------------------------
- V$LOGMNR_STATS Synonym for V_$LOGMNR_STATS
- V$LOGMNR_TRANSACTION Synonym for V_$LOGMNR_TRANSACTION
GV$LOGMNR_LOGS 는 로그 목록 보 기 를 분석 한 결과 GV $LOGMNRCONTENTS 보기에 서 다음 문장 을 누 르 면 조회 할 수 있 습 니 다.
- select scn,timestamp,log_id,seg_owner,seg_type,table_space,data_blk#,
- data_obj#,data_objd#,session#,serial#,username,session_info,sql_redo,sql_undo
- from logmnr3 t where t.sql_redo like 'create%';
GV $LOGMNR 을 제대로 조회 하지 못 하면CONTENTS 보기, 다음 오 류 를 보고 합 니 다. ORA - 01306: v $logmnr 에서contents 에서 선택 하기 전에 dbms 를 호출 해 야 합 니 다.logmnr.start_logmnr() 。다음 과 같은 방법 을 사용 할 수 있 습 니 다.
- create table logmnr3 as select * from GV$LOGMNR_CONTENTS;
Oracle 데이터베이스 로그 보기 도구 LogMiner 의 사용 에 관 한 지식 은 여기까지 입 니 다. 이번 소개 가 당신 에 게 얻 을 수 있 기 를 바 랍 니 다!