문제

하나의 중앙 노드 및 Symmetricds를 사용하는 많은 클라이언트에 대해 다중 마스터 양방향 동기화를 구현하려고합니다. 클라이언트는 중앙 노드 (Star Topology)에서만 통신합니다. 기본 키의 충돌을 다루는 데 문제가 있습니다.

예를 들어 데이터베이스에는 열 ID, 이름, ... 중앙 DB에서 테이블 "사람"이 포함되어 있습니다.

  1. aaa
  2. bbb
  3. CCC
  4. 첫 번째 클라이언트 초기로드를 연결하고 다운로드하여 동일한 db가 있습니다. 두 번째 클라이언트는 동일합니다.

    이제 첫 번째 및 두 번째 클라이언트는 로컬 DB에서 새 행을 생성합니다. 첫째 :

    1. aaa
    2. bbb
    3. CCC
    4. DDD
    5. 두 번째 :

      1. aaa
      2. bbb
      3. CCC
      4. Eee
      5. 그들은 동기화를 시도하지만 4. 행에 충돌이 있습니다. 행. 이러한 충돌은 Symmetricds에서 쉽게 감지 할 수 있지만 이제는 삽입 될 때까지 증분 키를 통해 해결하고 변경 사항을 다시 보내고 싶습니다 ... 따라서 결과는 다음과 같습니다 :

        1. aaa
        2. bbb
        3. CCC
        4. DDD
        5. Eee
        6. 모든 데이터베이스에서

          . 어떻게 할 수 있니? 고맙습니다.

도움이 되었습니까?

해결책

멀티 마스터 양방향 시나리오를 다룰 때 자동 증가 PK를 사용하는 것이 좋지 않은 경우

표준 연습은 고객 간의 충돌을 피하기 위해 PK에 대한 GUID를 만드는 것입니다.

자세한 내용은 다음 사이트를 참조하십시오.

분산 환경에 적절한 기본 키 선택

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top