검색

2.8. Galera를 사용하여 MariaDB 복제

download PDF

Red Hat Enterprise Linux 9에서 Galera 솔루션을 사용하여 MariaDB 데이터베이스를 복제할 수 있습니다.

2.8.1. MariaDB Galera 클러스터 소개

Galera 복제는 여러 MariaDB 서버로 구성된 동기 다중 소스 MariaDB Galera 클러스터 생성을 기반으로 합니다. 일반적으로 복제본이 읽기 전용인 기존의 기본/복제 설정과 달리 MariaDB Galera Cluster의 노드는 모두 쓸 수 있습니다.

Galera 복제와 MariaDB 데이터베이스 간의 인터페이스는 쓰기 세트 복제 API(wsrep API)로 정의됩니다.

MariaDB Galera 클러스터의 주요 기능은 다음과 같습니다.

  • 동기 복제
  • 액티브-액티브 멀티 소스 토폴로지
  • 클러스터 노드에 읽기 및 쓰기
  • 자동 멤버십 제어, 클러스터에서 실패한 노드 삭제
  • 자동 노드 결합
  • 행 수준에서 병렬 복제
  • 직접 클라이언트 연결: 사용자가 클러스터 노드에 로그온하고 복제가 실행되는 동안 노드에서 직접 작업할 수 있습니다.

동기 복제는 서버와 관련된 쓰기 집합을 클러스터의 모든 노드에 브로드캐스트하여 커밋 시 트랜잭션을 복제함을 의미합니다. 클라이언트(사용자 애플리케이션)는 기본 MariaDB 와 유사한 DBMS(데이터베이스 관리 시스템)에 직접 연결됩니다.

동기 복제를 사용하면 클러스터의 한 노드에서 동시에 발생한 변경 사항이 클러스터의 다른 노드에서 동시에 수행됩니다.

따라서 동기 복제는 비동기 복제에 비해 다음과 같은 이점이 있습니다.

  • 특정 클러스터 노드 간의 변경 사항을 전파하는 데 지연 없음
  • 모든 클러스터 노드는 항상 일관성이 유지됩니다.
  • 클러스터 노드 중 하나가 충돌하면 최신 변경 사항이 손실되지 않습니다.
  • 모든 클러스터 노드의 트랜잭션이 병렬로 실행됩니다.
  • 전체 클러스터의 원인

2.8.2. MariaDB Galera Cluster를 빌드하기 위한 구성 요소

MariaDB Galera 클러스터를 빌드하려면 시스템에 다음 패키지를 설치해야 합니다.

  • mariadb-server-galera - MariaDB Galera 클러스터에 대한 지원 파일 및 스크립트를 포함합니다.
  • mariadb-server - 쓰기 세트 복제 API(wsrep API)를 포함하도록 MariaDB 업스트림에서 패치합니다. 이 API는 Galera 복제와 MariaDB 간의 인터페이스를 제공합니다.
  • Galera - MariaDB를 완벽하게 지원하기 위해 MariaDB 업스트림에서 패치했습니다. galera 패키지에는 다음이 포함됩니다.

    • Galera Replication Library 는 전체 복제 기능을 제공합니다.
    • Galera Arbitrator 유틸리티를 분리 장애 시나리오의 투표에 참여하는 클러스터 멤버로 사용할 수 있습니다. 그러나 Galera Arbitrator 는 실제 복제에 참여할 수 없습니다.
    • Galera Systemd 서비스Galera 래퍼 스크립트 ( Galera), Galera Arbitrator 유틸리티를 배포하는 데 사용됩니다. RHEL 9는 /usr/lib/systemd/system/garbd.service/usr/sbin/garb-systemd 에 있는 이러한 파일의 업스트림 버전을 제공합니다.

2.8.3. MariaDB Galera 클러스터 배포

MariaDB Galera Cluster 패키지를 배포하고 구성을 업데이트할 수 있습니다. 새 클러스터를 생성하려면 클러스터의 첫 번째 노드를 부트스트랩해야 합니다.

사전 요구 사항

  • MariaDB Galera Cluster 패키지를 설치합니다.

    # dnf install mariadb-server-galera

    결과적으로 다음 패키지가 종속 항목과 함께 설치됩니다.

  • MariaDB 서버 복제 구성은 시스템을 클러스터에 처음 추가하기 전에 업데이트해야 합니다.

    기본 구성은 /etc/my.cnf.d/galera.cnf 파일에 배포됩니다.

    MariaDB Galera 클러스터를 배포하기 전에 /etc/my.cnf.d/galera.cnf 파일에서 다음 문자열로 시작하도록 wsrep_cluster_address 옵션을 설정합니다.

    gcomm://
    • 초기 노드의 경우 wsrep_cluster_address 를 빈 목록으로 설정할 수 있습니다.

      wsrep_cluster_address="gcomm://"
    • 다른 모든 노드의 경우 실행 중인 클러스터의 일부인 모든 노드의 주소를 포함하도록 wsrep_cluster_address 를 설정합니다. 예를 들면 다음과 같습니다.

      wsrep_cluster_address="gcomm://10.0.0.10"

      Galera 클러스터 주소를 설정하는 방법에 대한 자세한 내용은 Galera Cluster Address 를 참조하십시오.

절차

  1. 해당 노드에서 다음 래퍼를 실행하여 새 클러스터의 첫 번째 노드를 부트스트랩합니다.

    # galera_new_cluster

    이 래퍼를 사용하면 MariaDB 서버 데몬(mariadbd)이 --wsrep-new-cluster 옵션과 함께 실행됩니다. 이 옵션은 연결할 기존 클러스터가 없는 정보를 제공합니다. 따라서 노드는 새 클러스터를 식별하기 위해 새 UUID를 만듭니다.

    참고

    mariadb 서비스는 여러 MariaDB 서버 프로세스와 상호 작용하는 systemd 방법을 지원합니다. 따라서 MariaDB 서버가 여러 개 있는 경우 인스턴스 이름을 접미사로 지정하여 특정 인스턴스를 부트스트랩할 수 있습니다.

    # galera_new_cluster mariadb@node1
  2. 각 노드에서 다음 명령을 실행하여 다른 노드를 클러스터에 연결합니다.

    # systemctl start mariadb

    결과적으로 노드가 클러스터에 연결되고 클러스터 상태와 자체 동기화됩니다.

2.8.4. MariaDB Galera 클러스터에 새 노드 추가

MariaDB Galera 클러스터에 새 노드를 추가하려면 다음 절차를 사용합니다.

이 절차를 사용하여 기존 노드를 다시 연결할 수도 있습니다.

절차

  • 특정 노드에서 /etc/my.cnf.d/galera.cnf 구성 파일의 [mariadb] 섹션에 있는 wsrep_cluster_address 옵션에 있는 하나 이상의 기존 클러스터 구성원에게 주소를 제공하십시오.

    [mariadb]
    wsrep_cluster_address="gcomm://192.168.0.1"

    새 노드가 기존 클러스터 노드 중 하나에 연결되면 클러스터의 모든 노드를 볼 수 있습니다.

    그러나 클러스터의 모든 노드를 wsrep_cluster_address 에 나열하는 것이 좋습니다.

    결과적으로 하나 이상의 클러스터 노드가 중단된 경우에도 모든 노드가 다른 클러스터 노드에 연결하여 클러스터에 참여할 수 있습니다. 모든 멤버가 멤버십에 동의하면 클러스터 상태가 변경됩니다. 새 노드의 상태가 클러스터 상태와 다른 경우 새 노드는 증분 상태 전송(IST) 또는 SST(상태 스냅샷 전송)를 요청하여 다른 노드와 일관성을 보장합니다.

2.8.5. MariaDB Galera 클러스터 재시작

동시에 모든 노드를 종료하면 클러스터를 중지하고 실행 중인 클러스터가 더 이상 존재하지 않습니다. 그러나 클러스터의 데이터는 여전히 존재합니다.

클러스터를 다시 시작하려면 MariaDB Galera 클러스터 구성에 설명된 대로 첫 번째 노드를 부트스트랩합니다.

주의

클러스터가 부트 스트랩되지 않고 첫 번째 노드에서 mariadbdsystemctl start mariadb 명령으로 시작하는 경우 노드는 /etc/my.cnf.d/galera.cnf 파일의 wsrep_cluster_address 옵션에 나열된 노드 중 하나 이상에 연결을 시도합니다. 현재 실행 중인 노드가 없으면 재시작이 실패합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.