tencent cloud

Data Transfer Service

소식 및 공지 사항
릴리스 노트
제품 소개
제품 개요
데이터 마이그레이션 기능 설명
데이터 동기화 기능 설명
데이터 구독(Kafka 버전) 기능 설명
제품 장점
구매 가이드
과금 개요
환불 설명
시작하기
데이터 마이그레이션 작업 가이드
데이터 동기화 작업 가이드
데이터 구독 작업 가이드(Kafka 버전)
준비 작업
자체구축 MySQL용 Binlog 설정
데이터 마이그레이션
데이터 마이그레이션 지원 데이터베이스
ApsaraDB 교차 계정 인스턴스 간 마이그레이션
PostgreSQL로 마이그레이션
작업 관리
데이터 동기화
데이터 동기화가 지원하는 데이터베이스
계정 간 TencentDB 인스턴스 동기화
작업 관리
데이터 구독(Kafka 버전)
데이터 구독이 지원하는 데이터베이스
데이터 구독 작업 생성
작업 관리
컷오버 설명
모니터링 및 알람
모니터링 메트릭 조회
사례 튜토리얼
양방향 동기화 데이터 구조 생성
다대일 동기화 데이터 구조 생성
멀티 사이트 Active-Active IDC 구축
데이터 동기화 충돌 해결 정책 선택하기
CLB 프록시를 사용하여 계정 간 데이터베이스 마이그레이션하기
CCN으로 자체 구축 MySQL에서 TencentDB for MySQL로 마이그레이션
검증 불통과 처리 방법
버전 확인
원본 데이터베이스 권한 확인
계정 충돌 확인
부분 데이터베이스 매개변수 확인
원본 인스턴스 매개변수 확인
매개변수 설정 충돌 확인
대상 데이터베이스 콘텐츠 충돌 확인
대상 데이터베이스 공간 확인
Binlog 매개변수 확인
증분 마이그레이션 전제 조건 확인
플러그인 호환성 확인
레벨2 파티션 테이블 확인
기본 키 확인
마이그레이션할 테이블에 대한 DDL 확인
시스템 데이터베이스 충돌 확인
소스 및 대상 인스턴스 테이블 구조 확인
InnoDB 테이블 확인
마이그레이션 객체 종속성 확인
제약 조건 확인
FAQs
데이터 마이그레이션
데이터 동기화
데이터 구독 Kafka 버전 FAQ
구독 정규식
API문서
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
Service Agreement
Service Level Agreements
액세스 관리
DTS를 사용할 서브 계정 생성 및 권한 부여
서브 계정에 재무 권한 부여하기
문서Data Transfer Service사례 튜토리얼데이터 동기화 충돌 해결 정책 선택하기

데이터 동기화 충돌 해결 정책 선택하기

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2022-11-14 16:32:38

작업 시나리오

DTS는 다대일, 일대다, 계단식 단방향, 양방향 및 계단식 양방향 동기화를 비롯한 복잡한 토폴로지 구조를 지원합니다. 이러한 구조에서는 데이터가 동시에 여러 노드에 쓰여지기 때문에 기본 키 충돌이 발생할 수 있습니다. 이 문제를 해결하기 위해 DTS는 기본 키 충돌을 감지하고 다음 해결 정책을 제공합니다.
기본 키 충돌 해결 정책
설명
충돌 처리 시 SQL 문 재작성
충돌 보고
동기화 작업 중에 원본 데이터베이스의 INSERT 문에 대상 데이터베이스의 데이터와 기본 키 충돌이 있는 경우 작업은 오류를 보고하고 일시 중지합니다. 계속하기 전에 먼저 수동으로 충돌을 처리해야 합니다.
작업이 오류를 보고하고 SQL 문이 재작성되지 않습니다.
충돌 무시
동기화 작업 중에 원본 데이터베이스의 INSERT 문에 대상 데이터베이스의 데이터와 기본 키 충돌이 있는 경우 원본 데이터베이스에 삽입된 데이터는 무시되고 대상 데이터베이스의 데이터가 우선합니다.
INSERT 문에 기본 키 충돌이 있는 경우 INSERT는 INSERT IGNORE로 재작성됩니다.
충돌 덮어쓰기
동기화 작업 중에 INSERT 또는 UPDATE 문에 대상 데이터베이스의 데이터와 기본 키 충돌이 있는 경우 대상 데이터베이스의 데이터는 원본 데이터베이스의 삽입 또는 업데이트된 데이터로 덮어씁니다.
INSERT 또는 UPDATE 문에 기본 키 충돌이 있는 경우 INSERT 또는 UPDATE는 각각 REPLACE INTO 또는 DELETE + REPLACE INTO로 재작성됩니다.

충돌 정책 시나리오 예시

기본 키 충돌 해결 정책은 INSERT 및 UPDATE 기본 키 충돌에만 적용되지만 충돌하지 않는 시나리오에는 적용되지 않습니다. 정책이 적용된 후 작업은 오류를 보고하거나 충돌이 발생하면 계속 진행할 수 있습니다. 다음은 서로 다른 정책에 따른 결과가 있는 두 가지 기본 키 충돌 시나리오의 예시입니다.

기본 키 충돌 INSERT

ID를 기본 키로 사용하는 A > B 단방향 동기화가 생성됩니다. A의 INSERT 문이 데이터 동기화 중에 B의 데이터와 기본 키 충돌이 있는 경우 DTS는 구성된 충돌 해결 정책에 따라 충돌을 처리합니다.

서로 다른 정책에 따라 B의 각 동기화 결과는 아래와 같습니다.
충돌 보고: 작업에서 오류를 보고하고 B의 데이터는 변경되지 않은 상태로 유지됩니다(ID=1, Price=10).
충동 무시: 작업은 A의 기본 키가 동일한 데이터를 무시하고 B의 데이터는 변경되지 않은 상태로 유지됩니다(ID=1, Price=10).
충돌 덮어쓰기: 작업은 B의 데이터를 A의 동일한 기본 키를 가진 데이터로 덮어쓰고 B의 데이터는 (ID=1, Price=20)이 됩니다.

기본 키 충돌 UPDATE

일부 시나리오에서는 기본 키를 수정하여 기본 키 충돌을 일으킬 수 있습니다. 예를 들어 A의 기본 키가 UPDATE되고(ID=1 -> ID=2), 기본 키 ID가 B의 2인 데이터와 충돌합니다.

서로 다른 정책에 따라 B의 각 동기화 결과는 아래와 같습니다.
충돌 보고: 작업에서 오류를 보고하고 B의 데이터는 변경되지 않은 상태로 유지됩니다.
충돌 무시: 작업에서 오류를 보고하고 B의 데이터는 변경되지 않은 상태로 유지됩니다. DTS는 이 경우 충돌을 무시합니다.
충돌 덮어쓰기: 작업이 B의 데이터를 A의 동일한 기본 키를 가진 데이터로 덮어쓰고 기본 키가 2인 데이터만 B에 존재합니다(ID=2, Price=10).

충돌 해결 정책 및 데이터 일관성

2리전 3데이터센터 및 다중 사이트 활성-활성 아키텍처와 같은 복잡한 데이터 아키텍처에서 데이터는 동시에 3개 이상의 노드에 기록되어야 할 수 있으며 여러 노드에서 데이터 일관성을 보장하는 것이 중요합니다. 많은 사용자는 기본 키 충돌 해결 정책을 사용하여 지정된 노드의 데이터를 다른 노드와 동기화할 수 있다고 생각하지만 실제로는 작동하지 않습니다.
다음 양방향 동기화 시나리오에서 덮어쓰기 정책은 A > B 및 B > A 동기화 모두에 대해 설정됩니다. 기본 키가 1인 다른 데이터 레코드가 노드 A와 B에 동시에 삽입되면 결국 A와 B 사이에서 서로 교환됩니다.

실제 시나리오에서 노드 간에 데이터 일관성을 구현하려면 일반적으로 기본 키로 데이터베이스를 분할하고, 버전 번호로 데이터 덮어쓰기와 같은 추가 조정 메커니즘을 도입하고, 충돌 해결 정책 외에 다른 방법을 사용해야 합니다.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백