2013-04-11 3 views
1

나는 학교의 시스템 관리자이기 때문에 나는 IT 일반 종사자 다. 우리의 학생 정보 시스템은 Oracle 11g에서 실행됩니다. logminer를 사용하여 데이터베이스에서 변경되지 않아야하는 것이 변경된 경우를 알아내는 방법을 알고 싶습니다.내가 logminer에서 원하는 것을 찾을 수 없다. 사실, 최근에 아무것도 찾을 수 없다.

시험용 서버를 구성 했으므로 마음을 편히 여기십시오. 여기서 게임하는 동안 생산 시스템이 위험하지 않습니다.

서버는 Windows입니다. 명령 프롬프트로 가서 sqlplus/as sysdba를 입력하십시오.

로그 파일을 추가하려면 dbms.logmnr.addlogfile blah, blah를 여러 번 실행하십시오.

변경 세션 집합 NLS_DATE_FORMAT = 'mm-dd-yyyy HH24:mi:ss'; 그래서 타임 스탬프는 단지 날짜 이상을 말해줍니다.

그런 다음 테스트 서버의 응용 프로그램으로 이동하여 학생 인구 통계 레코드를 변경합니다. Logminer를 사용하여이 변경 사항을 찾고 싶습니다.

은 내가 select timestamp,sql_undo from V$LOGMNR_CONTENTS WHERE TIMESTAMP > TO_DATE('04-11-2013 11:59:00');

내가 어떤 행을 얻을 (I 3 시경, 지금의 변화를 만든) 할.

같은 일을하지만 자정 직후 시간이 지나면 수천 개의 행이 생깁니다. 예를 들어 학생의 클래스 순위를 다시 계산하는 등 자정에 유지 관리를 시작하는 루틴이 있습니다.

그래서 내가 기록한 변경 사항을 찾지 못했습니다. 올바른 로그 파일을보고 있거나 자정에 활동을 보지 못했다고 생각합니다.

+0

당신이 찾고있는 것이'감사 '라고 생각합니다. 'AUDIT'는 특정 스키마/객체 + 정밀 감사 (fine grained auditing) 등에서 특정 사용자 활동, DML + DDL을 추적 할 수있게합니다. 로그 마이너는 다른 모든 옵션이 고갈되면 일반적으로 사용됩니다. 행운을 빕니다. – haki

답변

0

최근 항목이 기록되었지만 기록 된 업데이트 수가 충분할 때까지 V $ LOGMNR_CONTENTS에 표시되지는 않습니다. 예를 들어 100 건의 업데이트를 수행하면 80 건이 발생할 수 있습니다. 나머지 20 건을 삭제하려면 업데이트를 다시 볼 수 있도록 업데이트를 완료해야합니다. 우리는 logminer가 특히 최신 업데이트를 표시하지 않는 것과 비슷한 문제가있었습니다. logminer가 항상 업데이트를 적극적으로 표시하고 아무 것도 버퍼에 저장되지 않도록 정기적으로 업데이트를 만들기 위해 더미 테이블을 만들어야했습니다. 더미 테이블을 만드는 우리의 유스 케이스에서는 괜찮 았는데, 당신의 경우에 괜찮은지 확실하지 않습니다.

관련 문제