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 파일 장애와 대처방법