복제를하려는 경우 Guid가 PK에 가장 적합한 선택 인 이유는 무엇입니까?
-
03-07-2019 - |
문제
Oracle Back End가있는 인트라넷 웹 앱을 구축하고 있습니다. Oracle DB는이 논의에 중요하지 않은 이유로 다른 서버에서 복제됩니다. 고급이 아닌 Oracle Basic Replication을 사용할 것이라고 확신합니다.
누군가가 왜 주요 키에 관한 대부분의 토론이 다음과 같은 일을하는지 설명 할 수 있습니까?
- PKS에 자동 증가 된 INT의 사용은 99%입니다.
- 복제를하는 경우를 제외하고. 그런 다음 PK에 안내서를 사용하십시오.
아무도 복제의 예외를 설명하는 사람이 없으며 그 이유를 이해하지 못합니다.
해결책
나는 두 서버 모두 새 데이터를 수신 할 경우에만 복제 된 인수가 신선하게 적용된다고 생각합니다. 그러면 새 행이 충돌하는 것을 원하지 않으므로 PK -Replication은 두 가지 방법으로 갈 수 있으므로 안내서를 사용하십시오.
우리는 항상 자동화 테이블을 복제하지만 데이터가 마스터에게만 기록되는 엄격한 마스터/슬레이브 복제입니다.
다른 팁
한 단어 : 병합
복제를 병합 할 수있는 유일한 방법은 모든 "마스터"상자가 다른 키를 다른 키를 충족시키지 않고도 새로운 키를 만들 수있는 경우입니다.
서로 복제되고 동기화 사이에 데이터가 추가되는 두 서버가있을 때 발생하는 일이 발생하면 문제가 분명해집니다.
Time Server NewID
001 A 1
002 A 2
003 <sync of server A and B>
004 A 3
005 B 3
006 <sync of server A and B>
<--- 두 개의 다른 레코드에는 이제 동일한 ID가 있으므로 충돌이 있습니다!
제휴하지 않습니다 StackOverflow