2012-05-24 5 views
2

누군가 (또는 무엇인가)가 실제로 내 테이블의 값을 잘못 업데이트했습니다. 업데이트가 언제 발생했는지 알아 내려고합니다. 불행하게도, 상기 테이블에 대해 생성되는 감사 트리거는 없다.Oracle DB 감사 추적

언제 어떤 SQL 문이 실행되었는지 확인하고 확인할 수있는 다른 방법이나 로그가 있습니까?

나는 $$ sql 테이블을 보려고했지만 데이터베이스에서 수행되는 모든 SQL 문을 테이블이 캡처하고 있다고 생각하지 않습니다. 예 : 특히 UPDATE 문을 수행했지만 v $ sql 테이블에 캡처되지 않았습니다.

redo.log를 볼 수 있습니까? 그러나, 나는이 로그를 해석하는 방법을 모른다.

답변

2

진정한 옵션은 logminer이며, 이는 희미한 마음을위한 것이 아닙니다.

문서

은 여기에 있습니다 : http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm

v$sql 행은 잠시 후에 세받을 수 있습니다. v$sql을 볼 때 대/소문자를 구분 했습니까?

select * from v$sql where upper(sql_fulltext) like '%UPDATE%'; 
+0

실제로 그것은 희미한 마음이 아닙니다. (redo.log를 읽을 수있는 다른 도구는 무엇입니까?) 또한 v $ sql을 볼 때 대/소문자 구분에 대해 설명했습니다. 행이 오래되었음을 알고 있지만 업데이트 한 레코드는 최근과 즉시입니다. – cooldude

+0

나는 두려워하지 않는다. – Phil