tencent cloud

양방향 동기화 데이터 구조 생성
마지막 업데이트 시간:2022-11-14 16:32:38
양방향 동기화 데이터 구조 생성
마지막 업데이트 시간: 2022-11-14 16:32:38

작업 시나리오

DTS는 다중 사이트 활성-활성 시나리오에 적용할 수 있는 두 데이터베이스 간의 양방향 데이터 동기화를 지원합니다. 양방향 동기화 작업에서는 양방향 토폴로지를 설정하기 위해 두 개의 단방향 동기화 작업이 생성되며 동기화 중에 데이터를 두 데이터베이스에 동시에 쓸 수 있습니다.
단방향 동기화 및 관련 작업에 대한 제한 사항 등 양방향 동기화 요구 사항을 모두 따라야 합니다. 자세한 내용은 데이터 동기화에서 적절한 동기화 시나리오를 참고하십시오.

주의 사항

전체 데이터 동기화 중에 DTS는 특정 원본 데이터베이스 리소스를 사용하므로 원본 데이터베이스의 로드와 압력이 증가할 수 있습니다. 데이터베이스 설정이 낮으면 사용량이 적은 시간에 데이터를 동기화하는 것이 좋습니다.
데이터 중복을 방지하려면 동기화할 테이블에 기본 키 또는 null이 아닌 고유 키가 있어야 합니다.
데이터를 미리 계획해야 합니다. 두 원본 데이터베이스는 기본 키 충돌 및 동일한 기본 키로 데이터의 상호 덮어쓰기와 같은 문제를 방지하기 위해 다른 기본 키로 데이터를 업데이트(추가, 삭제 및 수정)하는 역할을 합니다. 예를 들어, 데이터베이스 A에서 기본 키 데이터 1, 3, 5를 업데이트하고 데이터베이스 B에서 기본 키 데이터 2, 4, 6을 업데이트합니다. 비즈니스 상의 이유로 두 원본 데이터베이스에 중복 기본 키가 있는 경우 일반적인 사용 사례에 대한 권장 구성에 따라 적절한 충돌 해결 방법을 선택하여 동기화 동작과 데이터가 기대치를 충족하도록 합니다.
대상 데이터베이스를 준비하고 동기화 작업을 실행하는 계정에 소스 및 대상 데이터베이스 관련 권한을 부여합니다.

제한

DDL 문은 양방향 동기화 중에 최대 한 방향으로 실행할 수 있습니다. 동기화 연결이 원형 링크를 형성하지 않아야 하기 때문입니다(DDL 문을 정방향 또는 역방향으로 실행할 수 있음).
MySQL, TDSQL-C for MySQL, MariaDB, Percona 및 TDSQL for MySQL 간의 모든 동기화 링크는 MariaDB 커널이 있는 TDSQL for MySQL 인스턴스가 소스 또는 대상 데이터베이스로 사용되는 경우를 제외하고 양방향 동기화를 지원합니다.

일반적인 사용 사례를 위한 권장 구성

양방향 동기화 작업은 양방향 토폴로지를 설정하기 위한 두 개의 단방향 동기화 작업으로 구성됩니다. 각 단방향 동기화 작업의 생성 단계는 일반 단방향 동기화 작업의 생성 단계와 유사합니다. 다음 동기화 옵션 설정에서만 다릅니다.
다음 구성은 참고용으로 일반적인 사용 사례에 권장됩니다.
시나리오
시간 요건
동기화 작업
초기화 유형
대상이 이미 있는 경우
충돌 해결 방법
동기화 작업 유형
시나리오1: 데이터베이스 A에는 데이터베이스/테이블 구조와 데이터가 있고 데이터베이스 B는 비어 있습니다.
작업 2는 작업 1이 ‘증분 동기화’ 단계에 들어간 후에만 생성할 수 있습니다.
작업 1: 정방향 동기화 A > B
구조 초기화 + 전체 데이터 초기화
사전 확인 및 오류 보고
필요에 따라 옵션을 선택합니다.
예: 기본 키 충돌이 발생하고 데이터베이스 A의 콘텐츠가 우선 적용되도록 하려면 작업 1에 대해 덮어쓰기를 선택하고 작업 2에 대해 무시 또는 보고를 선택해야 합니다.
충돌 해결 방법은 기본 키 충돌이 있는 데이터에만 적용됩니다.
최대 하나의 작업에서 DDL을 선택하십시오.
DDL이 아닌 작업 유형의 경우 두 작업 간에 일관성을 유지하십시오.
작업2: 역동기화 B > A
선택하지 않음
무시하고 실행
시나리오2: 데이터베이스 A에는 데이터베이스/테이블 구조와 데이터가 있고 데이터베이스 B에는 데이터베이스/테이블 구조만 있고 데이터는 없습니다.
없음
작업1: 정방향 동기화 A > B
전체 데이터 초기화
무시하고 실행
작업2: 역동기화 B > A
선택하지 않음
무시하고 실행
시나리오3: 데이터베이스 A와 B 모두에 데이터베이스/테이블 구조와 데이터가 있습니다.
없음
작업1: 정방향 동기화 A > B
전체 데이터 초기화
무시하고 실행
작업2: 역동기화 B > A
전체 데이터 초기화
무시하고 실행

작업 단계

본문은 상하이 리전의 자체 구축 MySQL 데이터베이스 A와 베이징 리전의 TencentDB MySQL 데이터베이스 B간의 양방향 동기화 생성을 예로 들어 설명합니다. 처음에 A에는 데이터베이스/테이블 구조와 데이터가 있고 B는 비어 있습니다. 기본 키 충돌이 발생하면 A의 데이터 업데이트가 우선합니다. A > B 동기화의 경우 기본 키 충돌 해결 정책은 덮어쓰기이며 DDL + DML 문이 동기화됩니다. B > A 동기화의 경우 정책은 무시이며 DML 문만 동기화됩니다.


동기화 작업1 생성: 정방향 동기화 A > B

1. 데이터 동기화 구매 페이지에 로그인하여 알맞은 설정을 선택하고 구매하기를 클릭합니다.
매개변수
설명
과금 방식
정액 과금제 및 사용량 과금이 지원됩니다.
원본 인스턴스 유형
MySQL을 선택합니다. 한 번 구성하면 변경할 수 없습니다.
원본 인스턴스 리전
원본 인스턴스 A 리전을 선택합니다. 구성한 후에는 변경할 수 없습니다.
대상 인스턴스 유형
MySQL을 선택합니다. 한 번 구성하면 변경할 수 없습니다.
대상 인스턴스 리전
대상 인스턴스 B 리전을 선택합니다. 한 번 구성되면 변경할 수 없습니다.
사양
비즈니스 요구에 따라 사양을 선택하십시오. 사양이 높을수록 성능이 높아집니다. 자세한 내용은 과금 개요를 참고하십시오.
2. 구매 성공 후 데이터 동기화 목록으로 돌아가면 새로 생성된 데이터 동기화 작업을 볼 수 있습니다. 사용하기 전에 설정해야 합니다.
3. 데이터 동기화 목록의 작업 열에서 설정을 클릭하여 동기화 작업 설정 페이지로 들어갑니다.
4. 동기화 작업 설정 페이지에서 원본 인스턴스와 대상 인스턴스를 설정하고 해당 계정 및 비밀번호를 설정한 뒤 연결성 테스트를 하고 다음 단계를 클릭합니다.

설정 항목
매개변수
설명
작업 설정
작업 이름
DTS는 사용자 정의할 수 있는 작업 이름을 자동으로 생성합니다.
실행 모드
즉시 실행 및 예약 실행이 지원됩니다.
원본 데이터베이스 설정
원본 인스턴스 유형
구매 시 선택한 데이터베이스 A 유형을 선택하며, 설정 후에는 변경할 수 없습니다.
원본 인스턴스 리전
구매 시 선택한 데이터베이스 A의 리전입니다. 설정 후에는 변경할 수 없습니다.
서비스 제공자
‘일반’을 선택합니다.
액세스 유형
일반적으로 자체 구축 데이터베이스에 대한 공중망 모드를 선택하거나 VPN 액세스, 직접 연결 또는 CCN을 선택할 수 있습니다. 실제 네트워크 상태를 기준으로 선택합니다. 이 시나리오에서는 ‘공중망’을 예로 들어 설명합니다. 다양한 액세스 유형에 대한 준비는 준비 작업 개요를 참고하십시오.
대상 데이터베이스 설정
대상 인스턴스 유형
구매 시 선택한 대상 데이터베이스 B의 유형으로, 변경할 수 없습니다.
대상 인스턴스 리전
구매 시 선택한 대상 데이터베이스 B 리전으로, 변경할 수 없습니다.
액세스 유형
이 시나리오에서는 ‘데이터베이스’를 선택합니다.
인스턴스 ID
데이터베이스 B의 인스턴스 ID입니다.
계정
데이터베이스 B의 계정입니다. 적절한 권한이 있어야 합니다.
비밀번호
데이터베이스 B의 비밀번호입니다.
5. 동기화 옵션 및 객체 설정 페이지에서 데이터 초기화, 데이터 동기화 및 객체 동기화 옵션을 설정하고 저장 후 다음으로 이동을 클릭합니다.

설정 항목
매개변수
설명
데이터 초기화 옵션
초기화 유형
이 시나리오에서는 구조 초기화 + 전체 데이터 초기화를 선택합니다.
구조 초기화: 원본 데이터베이스의 테이블 구조는 동기화 작업이 실행되기 전에 대상 데이터베이스로 초기화됩니다.
전체 데이터 초기화: 원본 데이터베이스의 데이터는 동기화 작업이 실행되기 전에 대상 데이터베이스로 초기화됩니다.
대상이 이미 있는 경우
본 시나리오에서는 사전 확인 및 오류 보고를 선택합니다.
사전 확인 및 오류 보고: 동일한 이름의 테이블이 원본 및 대상 데이터베이스에 모두 있는 경우 오류가 보고되고 작업이 중지됩니다.
무시 및 실행: 전체 및 증분 데이터가 대상 데이터베이스의 테이블에 직접 추가됩니다.
데이터 동기화 옵션
충돌 해결 방법
비즈니스 조건에 따라 충돌 해결 정책을 선택합니다. 이 시나리오에서는 덮어쓰기를 선택합니다.
보고: 데이터 동기화 중 기본 키 충돌이 발견되면 오류가 보고되고 데이터 동기화 작업이 일시 중지됩니다.
무시: 데이터 동기화 중에 기본 키 충돌이 발견되면 대상 데이터베이스의 기본 키 레코드가 유지됩니다.
덮어쓰기: 데이터 동기화 중에 기본 키 충돌이 발견되면 원본 데이터베이스의 기본 키 레코드가 대상 데이터베이스의 기본 키 레코드를 덮어씁니다.
동기화 작업 유형
지원되는 작업: Insert, Update, Delete, DDL. 필요에 따라 다른 DDL 동기화 정책을 선택하려면 ‘DDL 사용자 지정’을 여십시오. 자세한 내용은 SQL 필터 정책 설정을 참고하십시오.양방향 동기화는 최대 하나의 동기화 작업에서 DDL 선택을 지원합니다. 이 시나리오에서 DDL은 작업1에서 선택되지만 작업2에서는 선택되지 않습니다.
동기화 객체 옵션
원본 인스턴스의 데이터베이스 및 테이블 객체
동기화할 객체를 선택합니다.
선택된 객체
데이터베이스/테이블 매핑(이름 변경)이 지원됩니다. 데이터베이스 또는 테이블 이름 위로 마우스를 가져간 후 표시된 편집 아이콘을 클릭하고 팝업 창에 새 이름을 입력합니다.
6. A > B 정방향 동기화 작업에서 DTS는 소스 및 대상 데이터베이스 매개변수를 확인합니다. 모든 검사 항목을 통과한 후 작업 시작을 클릭합니다. B > A 역동기화 작업에서 DTS는 DDL 구성도 확인합니다.
설명:
확인이 실패한 경우 확인 실패 수정 설명 대로 문제를 수정하고 확인 작업을 다시 시작합니다.
확인 결과에 알람이 표시되면 작업 시작에 영향을 미치지 않지만 세부 정보 보기를 클릭하여 조정 제안을 받는 것이 좋습니다.
DDL 확인
원본 및 대상 데이터베이스 매개변수 확인


7. 데이터 동기화 작업 리스트로 돌아가면 작업이 실행 중 상태가 됩니다.

동기화 작업2 생성: 역동기화 B > A

정방향 동기화와 역동기화 작업은 기본적으로 동일합니다. 다음은 차이점만 설명합니다.
1. 작업1의 상태를 확인합니다. 작업1이 ‘증분 동기화’ 단계에 들어가면 작업2 구성을 시작합니다. 이 작업 구성 타이밍은 데이터베이스 B가 비어 있는 경우에만 필요합니다. 다른 시나리오에서는 기다릴 필요가 없습니다.
2. 동기화 원본 및 대상 데이터베이스를 설정합니다. 작업1에서 소스 및 대상 데이터베이스의 데이터를 교환합니다.

3. 동기화 옵션 및 객체를 설정합니다.
초기화 유형: 선택하지 마십시오.
대상이 이미 있는 경우: 무시 및 실행을 선택합니다.
기본 키 충돌 해결: 비즈니스 상황에 따라 옵션을 선택합니다. 이 시나리오에서는 무시를 선택합니다.
SQL 유형: 양방향 동기화에서 최대 하나의 작업에서 DDL을 선택할 수 있습니다. 본문은 작업1에서 DDL을 선택하지만 작업2에서는 선택하지 않습니다.

4. 작업 확인 페이지에서 DDL 구성을 확인합니다.

동기화 작업 중지

동기화 작업이 더 이상 필요하지 않은 경우 작업 열에서 더 보기 > 중지를 선택하여 중지할 수 있습니다.
문제 해결에 도움이 되었나요?
더 자세한 내용은 문의하기 또는 티켓 제출 을 통해 문의할 수 있습니다.
아니오

피드백