Oracle 11g se를 사용 중입니다.
동일 한 구조를 가진 A, B두개의 DB 서버가 있습니다. 물론 물리적으로 분리 되어 있습니다.
두 DB는 모두 Active 상태로 운영 중입니다.
이러한 상황에서 양쪽의 데이터 동기화 기능을 제공 하려고 자료를 찾아보니
오라클에서 제공하는 기능들은 모두 Enterprise 버전에서는 지원이 된다고 하네요 ...
현시점에서 Enterprise 버전을 사용하기는 어려움이 있어, 고민끝에 아래와 같은
방법을 생각해 보았습니다.
Trigger를 이용하여 각 테이블에서 발생되는 항목을 별도(Log 테이블정도?)의 데이블로
구성하여 저장 하고 이를 로드하여, 각 DB 에 저장하는 어플을 제작하자!!!
그래서, 그 어플을 A, B DB에 설치하고, B 의 어플은 A의 Log 테이블을, A의 어플은 B의
Log 테이블을 로드 하자!!!
여기까지는 별다른 문제가 안보입니다. 동기화 해야 하는 테이블이 많지 않고,
데이터 트랜젝션이 많지도 않은 테이블 이기에 ...
헌데 문제는 위의 경우, 양쪽에서 핑퐁을 치게 되리라 예상되어 ...
허면!!! 어떤 방법으로 핑퐁을 막을 것인가!!!??? 이 부분이 어렵네요 ...
혹시, A어플이 B의 Log를 읽어 A 디비에 적용하는 시점에서 Triger를 정지(?) 시키는 방법이
가능할까요 ?? 가능하다면 그게 좋은 방법일까요 ??
걍 Enterprise 쓰고 싶네요 ㅜㅠ |