CentOS, RHEL 및 Fedora에서 MariaDB Galera Cluster 5.5를 설정하는 방법

CentOS, RHEL 및 Fedora에서 MariaDB Galera Cluster 5.5를 설정하는 방법

2022-10-18 last update

5 minutes reading setup cluster mariadb galera MySQL
MariaDB는 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 일반적으로 소규모 응용 프로그램에는 단일 노드의 데이터베이스 서버를 사용하지만 수천 명의 사용자가 한 번에 온라인 상태를 유지하는 응용 프로그램을 생각하면 이러한 상황에서 이러한 부하를 처리할 수 있고 고가용성을 제공할 수 있는 구조가 필요합니다. 따라서 서로 연결된 여러 데이터베이스 서버를 추가하고 동기화를 유지해야 합니다. 따라서 서버가 다운되는 경우 다른 서버가 이를 대신하여 사용자에게 서비스를 제공할 수 있습니다. MariaDB Galera Cluster는 동기식 Active-Active 다중 마스터 클러스터입니다. MariaDB 데이터베이스. 모든 노드를 동기화된 상태로 유지합니다. MariaDB Galera 클러스터는 항상 고가용성인 동기 복제를 제공합니다(노드 중 하나가 충돌할 때 데이터 손실이 없고 데이터 복제본이 항상 일관됨). 현재 XtraDB/InnoDB 스토리지 엔진만 지원하며 Linux 플랫폼에서만 사용할 수 있습니다. 이 기사는 CentOS에서 실행되는 3개의 서버로 MariaDB Galera Cluster를 설정하는 데 도움이 될 것입니다. 클러스터 서버 세부 정보는 다음과 같습니다.
  • 클러스터 DB1: 192.168.1.10( 호스트 이름: db1 )
  • 클러스터 DB2: 192.168.1.20( 호스트 이름: db2 )
  • 클러스터 DB3: 192.168.1.30 ( HostName: db3 )
  • 참고: 1/2/3 단계는 모든 클러스터 노드에서 수행해야 하며 나머지 단계는 노드에 따라 다릅니다.

    1단계: MariaDB 리포지토리 추가

    시스템에서 다음 콘텐츠를 사용하여 mariadb 저장소/etc/yum.repos.d/mariadb.repo를 만듭니다. 아래 리포지토리는 CentOS 6.x 시스템에서 작동합니다. 다른 시스템의 경우repository generation tool 시스템에 추가합니다. CentOS 6 – 64비트
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/5.5/centos6-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    
    의 경우 CentOS 6 – 32비트
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/5.5/centos6-x86
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    

    2단계: MariaDB 및 Galera 설치

    MariaDB Galera 클러스터 패키지를 설치하기 전에 시스템에 설치된 기존 MySQL 또는 MariaDB 패키지를 제거합니다. 그런 다음 다음 명령을 사용하여 모든 노드에 설치합니다.
    # yum install MariaDB-Galera-server MariaDB-client galera
    

    3단계: 초기 MariaDB 구성

    위 단계에서 패키지를 성공적으로 설치한 후 일부 초기 MariaDB 구성을 수행합니다. 다음 명령을 사용하고 클러스터의 모든 노드에 대한 지침을 따릅니다. 루트 계정 암호도 설정하라는 메시지가 표시됩니다.
    # mysql_secure_installation
    # service mysql start
    
    그런 다음 클러스터의 네트워크에서 데이터베이스에 액세스할 수 있는 모든 노드의 MariaDB에 사용자를 만듭니다.
    # mysql -u root -p
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    MariaDB [(none)]> FLUSH PRIVILEGES;
    MariaDB [(none)]> exit
    
    클러스터 구성을 시작하기 전에 MariaDB 서비스를 중지합니다
    # service mysql stop
    

    4단계: DB1에서 클러스터 구성 설정

    DB1 서버에서 MariaDB Galera 클러스터 설정을 시작합니다. MariaDB 서버 구성 파일을 편집하고 [mariadb] 섹션에 다음 값을 추가합니다.
    [[email protected] ~]# vim /etc/my.cnf.d/server.cnf
    
    query_cache_size=0
    binlog_format=ROW
    default_storage_engine=innodb
    innodb_autoinc_lock_mode=2
    wsrep_provider=/usr/lib/galera/libgalera_smm.so
    wsrep_cluster_address=gcomm://192.168.1.20,192.168.1.30
    wsrep_cluster_name='cluster1'
    wsrep_node_address='192.168.1.10'
    wsrep_node_name='db1'
    wsrep_sst_method=rsync
    wsrep_sst_auth=root:password
    
    다음 명령을 사용하여 클러스터를 시작합니다.
    [[email protected] ~]# /etc/init.d/mysql bootstrap
    Bootstrapping the clusterStarting MySQL.... SUCCESS!
    
    시작하는 동안 문제가 발생하면 MariaDB 오류 로그 파일/var/lib/mysql/.err을 확인하십시오.

    5단계: MariaDB 클러스터에 DB2 추가

    DB1에서 클러스터를 성공적으로 시작한 후. DB2에서 구성을 시작하십시오. MariaDB 서버 구성 파일을 편집하고 [mariadb] 섹션에 다음 값을 추가합니다. wsrep_node_address, wsrep_cluster_address 및 wsrep_node_name을 제외한 모든 설정은 DB1과 유사합니다.
    [[email protected] ~]# vim /etc/my.cnf.d/server.cnf
    
    query_cache_size=0
    binlog_format=ROW
    default_storage_engine=innodb
    innodb_autoinc_lock_mode=2
    wsrep_provider=/usr/lib/galera/libgalera_smm.so
    wsrep_cluster_address=gcomm://192.168.1.10,192.168.1.30
    wsrep_cluster_name='cluster1'
    wsrep_node_address='192.168.1.20'
    wsrep_node_name='db2'
    wsrep_sst_method=rsync
    wsrep_sst_auth=root:password
    
    
    다음 명령을 사용하여 클러스터를 시작합니다.
    [[email protected] ~]# /etc/init.d/mysql start
    Starting MySQL..... SUCCESS!
    

    6단계: MariaDB 클러스터에 DB3 추가

    이 서버는 선택 사항입니다. 클러스터에 서버가 두 개만 있으면 이 단계를 무시할 수 있지만 DB1/DB2 구성 파일에서 세 번째 서버 IP를 제거해야 합니다. 이 서버를 추가하려면 DB2와 동일하게 변경하십시오.
    [[email protected] ~]# vim /etc/my.cnf.d/server.cnf
    
    query_cache_size=0
    binlog_format=ROW
    default_storage_engine=innodb
    innodb_autoinc_lock_mode=2
    wsrep_provider=/usr/lib/galera/libgalera_smm.so
    wsrep_cluster_address=gcomm://192.168.1.10,192.168.1.20
    wsrep_cluster_name='cluster1'
    wsrep_node_address='192.168.1.30'
    wsrep_node_name='db2'
    wsrep_sst_method=rsync
    wsrep_sst_auth=root:password
    
    다음 명령을 사용하여 클러스터를 시작합니다.
    [[email protected] ~]# /etc/init.d/mysql start
    Starting MySQL..... SUCCESS!
    

    7단계: MariaDB Galera 클러스터 설정 테스트

    이 단계에서 클러스터 설정이 완료되고 제대로 실행됩니다. 이제 클러스터의 모든 서버에서 데이터베이스와 테이블을 생성하여 클러스터 설정을 테스트할 수 있습니다. 클러스터의 모든 서버에 즉시 복제됩니다. 위의 GIF 이미지는 데이터베이스가 클러스터의 모든 노드에 제대로 복제되고 있음을 보여줍니다.