오라클 10g 로그마이너
2011. 8. 31. 10:57ㆍOracle/Oracle Recovery
반응형
* 나는 핫백업이 끝나는 시점까지의 아카이브 파일들은 항상 백업을 해놓는다.
* 로그마이너를 사용하는데에 있어 내가 데이터를 삭제,수정한 시점을 대충이라도
기억을 하면 좀 더 수월한 작업이 진행 되지 않을까 생각된다.
* 만약 오후 4시 10분 쯤에 DML 작업을 하였고, 그 이후에 잘못되었다는 것을 알았을 때
archive 파일 쌓이는 곳을 확인하여 해당시간대에 쌓인 archive 파일을 dbms_logmnr 를 이용하여 복구 시킨다.
-rw-r----- 1 oracle dba 2769920 2011-08-30 16:07 1_17_760545262.dbf
* 로그마이너를 사용하는데에 있어 내가 데이터를 삭제,수정한 시점을 대충이라도
기억을 하면 좀 더 수월한 작업이 진행 되지 않을까 생각된다.
* 만약 오후 4시 10분 쯤에 DML 작업을 하였고, 그 이후에 잘못되었다는 것을 알았을 때
archive 파일 쌓이는 곳을 확인하여 해당시간대에 쌓인 archive 파일을 dbms_logmnr 를 이용하여 복구 시킨다.
-rw-r----- 1 oracle dba 2769920 2011-08-30 16:07 1_17_760545262.dbf
-rw-r----- 1 oracle dba 2712064 2011-08-30 16:08 1_18_760545262.dbf
-rw-r----- 1 oracle dba 2759680 2011-08-30 16:09 1_19_760545262.dbf
-rw-r----- 1 oracle dba 1183232 2011-08-30 16:11 1_20_760545262.dbf
-rw-r----- 1 oracle dba 120832 2011-08-30 16:12 1_21_760545262.dbf
-rw-r----- 1 oracle dba 62976 2011-08-30 16:13 1_22_760545262.dbf
-rw-r----- 1 oracle dba 103424 2011-08-30 16:19 1_23_760545262.dbf
-rw-r----- 1 oracle dba 156160 2011-08-30 16:20 1_24_760545262.dbf
-rw-r----- 1 oracle oinstall 51224064 2011-08-30 17:04 1_25_760545262.dbf
* archive 파일이 /oracle/oradata/arch에 쌓이지만,
arch_recovery라는 폴더를 생성하여 위 해당 파일들을 복사하였다.
cf. archive 파일 경로 확인 방법.
show parameter log_archive_dest
archive log list (sys계정에서만 가능)
* sys 접속
sqlplus "/as sysdba"
* archive 파일 등록
* archive 파일이 /oracle/oradata/arch에 쌓이지만,
arch_recovery라는 폴더를 생성하여 위 해당 파일들을 복사하였다.
cf. archive 파일 경로 확인 방법.
show parameter log_archive_dest
archive log list (sys계정에서만 가능)
* sys 접속
sqlplus "/as sysdba"
* archive 파일 등록
exec dbms_logmnr.add_logfile('/oracle/oradata/arch/arch_recovery/1_20_760545262.dbf');
exec dbms_logmnr.add_logfile('/oracle/oradata/arch/arch_recovery/1_21_760545262.dbf');
exec dbms_logmnr.add_logfile('/oracle/oradata/arch/arch_recovery/1_22_760545262.dbf');
exec dbms_logmnr.add_logfile('/oracle/oradata/arch/arch_recovery/1_23_760545262.dbf');
exec dbms_logmnr.add_logfile('/oracle/oradata/arch/arch_recovery/1_24_760545262.dbf');
* 등록된 archive 분석
exec dbms_logmnr.start_logmnr( options => dbms_logmnr.dict_from_online_catalog);
* 분석된 내용 조회
select * from v$logmnr_contents where operation = 'DELETE' and table_name = 'TEMP_DELETE_TABLE';
cf. v$logmnr_contents : 활성화되지 않으면 조회할수 없다. 아래와 같은 에러 발생.
ORA-01306: v$logmnr_contents에서 선택하기 전에 dbms_logmnr.start_logmnr()이 호출되어야 합니다
* 다른 계정으로 분석 데이터 복사.
create table scott.temp_logmnr_contents
select * from v$logmnr_contents where operation = 'UPDATE' and table_name='TEMP_DELETE_TABLE';
* dbms_logmnr 종료.
exec dbms_logmnr.end_logmnr;
* 데이터를 확인하여 보면 undo_sql과 redo_sql이 있다.
로그파일 특성상 쿼리문이 저장되기 때문에 쿼리가 그대로 보여지게 된다.
* 등록된 archive 분석
exec dbms_logmnr.start_logmnr( options => dbms_logmnr.dict_from_online_catalog);
* 분석된 내용 조회
select * from v$logmnr_contents where operation = 'DELETE' and table_name = 'TEMP_DELETE_TABLE';
cf. v$logmnr_contents : 활성화되지 않으면 조회할수 없다. 아래와 같은 에러 발생.
ORA-01306: v$logmnr_contents에서 선택하기 전에 dbms_logmnr.start_logmnr()이 호출되어야 합니다
* 다른 계정으로 분석 데이터 복사.
create table scott.temp_logmnr_contents
select * from v$logmnr_contents where operation = 'UPDATE' and table_name='TEMP_DELETE_TABLE';
* dbms_logmnr 종료.
exec dbms_logmnr.end_logmnr;
* 데이터를 확인하여 보면 undo_sql과 redo_sql이 있다.
로그파일 특성상 쿼리문이 저장되기 때문에 쿼리가 그대로 보여지게 된다.
반응형
'Oracle > Oracle Recovery' 카테고리의 다른 글
hot backup 중 대량의 DML 작업, 추후 해당 파일 깨졌을 시 어떻게 될까? (0) | 2012.09.23 |
---|---|
운영중인 자동관리 undo tablespace 가 깨졌을 시 (0) | 2012.05.09 |
데이터 삭제로 인한 복구(flashback) (0) | 2011.02.11 |
oracle10g Recyclebin (0) | 2008.11.30 |