문제

나는 이미 몇 가지 자원을 살펴 보았고 단지 명확히하고 의견을 얻고 싶어합니다.

우선, 우리는 기본 키로 아이덴티티 열을 스스로 생성하고 창조시 어느 때에도 항상 독특하다고 가정하고 두 가지 가치를 모두 복제 할 수있는 문제를 완전히 피할 수 없었습니다.

이 질문의 목적 상, 나는 글로벌 액세스 문제를 해결하기 위해 2 가지 이상의 복제에 대해 이야기하고 있으며 우리는 신원 열이 있습니다.

이제 우리는 트랜잭션 복제를 설정하고 있으며 두 데이터베이스는 서로 복제해야합니다.

이해 하듯이 각 데이터베이스 서버에 다양한 시드 값을 할당하면이를 사용합니다. 교차하지 않는 범위를 준 독특한 원인이 있습니다. 복제 중에이 값이 종자 열에 삽입된다는 의미입니까?

따라서 각 서버 각 서버가 10 행을 삽입 한 후 1-10 및 11-20에서 2 개의 서버를 할당하면 두 데이터베이스에 1-20이 있습니까?

도움이 되었습니까?

해결책

옵션이 있습니다 "복제를위한 것이 아닙니다"신원 열 (및 트리거 및 기타 제약 조건)에 적용될 수 있습니다.

예에서 Server1은 1-10을 시드하지만 단순히 복제 된 11-20을 수락합니다.

씨앗을 설정하는 몇 가지 방법 :

중 하나 : 이와 같은 복제를 위해 씨앗/증분 설정

  • 씨앗 1, 증분 2
  • 종자 2, 증분 2
  • 종자 -1, 증분 -2
  • 종자 -2, 증분 -2
  • 종자 100000001, 증분 2
  • 종자 100000002, 증분 2
  • 종자 -1000000002, 증분 -2
  • 종자 -1000000001, 증분 -2

이렇게하면 8 서버의 경우 서버 당 500,000,000 명이 제공됩니다

또는 : Composite 키를 제공하기 위해 ServerID라는 두 번째 열을 추가하고 ID 열을 복제하지 마십시오.

이것은 서버 당 2^32 행을 가진 Tinyint 용 256 개의 서버로 확장됩니다.

어느 쪽이든 작동 ...

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