2010-11-18 8 views
2

Oracle Streams (리두 및 아카이브 로그의 로그 마이닝 용)를 사용하여로드가 많은 시스템에 대한 비동기 감사 추적 기능을 구현할 것입니다. 필자의 경우 감사 추적은 내 테이블 세트에 대한 DML 작업의 속도를 늦춰서는 안됩니다. 또한 감사에는 최종 사용자 ID 및 수정 날짜 및 시간에 대한 추가 정보가 포함되어야합니다.Oracle Streams를 사용하여 감사 추적 구현

Oracle Streams를 사용하여 감사 추적을 구현 한 경험이 있습니까? 이런 식으로 움직이는 것이 좋은 생각입니까?

Oracle Streams를 사용하여 감사 추적을 구현하는 데 대한 팁과 트릭이있는 자습서가 있습니까?

+0

Oracle Streams를 사용하여 기본 데이터베이스를 복제하고 원본 DB에 오버 헤드를 추가하지 않도록 대상 DB에 감사 내역을 추가하겠습니까? – kurosch

+0

@kurosch, 아니요, 제 경우에는 소스 및 대상 DB가 동일합니다 (감사를 위해 별도의 테이블 만 갖게됩니다). Oracle Streams를 사용하거나 다른 방법으로 감사 추적 기능을 구현할 예정이지만 DB에 오버 헤드를 추가하지는 않습니다. Oracle Streams는 그 목표를 달성하는 데 적합한 도구처럼 보입니다. 그러나 확실하지 않습니다. –

+0

Oracle Streams는 DML을 복제하기위한 것으로, 여기에 어떻게 적용되는지는 알 수 없습니다. 어떤 식 으로든 변경 사항을 캡처하고 어딘가에 감사 정보를 작성하려면 테이블에 트리거가 필요합니다. 이를 AQ로 사용하여 별도의 프로세스에서 소비하거나 기록하도록할지 또는 단순히 레코드를 로그 테이블에 삽입할지에 관계없이 모든 DML에 약간의 (그러나 적은 양의) 오버 헤드를 추가하게됩니다 – kurosch

답변

1

오라클은 데이터베이스의 감사 기능이 중요하지 않은 오버 헤드를 발생 시킨다고 주장합니다. 테스트 케이스로 사용하여 성능을 확인해 보셨습니까? 테이블에 DML 트리거가 필요하지 않습니다. 나는 그것들을 사용했고 눈에 띄는 차이점은 없지만 시스템 리소스는 최대치가되지 않았다.

소리를 감사하기 위해 스트림을 사용하는 것은 가능하지만 지나치게 복잡한 해결책이라고 생각합니다. 스트림을 사용하여 다른 데이터베이스로 트랜잭션을 복제 한 다음 해당 데이터베이스에서 감사를 사용할 수 있다고 가정합니다. 리두 로그를 저장할 때마다 I/O로드를 추가 할 것입니다.

0

@JOTN에 동의합니다. Wrat Oracles 스트림을 추가하는 또 하나의 방법은 12c에서 폐기되며 별도의 라이센스 비용으로 '골든 게이트'로 패키지되거나 제공됩니다.