DB/Oracle Administrator

오라클 백업 및 복구(Log Miner)

soccerda 2012. 7. 6. 01:20
반응형
 
1. Log Miner는 무엇에 쓰는 물건인가?
RedoLog File은 바이너리 파일이기 때문에, vi 에디터로를 내용을 확인 할 수 없다. 이에 redolog 파일의 내용을 추출하여 보여줄 수 있는 툴이 있으니 그것이 바로 Log Miner 이다.

2. Supplemental logging
오라클을 설치하면 supplemental logging 설정이 기본값으로 Disable 되어 있다. 이는 오라클이 리두로그를 기록할 때 저장공간을 절약하기 위해 최소정보(Change Vector)만을 기록하기 때문이다. 이 때문에 로그마이너로 리두로그파일 분석 시 누락되는 트랜잭션이 생기게 되는 것이다. 이를 방지하기 위해서는 supplemental looging을 enable 하면 된다. 이 설정은 오라클이 리두로그 정보를 기록 할때 Change Vector 이외에 추가정보를 기록하게 함으로써, 사용자가(DBA)가 원하는 정보(완전한 sql 문장)를 볼 수 있게 한다.
1
2
3
4
5
6
7
8
-- supplemental logging 설정값 확인
select supplemental_log_data_min from v$database;
-- supplemental logging 활성화
alter database add supplemental log data;
-- supplemental logging 비활성화
alter database drop supplemental log data;


3. Log minier 사용과정
가. supplemental log 활성화
나. dictionary file 생성
다. 분석하고자 하는 log file 등록
라. log file 분석
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
32
33
34
35
36
37
38
39
-- supplemental log 활성화
alter database add supplemental log data;
-- 상태확인
select supplemental_log_data_min from v$database;
-- DB shutdown
shutdown immediate
-- 파라미터 파일에 utl_file_dir(딕셔너리 파일 경로) 추가
!vi /home/oracle/product/10g/dbs/inittestdb.ora
utl_file_dir='/data/logmnr'
-- DB open
startup
-- 딕셔너리 빌드
exec dbms_logmnr_d.build('dict.dat', '/data/logmnr');
-- 분석하고자 하는 log file 등록
-- 1: 신규등록, 2: 삭제, 3: 추가등록
exec dbms_logmnr.add_logfile('/home/oracle/oradata/testdb/redo01.log', 1);
-- 현재 로그마이너에 등록되어 있는 로그파일 현황보기
select db_name, filename from v$logmnr_logs;
-- 로그파일 분석하기1
exec dbms_logmnr.start_logmnr(dictfilename=>'/data/logmnr/dict.dat');
-- 로그파일 분석하기2 + 옵션주기
-- exec dbms_logmnr.start_logmnr(dictfilename=>'/data/logmnr/dict.dat', options=>dbms_logmnr.committed_data_only);
-- 로그파일 분석하기3 + 옵션주기
-- exec dbms_logmnr.start_logmnr(dictfilename=>'/data/logmnr/dict.dat', options=>dbms_logmnr.ddl_dict_tracking + dbms_logmnr.committed_data_only);
-- 분석결과 조회
select to_char(timestamp, 'RRRR-MM-DD:HH24:MI:SS') time, username, operation, sql_redo
from v$logmnr_contents
where seg_name='TEST_TABLE';


참고 : 현재 세션의 날짜출력 형식 바꾸기
alter session set nls_date_format='RRRR-MM-DD:HH24:MI:SS';


4. RedoLog 파일 장애와 대처방법

사용자 삽입 이미지

 

반응형