MariaDB는 MySQL 포크이며 MySQL에서 분기한 데이터베이스 관리 시스템(DBMS)입니다.
MariaDB는 고성능, 신뢰성, 안전성, 확장성, 커뮤니티 지원 등의 이점을 제공합니다.
이중화는 시스템 가용성을 향상시키는 방법 중 하나입니다.
이중화란 데이터 복제를 통해 한 시스템이 고장나도 다른 시스템으로 서비스를 계속할 수 있도록 하는 기술입니다.
이 중 MariaDB가 제공하는 중복 기술에는 다음과 같은 종류가 있습니다.
1. Master-Slave Replication
마스터 슬레이브 복제는 가장 간단한 형식의 MariaDB 중복성입니다.
마스터 서버에서 변경된 데이터를 슬레이브 서버로 복제합니다.
마스터 서버는 쓰기 작업을 처리하고 슬레이브 서버는 읽기 작업을 처리합니다.
슬레이브 서버는 마스터 서버에 비해 몇 초 뒤에 데이터를 복제하므로 슬레이브 서버가 읽기 작업을 처리해도 데이터 일관성이 보장되지 않을 수 있습니다.
이 경우 슬레이브 서버가 처리하는 대부분의 작업은 읽기 작업이므로 이러한 문제는 큰 문제가 아닙니다.
2. Master-Master Replication
마스터 – 마스터 복제는 마스터 서버가 여러 개인 경우 사용할 수 있는 중복 기술입니다.
각 마스터 서버는 서로 다른 데이터베이스를 처리하고 서로 복제합니다.
이 방법은 읽기 및 쓰기 작업 모두에 가용성을 제공합니다.
그러나 데이터 일관성을 보장하려면 추가 설정이 필요합니다.
3. Galera Cluster
갈레라 클러스터는 마스터 마스터 복제를 기반으로 하는 클러스터링 기술입니다.
각 마스터 노드는 서로 다른 데이터베이스를 처리하고 모든 노드는 서로 데이터를 복제합니다.
Galera는 InnoDB 스토리지 엔진을 사용하여 동기화 복제를 지원합니다.
각 노드는 트랜잭션을 처리하기 위해 동일한 순서를 사용하므로 데이터 일관성이 보장됩니다.
이 접근법은 고가용성과 데이터 일관성을 제공하며 자동 장애 감지 및 자동 복구를 지원합니다.
노드 중 하나가 실패하면 다른 노드는 자동으로 이를 감지하고 장애 노드 역할을 대신 수행합니다.
이것은 서비스 가용성을 향상시키는 중요한 기능입니다.
또한 Galera Cluster에는 다양한 기능이 있습니다.
예를 들어 Galera는 트랜잭션 충돌을 감지하고 해결하는 기능을 제공합니다.
또한 Galera는 스키마 변경 사항을 적용하는 기능도 제공합니다.
4. Percona XtraDB Cluster
Percona XtraDB Cluster는 Percona Server와 Galera Cluster를 기반으로 한 클러스터링 기술입니다.
Percona XtraDB Cluster는 InnoDB 스토리지 엔진을 사용하여 자동 장애 감지 및 자동 복구를 지원합니다.
또한 Percona XtraDB Cluster는 데이터베이스 클러스터링에 필요한 다양한 기능을 제공합니다.
예를 들어, Percona XtraDB Cluster는 노드에 대한 상태 정보를 제공하고 노드 간의 데이터 일관성을 유지합니다.
5. MySQL NDB Cluster
MySQL NDB Cluster는 MySQL의 클러스터링 기술입니다.
NDB Cluster는 InnoDB 스토리지 엔진이 아닌 NDB 스토리지 엔진을 사용합니다.
NDB Cluster는 비동기 복제를 사용하며 데이터 일관성을 보장하기 위해 추가 설정이 필요합니다.
NDB Cluster는 자동 장애 감지 및 자동 복구를 지원하며 고성능을 제공합니다.
위와 같이 MariaDB는 다양한 중복 기술을 제공합니다.
각 기술에는 고유한 장점과 단점이 있으며, 선택해야 하는 상황에 따라 적절한 기술을 선택해야 합니다.
중복성을 사용하면 시스템의 가용성을 높이고 장애가 발생하더라도 서비스를 계속할 수 있습니다.