데이터베이스 인스턴스 복제는 서버에 하나 이상의 백업 데이터베이스를 구성하여 데이터 동기화를 수행하고 MySQL 데이터를 여러 시스템에 분산하는 방식을 의미합니다. 본 문서는 Tencent Cloud MySQL이 지원하는 데이터 복제 방식 및 TXSQL 커널의 데이터 동기화 최적화에 대해 설명합니다.
설명:
Primary는 주 데이터베이스 인스턴스를 의미하며, Standby는 백업 데이터베이스 인스턴스를 의미합니다.
MySQL 5.6, 5.7, 8.0 버전은 비동기식, 반동기식, 강동기식의 세 가지 복제 방식을 지원합니다. 5.5 버전은 비동기식 방식을 지원합니다.
클라우드 데이터베이스 MySQL이 지원하는 데이터 복제 방식
1. 비동기식 복제
애플리케이션은 insert, update, delete 작업을 포함한 데이터 업데이트 요청을 시작합니다. 마스터 노드는 업데이트 작업을 실행한 후 즉시 애플리케이션에 응답을 반환하고, 그런 다음 스탠바이 노드에 데이터를 복제합니다.
데이터 업데이트 과정에서 마스터 노드는 스탠바이 노드의 응답을 기다릴 필요가 없습니다. 따라서 비동기식 복제를 사용하는 데이터베이스 인스턴스는 일반적으로 높은 성능을 가집니다. 또한 스탠바이 노드를 사용할 수 없어도 마스터 노드의 서비스 제공에 영향을 미치지 않습니다. 그러나 데이터가 실시간으로 스탠바이 노드에 동기화되지 않기 때문에, 마스터 노드가 스탠바이 노드에 지연이 있는 상태에서 장애가 발생하면 데이터 불일치가 발생할 가능성이 적습니다.
Tencent Cloud MySQL 비동기식 복제는 단일 마스터 및 단일 스탠바이 구조를 채택합니다.
2. 반동기식 복제
애플리케이션은 insert, update, delete 작업을 포함한 데이터 업데이트 요청을 시작합니다. 마스터 노드는 업데이트 작업을 실행한 후 즉시 스탠바이 노드에 데이터를 복제합니다. 스탠바이 노드가 데이터를 수신하고 relay log에 기록합니다(실행할 필요 없음) 그런 다음 마스터 노드에 성공 정보를 반환합니다. 마스터 노드는 스탠바이 노드의 성공 정보를 수신한 후에야 애플리케이션에 응답을 반환합니다.
데이터 복제에 이상이 발생한 경우(스탠바이 노드 사용 불가 또는 데이터 복제 네트워크 이상)에만 마스터 노드는 애플리케이션에 대한 응답을 일시 중지(MySQL 기본값 약 10초)하고 복제 방식을 비동기식으로 전환합니다. 데이터 복제가 정상화되면 반동기식 복제로 복원됩니다.
Tencent Cloud MySQL 반동기식 복제는 단일 마스터 및 단일 스탠바이 구조를 채택합니다.
3. 강동기식 복제
애플리케이션은 insert, update, delete 작업을 포함한 데이터 업데이트 요청을 시작합니다. 마스터 노드는 업데이트 작업을 실행한 후 즉시 스탠바이 노드에 데이터를 복제합니다. 스탠바이 노드가 데이터를 수신하고 relay log에 기록합니다(실행할 필요 없음) 그런 다음 마스터 노드에 성공 정보를 반환합니다. 마스터 노드는 스탠바이 노드의 성공 정보를 수신한 후에야 애플리케이션에 응답을 반환합니다.
데이터 복제에 이상이 발생한 경우(스탠바이 노드 사용 불가 또는 데이터 복제 네트워크 이상) 복제 방식은 강등되지 않습니다. 데이터 일관성을 보장하기 위해 이때 마스터 노드는 이상이 종료될 때까지 애플리케이션에 대한 응답을 일시 중지합니다.
Tencent Cloud MySQL 강동기식 복제는 단일 마스터 및 이중 스탠바이 구조를 채택합니다. 그중 한 대의 스탠바이 노드가 성공적으로 실행되면 반환되므로, 단일 스탠바이 노드의 장애가 마스터 노드 작업에 영향을 미치는 문제를 방지합니다. 이를 통해 강동기식 복제 클러스터의 가용성을 향상시킵니다.
TXSQL 커널의 데이터 동기화 최적화
존재하는 문제
비동기식 복제, 반동기식 복제 및 강동기식 복제 방식은 마스터 노드 또는 스탠바이 노드를 사용할 수 없을 때 데이터 불일치가 발생할 가능성이 있습니다.
데이터베이스는 시스템 데이터 저장 및 서비스의 핵심 기능으로서 가용성 요구 사항이 매우 높습니다. 프로덕션 시스템에서는 일반적으로 고가용성 솔루션을 사용하여 시스템이 중단 없이 운영되도록 보장해야 합니다. 데이터 동기화 기술은 데이터베이스 고가용성 솔루션의 기반이 됩니다.
최적화 방안
강동기식 복제 솔루션은 Tencent가 자체 연구 개발한 MySQL 프로토콜 기반의 병렬 다중 스레드 강동기식 복제 솔루션입니다. 스탠바이 데이터베이스의 데이터(로그)가 완전히 동기화된 후에만 마스터 데이터베이스가 애플리케이션 트랜잭션에 응답하여 데이터의 정확성과 안전성을 보장합니다.
원리 도식도는 다음과 같음
애플리케이션 계층에서 요청을 시작할 때, 스탠바이 노드가 성공 정보를 반환한 후에만 마스터 노드가 애플리케이션 계층에 요청 성공을 응답하여 마스터-스탠바이 노드 간 데이터 완전 일관성을 보장합니다.
강동기식 솔루션은 성능 면에서 다른 주류 동기화 솔루션보다 우수하며, 주요 특징은 다음과 같음
노드 간 강한 일관성을 보장하는 동기식 복제
비즈니스 레이어에 완전히 투명하게 작동하므로, 비즈니스 레이어에서 읽기/쓰기 분리 또는 동기화 강화 작업을 수행할 필요가 없습니다.
직렬 동기 스레드를 비동기화하고 스레드 풀 기능을 도입하여 성능을 크게 향상시킵니다.
클라우드 디스크 버전 아키텍처를 지원합니다.
자동 멤버 제어를 지원하며, 장애 노드는 클러스터에서 자동으로 제거됩니다.
자동 노드 추가를 지원하여 수동 개입이 필요 없습니다.
각 노드는 완전한 데이터 복사본을 포함하고 있으며 언제든지 전환할 수 있습니다.
공유 스토리지 장치는 필요 없음.