2013-02-19 3 views
2

다음 문제에 대한 가능한 해결책을 찾고 있습니다.다른 데이터베이스 간 데이터 동기화

첫 번째 상황 :
2 개의 데이터베이스, 1 개의 Oracle DB 및 1 개의 MySQL DB가 있습니다. 그들은 많은 공통점을 가지고 있지만 동일하지 않습니다. Oracle DB와 MySQL DB 모두에서 많은 테이블을 사용할 수 있지만 Oracle 테이블은 더 광범위하고 더 많은 열을 포함합니다. 데이터베이스의 상황을 변경할 수 없으므로이를 처리해야합니다.

이제 다음을 찾고 있습니다.
Oracle에서 MySQL로 데이터를 동기화하고 그 반대의 경우도 마찬가지입니다. 이 작업은 실시간으로 또는 가능한 한 실시간으로 수행되어야합니다. 따라서 하나의 DB에서 변경이 이루어지면 가능한 한 빨리 다른 DB와 동기화해야합니다.

또한 모든 테이블이 동기화되어 있지 않아야하므로 솔루션에서 동기화해야하는 테이블과 그렇지 않은 테이블을 선택하는 방법을 제공해야합니다.

데이터베이스가 동일하지 않기 때문에 복제는 제가 생각하는 옵션이 아닙니다. 그러나 무엇입니까? 여러분이이 작업을 수행하는 방법을 찾거나 내가 필요한 것을 정확히 수행 할 수있는 도구를 찾도록 도와 주시기 바랍니다. 아마 내가 사용할 수있는 좋은 논문/기사를 아십니까?

감사합니다.

+1

Pentaho와 같은 ETL 도구 사용 – Johan

+0

JDBC를 사용 하시겠습니까? 당신은 두 방향으로 갈 수 있어야합니다 ... – Ben

+0

당신이 말하는 것은 EAI와 비슷합니다. 꽤 까다로워 질 수 있습니다! EAI에서 읽어 보면 함정과 위험에 대한 좋은 지식을 얻을 수 있습니다. Wikipedia는 EAI에 좋은 101 (입문서)를 가지고 있으며 몇 가지 인기있는 공급 업체 및 리소스를 나열합니다 : http : //en.wikipedia.org/wiki/Enterprise_application_integration – tgolisch

답변

0

질문과 대답을 읽었습니다. 나는 양쪽 Oracle, SQL, ETL, 데이터웨어 하우스에 근무하고 여기에 내 제안 사항이 있습니다

  1. 그것은 기성품 ETL 도구를 가지고하는 것이 좋다. 그러나 응용 프로그램이 맞춤형 ETL 도구를 필요로 할만큼 충분히 크다면 집에서 만든 ETL 프로세스를 제안합니다.

    • 트랜잭션 데이터베이스가 Oracle에있는 경우 C, C++ 또는 Java로 작성된 외부 프로 시저를 트리거하는 키 테이블에 트리거를 설정할 수 있습니다.
    • 외부 프로 시저를 사용하는 이유는 한 번에 두 데이터베이스 (Oracle 및 MySQL)와 통신 할 수 있기 때문입니다.
    • 오라클 외부 절차 here에 대한 자세한 내용을 볼 수 있습니다.
  2. extProc을 사용하지 않으면 Java 또는 .Net으로 된 첫 번째 데이터베이스에서 데이터를 추출하고 비즈니스 규칙에 따라 변환하여웨어 하우스에로드하는 별도의 응용 프로그램을 개발할 수 있습니다.

어느 방법을 선택하든 레디 메이드 도구 대신 자신의 도구를 구현하면 ETL 프로세스를보다 잘 제어 할 수 있습니다.

1

의견에 감사드립니다.

ETL 및 EAI에 대한 추가 연구를 수행했습니다. ETL 도구를 찾고 있다는 것을 알았습니다.