MySQL의 교차 지역 복제는 하나의 지리적 지역에 위치한 1 차 데이터베이스 인스턴스에서 다른 지역에 위치한 하나 이상의 복제 인스턴스로 데이터를 복사하고 유지하는 것을 포함합니다. 이 설정은 재해 복구, 읽기 확장 성 향상, 전 세계적으로 분산 된 응용 프로그램의 대기 시간 감소 및 최소한의 다운 타임으로 지역 간 데이터를 마이그레이션하는 것과 같은 상당한 이점을 제공합니다. 그러나 지역 간 복제는 여러 관점에서 저장에 실질적인 영향을 미칩니다.
핵심 저장소의 영향은 데이터가 적어도 두 개의 별도의 물리적 위치에 중복적으로 존재해야한다는 사실에서 비롯되며, 종종 상당한 거리에 걸쳐 있습니다. 기본 데이터베이스의 모든 변경 사항은 다른 지역의 복제 데이터베이스에 전송, 저장 및 적용 되므로이 중복성은 근본적으로 스토리지 요구 사항을 증가시킵니다. 데이터 전송 및 스토리지 영향이 상대적으로 포함 된 단일 데이터 센터 또는 지역 내의 로컬 복제와 달리, 지역 간 복제는 데이터베이스의 전체 사본을 저장하고 지리적으로 원격 인프라에 대한 업데이트를 저장하는 것이 포함되며, 이는 일반적으로 추가 스토리지 비용이 수반됩니다.
MySQL 크로스 지역 복제에서 기본 서버는 발생하는 모든 변경 사항에 대한 Binlog (Binalog) 레코드를 작성합니다. 이 binlog는 복제 서버로 비동기로 전송됩니다. 그런 다음 복제 서버는 로그 이벤트를 재생하여 원격 사이트에서 데이터베이스의 동일한 사본을 유지 관리합니다. 스토리지 관점에서 다음과 같은 주요 의미가 나타납니다.
1. 전체 카피에 대한 데이터 저장량 증가 : 각 교차 지역 복제본은 전체 데이터 세트를 보유하기에 충분한 저장 용량 또는 복제중인 데이터의 하위 집합을 필요로합니다. 이는 기본 MySQL 데이터베이스 인스턴스가 500GB 인 경우 다른 지역의 각 복제본은 사본을 수용하기 위해 500GB 이상의 저장 용량이 필요하다는 것을 의미합니다. 로드 밸런싱 또는 장애 조치를 위해 지역에 여러 복제본이 존재하는 경우 총 스토리지 발자국을 곱합니다.
2. 이진 로그 및 복제 메타 데이터 스토리지 : 기본 인스턴스는 변경 사항을 추적하는 이진 로그를 유지해야하며 이러한 이진 로그는 더 많은 저장 공간을 소비해야합니다. 구성된 보유 지속 시간에 따라 (복제본을 따라 잡거나 시점 복구를 위해), Binlogs의 스토리지는 크게 축적 될 수 있습니다. 원격 복제본은 또한 데이터베이스에 적용하기 전에 수신 된 변경 사항을 일시적으로 저장하는 릴레이 로그를 유지합니다.
3. 저장 비용 및 가격 차이 : MySQL 또는 Amazon Aurora MySQL과 같은 클라우드 제공 업체는 일반적으로 각 지역에서 별도로 저장 비용을 청구합니다. 복제본과 데이터는 별도의 물리적 위치에 상주하므로 각각의 스토리지 비용이 발생합니다. 또한 데이터 센터 간 변경 데이터가 이동함에 따라 지역 간 데이터 전송 비용이 적용됩니다. 이러한 누적 비용은 사소한 재정적 고려 사항이 될 수 있습니다.
4. 압축 및 데이터 감소 기술의 영향 : 스토리지 요구 사항을 완화하기 위해 일부 시스템은 이진 로그의 압축 및 필터링을 구현합니다. 예를 들어, 특정 데이터베이스 또는 테이블을 선택적으로 복제하면 복제본의 데이터 볼륨이 줄어 듭니다. 이진 로그의 압축은 네트워크 전송 대역폭 및 스토리지를 줄이지 만 압축 및 감압 프로세스 중에 추가 CPU 오버 헤드가 추가됩니다.
5. 스토리지 가용성 및 성능 고려 사항 : Replicas는 실시간 또는 거의 실시간 시간에 복제 변경을 적용하여 생성 된 I/O 부하를 처리 할 수있는 스토리지를 제공해야합니다. 성능이 낮거나 소량의 저장 공간은 복제의 지연으로 이어질 수 있으며, 이로 인해 지역마다 데이터 불일치가 발생할 수 있습니다. 따라서 스토리지 유형 (예 : SSD 대 HDD), 처리량 및 IOPS 성능 특성 선택은 복제 효율 및 데이터 신선도에 직접적인 영향을 미칩니다.
6. 백업 및 복구 스토리지 오버 헤드 : 교차 지역 복제 설정에서 백업은 종종 기본 및 복제 인스턴스에서 데이터 내구성을 보장합니다. 백업 자체를 유지하려면 추가 스토리지 리소스가 필요합니다. 복제본을 재해 복구를위한 장애 조치 목표로 사용하는 경우 복원 요구 및 스냅 샷을 수용하기 위해 스토리지를 프로비저닝해야합니다.
7. 데이터 볼륨 성장 증폭 : 삽입, 업데이트 및 스키마 변경으로 인해 기본 데이터베이스가 시간이 지남에 따라 증가함에 따라 모든 복제본은 스토리지를 그에 따라 스케일링해야합니다. 복제 스토리지 스케일링의 비 효율성 또는 지연은 특히 장애 조치 시나리오에서 병목 현상 또는 위험 데이터 손실을 만들 수 있습니다.
8. 복제 대기 시간 및 스토리지 동기화 : 영역 간의 데이터 복제는 비동기식이기 때문에 복제본은 1 차 뒤에 있습니다. 영역이 멀어 질수록 데이터가 트랜스이트 및 릴레이 로그와 같은 스토리지 스토리지에 더 오래 남아 있습니다. 로그를위한 확장 된 스토리지는 스토리지 축적을 증가시키고 이전 로그를 안전하게 제거하거나 보관하기 위해 효과적인 로그 관리 정책이 필요합니다.
9. 보안 및 규정 준수 저장소 시사점 : 경우에 따라 법적 또는 규제 요구 사항은 모든 지역에서 휴식시 데이터의 암호화를 요구합니다. 암호화 저장된 복제본은 암호화 메타 데이터 및 호환 스토리지 솔루션에 대한 요구 사항을 포함하여 스토리지 크기 증가를 포함하여 스토리지 관리에 또 다른 복잡성 계층을 추가합니다.
10. 다중 마스터 크로스 지역 복제 스토리지 : 아키텍처가 지역 (예 : 마스터 마스터)에서 멀티 미스터 복제를 사용하는 경우, 추가 충돌 및 최종 일관성 메커니즘이 추가 스토리지 관리 전략이 필요한 중복 또는 고아 데이터로 이어질 수 있기 때문에 스토리지 의미가 증가합니다.
이러한 저장소 시사점을 해결하기위한 운영 모범 사례 측면에서 데이터베이스 관리자는 종종 다음과 같습니다.
- 현재 및 예상 데이터 볼륨을 충족하기 위해 지역 전체에 걸쳐 올바른 크기의 스토리지.
-불필요한 데이터 복제를 최소화하여 스토리지 오버 헤드를 줄이기 위해 복제 필터 (복제-테이블, 복제-디너 테이블, 복제-야드-테이블 매개 변수)를 사용합니다.
- 압축 된 binlogs 및 릴레이 로그를 사용하여 스토리지 효율을 최적화하십시오.
- 스토리지 프로비저닝 조정을 적극적으로 조정하기 위해 복제 지연 및 스토리지 소비를 밀접하게 모니터링합니다.
- 저장 비용 및 소비로 재해 복구 요구를 균형을 유지하는 이진 로그에 대한 보존 정책을 구현하십시오.
-자동화 된 백업, 스냅 샷 및 멀티 AZ 구성과 같은 클라우드 네이티브 기능을 활용하여 과도한 스토리지 사용없이 내구성을 향상시킵니다.
요약하면, MySQL의 교차 지역 복제는 여러 지역의 전체 데이터 복제, 추가 바이너리 및 릴레이 로그 스토리지 및 백업으로 인해 지역 비용 차이 및 양도 수수료로 인해 스토리지 요구 사항이 크게 증가합니다. 효과적인 스토리지 관리 및 최적화 전략은 성능, 제어 비용을 유지하며 MySQL 배포의 신뢰할 수있는 재해 복구 및 글로벌 확장 성을 보장하는 데 중요합니다. 스토리지 시사점에 대한 이러한 자세한 이해는 용량 계획 및 인프라 결정에 MySQL 크로스 지역 복제 아키텍처를 성공적으로 구현하는 데 필수적인 인프라 결정을 제공합니다.
이 개요는 여러 지역에서 복제 된 MySQL 데이터베이스를 관리 할 때 발생하는 전체 스토리지 고려 사항을 캡처합니다.