2009-09-21 2 views
3

나는 여기서 새로운 도전에 직면 해있다. MS SQL 서버에 리눅스 박스에서 실행되는 MySQL의 복제 우선 순위를 찾지 못하는 것 같습니다.MySQL에서 MS SQL 로의 복제

아무도 이것을 전에 했습니까?

가장 중요한 것은 MySQL 데이터베이스에 대한 모든 변경 사항을 MS 데이터베이스에 실시간으로 복제하거나 닫아야한다는 것입니다. MS 데이터베이스는 다른 방법으로 업데이트되지 않으므로 양방향 기능이 필요하지 않습니다.


한 가지 방법은 바이너리 로그의 변경 사항을 읽는 것입니다. 이전에 구문 분석 한 사람이 있습니까?

도움 주셔서 감사합니다.

+1

복제 란 지속적인 동기화를 유지해야하는지 또는 데이터를 일시적으로 또는 일시적으로 이전하기를 원합니까? –

+0

죄송합니다. 나는 갱신한다. :) –

+0

아, 그래, 난 너를 도울 수 없어. :) MySQL Migration Toolkit을 살펴 보도록 제안했지만 양쪽 모두 변경하려는 경우에는 도움이되지 않습니다. –

답변

2

MySQL의 트리거를 사용하여 변경 사항을 포착하고 UDF를 호출하면 ODBC 쿼리를 MSSQL에 실행할 수 있습니다. 하지만 성능면에서는 끔찍한 것 같습니다.

  • 쓰기는 MySQL의에서 캡처 삽입, 업데이트 트리거 및 로그 테이블에서 문을 삭제 :

    는 즉시 복제가 필요하지 않은 경우.

  • ODBC를 사용하여 MSSQL의 로그 테이블을 폴링하고 실행 한 다음 해당 로그 항목을 삭제하십시오.

물론 T-SQL과 MySQL의 변형 된 SQL은 정확히 같지 않지만 사소한 CUD 연산에는 가깝습니다. DBSync 당신이 내가 비슷한 작업을했다

+0

고마워. 나는 응용 프로그램을 작성하는 경우 내 방법에서 비슷한 지점을 따라갈 것입니다. 성능 문제가 왜 발생합니까? –

+0

이 작업을 수행하는 유일한 효율적인 방법 인 것 같습니다 ... 큰 데이터 테이블을 동기화하는 데는 도구를 사용하는 데 너무 오래 걸릴 수 있으므로 거의 실시간 동기화를 수행 할 수 없습니다. 업데이트를 추적하여 반복 할 필요가있는 행의 수가 상당히 적어 업데이트를 효율적으로 실행할 수있었습니다. 감사합니다 Richard –

3

확인 확인합니다,하지만 난 실시간으로 MySQL의에 MSSQL 2008 복제했다.

이 응용 프로그램을 시도한 결과, http://enterprise.replicator.daffodilsw.com/이 작동했지만 제대로 작동하지 않았습니다. 하지만 내가 틀릴 수도 있다는 것을 확인할 수 있습니다.

마지막으로 나는 대신 인터페이스 OLE DB를 사용하고 대신 MySQL 대신 postgress를 사용하기로 결정했습니다. 제대로 작동합니다.

+0

DBSync가 있고 테스트를 거쳤으며 초기 마이그레이션을 위해 아름답게 작동합니다. 그러나 큰 datatable의 경우 몇 시간이 걸릴 수있는 전체 databale을 동기화하여 업데이트 만 수행 할 수 있습니다. 따라서 데이터 테이블에 대한 정기적 인 업데이트가 자주 발생하는 경우 효율적인 솔루션이 아닙니다. - 단순한 마이그레이션을위한 돈을 위해 매우 좋은 가치입니다 ... –

+0

... 나는 무효 데이터를 다루는 능력이 제한되어 있다고 덧붙이고 싶었습니다. : –

1

를 원하는 것을 할 도움이 될 것입니다 경우

+0

예. 우리는 방금이 도구를 실험하기 시작했습니다. 테스트중인 IT 직원은 내가 생각하는 것보다 더 확신합니다. :) Raj의 DBSync는 나에게 더 많은 자극을 줄뿐 아니라 79 달러에 불과합니다. –