[MariaDB] 갈레라 클러스터(galera cluster) 설치 > 리눅스서버
리눅스서버

[MariaDB] 갈레라 클러스터(galera cluster) 설치

조회 853회 댓글 0건

하단에 참고 사이트를 보고 [MariaDB] 갈레라 클러스터(galera cluster) 설치 해본것입니다.

설치는 잘 되고 실행도 잘 됩니다. 그리고 복제 기능도 멀티 마스터로 잘 됩니다.

여기 언급은 안되었지만 캐릭터셋 디폴트가 맘에 안들던데 최신의 utf8m4로 설정 하시면 됩니다. 


● 기본환경

    yum -y install epel-release cmake socat rsync

    yum -y groupinstall 'Development Tools'


● 보안문제 및 확인

    setenforce 0

    getenforce

    sestatus

  - 재부팅시 적용

    vim /etc/sysconfig/selinux


● 설치

  curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash

  yum makecache fast

  yum install -y mariadb-server galera


● 사용 되는 포트는 방화벽에 열려 있어야 한다.

    4444 (SST , State Snapshot Transfer)

    새 노드가 클러스터에 참여하면 다른 노드와 동기화.


    4568 (IST , Incremental State Transfer)

    기준 노드와 비교할 때, 누락된 트랜잭션 존재하면 동기화.


    4567 (Galera Cluster) 

    각 노드의 연동 상태를 체크


    3306 (Maria DB) MariaDB 클라이언트 연결 및 상태 스냅 샷 전송

    포트는 변경하면 변경된것으로 적용이 된다.


   테스트 할때는 방화벽 때문에 고생 할 수 있으니 우선 꺼 두는 것으로 합니다.

   iptbles 사용하게 되면 -F 옵션을 주면 사슬이 모두 삭제 됩니다.


    firewall-cmd --state

    firewall-cmd --list-all

    systemctl disable firewalld

    systemctl stop firewalld


● my.cnf 환경설정

    [galera]

    wsrep_on=ON

    wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so

    wsrep_cluster_address=gcomm://192.168.152.143,192.168.152.144,192.168.152.145

    binlog_format=row

    default_storage_engine=InnoDB

    innodb_autoinc_lock_mode=2


● DBMS 프로그램 실행

  첫번째 서버에서 아래를 실행 합니다. stystemctl start mysqld 를 실행하는것이 아니라 아래를 실행 합니다.

  galera_new_cluster


  다른 2대의 서버에서는 이렇게 하면 첫번째 서버에선 mysql 서버 별도 실행하지 않아도 같이 적용.

  아래 비밀번호 변경한것 까지 적용 된다.


   systemctl start mariadb.service

   /usr/bin/mysqladmin -u root password '비밀번호'


   접속한후 상태를 확인해 본다.

   mysql -u root -p

   show global status like 'wsrep_cluster_size';

   유심히 봐야 할것은 wsrep_local_state_uuid  값인데 모든 노드가 같아야 된다고 한다.



● 환경설정을 기존것과 맞춘 다음.

  디폴트로 설정된 데이터: /var/lib/mysql/ 이 폴더에 있다.

  rsync -av /var/lib/mysql/ /db/mysql/

  chown mysql.mysql /db/mysql


  위처럼 서버 데이터 다른 디렉토리로 옮기고 난 후 두대 모두에서 실행 안됨

  갈레라 관련된 파일 삭제 - 운영중에 시작 안되어 삭제 한 후 시작 되었다는 글이 있었다.

  https://ongamedev.tistory.com/entry/mariadb-%EC%8B%9C%EC%9E%91-%EC%9A%94%EB%A5%98

   rm -f galera.cache

   rm -f grastate.dat



● 시작하고 접속해 본다.

galera_new_cluster

systemctl start mariadb.service

mysql -u root -p비밀번호


● 마리아 MySQL 오로라

MySQL 기반으로 만들어진것이 마리아, AWS 오로라 입니다. 그리고 그외 더 있겠지요.

오픈소스라서 그리고 안정성 및 문제가 되지 않는 속도등 쓸만한 정도의 무료 DBMS이기 때문에 선택이 많이 되어 집니다. 현재는 프로토콜 버전등 호환되는 측면이 있으니 새로운 버전 부터는 조금씩 다릅니다. 그래도 기본적인 사용법등은 같지만 달라지고 있습니다. 여기서 보면 마리아DB 인데 mysql이 언급이 되고 있는데요. 실제 실행도 systemctl start mysqld 해도 실행이 되도록 되어 있습니다. 선마이크로시스템이 오라클로 인수 되면서 갈라져 나왔습니다.



◆ 참고사이트

https://bamdule.tistory.com/66

https://louie0.tistory.com/140

https://sightstudio.tistory.com/59

https://github.com/SightStudio/blog-code/tree/develop/galera-cluster-mariadb

https://github.com/SightStudio/blog-code/blob/develop/galera-cluster-mariadb/infra/mariadb/config/my.cnf


  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 161건 1 페이지
  • profile_image 리눅스에서 OpenSSL을 사용해 생성한 사설 인증서의 유효 기간을 확인하려면 터미널에서 OpenSSL 명령어를 사용 하면 된다.아래 openssl 명령어를 사용해 인증서의 유효 기간을 확인할 수 있다.openssl x509 -in [인증서 파일 경로] -noout -datesopenssl x509 -in mycert.pem -noout -datesopenssl x509 -in rootCA.crt -noout -datesopenssl x509 …
  • profile_image OpenSSL로 인증서 생성시 -days 36500 = 100년 옵션을 사용해서 유휴기간을 길게 준다. 우선 만료 되는 기간을 길게준 다음 후에 사용할 계획이 없으면 사용하지 않으면 되기 때문이다.지난것을 경고 무시하고 사용하는것 보다는 이편이 더 좋을것이다.아래는 간단하게 개인 인증서 생성하는 방법이며두번째 csr 생성할때 입력 해야 하는것이 잇는데 아래처럼 입력하면 되며 비밀번호는 넣지 않아도 된다.(비밀번호 넣으면 다음에 진행할때 같이 넣…
  • profile_image DKIM, SPF, 및 DMARC는 이메일을 보다 안전하게 하고, 스팸이나 피싱 공격을 방지하기 위해 사용되는 이메일 인증 메커니즘들입니다.공통적으로 네임서버 설정을 해줘야 하는 것들이다.DKIM (DomainKeys Identified Mail)DKIM은 발신자의 도메인이 실제로 해당 이메일을 보냈다는 것을 증명하기 위해 디지털 서명을 사용합니다.이메일 발송자는 이메일의 헤더에 디지털 서명을 추가하고, 이 서명은 발신자의 도메인에 공개적으로 …
  • profile_image 리눅스에서 디스크 사용량이 많은 프로그램을 찾기 위해서는 주로 du (Disk Usage) 명령어를 사용합니다. du 명령어는 디렉토리나 파일이 사용하는 디스크 공간의 양을 확인할 때 사용됩니다. du 명령의 기본적인 사용 방법 전체 사용량은 df 명령을 사용하지만 하위 디렉토리의 사용량을 보려면 du 명령을 사용 합니다. 운영하다 보면 어느곳에서 사용을 많이 하는지 알기 위해 은근히 많이 사용 되는 명령 입니다. 특정 디렉토리의 사용량을 확…
  • profile_image 디스크 I/O 부하를 많이 주는 프로그램 확인 디스크 I/O 부하를 많이 주는 프로그램을 찾으려면 iotop이라는 도구를 사용 하면 되며 이 도구는 각 프로세스의 I/O 사용량을 실시간으로 모니터링하며, 높은 I/O 사용량을 가진 프로세스를 쉽게 찾을 수 있도록 도와준다. io를 보는데는 iostat 도 있고. vmstat 1 명령으로 CPU 부하와 같이 쓰기나 읽기가 어느정도 인지 보는 방법도 있는데 iotop을 사용하면 프로그램 까지 알…
  • profile_image INSERT 할때 현재 날짜를 디폴트 값으로 처리 MySQL에서 날짜와 시간을 자동으로 입력하려면, TIMESTAMP 또는 DATETIME 필드 타입에 DEFAULT CURRENT_TIMESTAMP 또는 ON UPDATE CURRENT_TIMESTAMP 옵션을 사용할 수 있습니다. 예를 들어, 테이블을 생성할 때 다음과 같이 작성할 수 있습니다  # 5.6 버전 부터는 아래 처럼 디폴트 값으로 CURRENT_TIMESTAMP 를 2개 이상의 컬…
  • profile_image MySQL 5 버전사용 할때는 없었던 문제가 발생을 해서 확인한 것들을 정리한것입니다.이에대해 글이 있는데 전 적용이 안되던데요. 호스트 플러시 해도 안되어 systemctl stop mysqld 로 멈춘다음 다시 시작 시켰습니다.제경우에는 CentOS7에서 설치된 MySQL8 버번에서 안되었습니다.그리고 중요한것은 왜? 그런지 접속하는 클라이언트(보통은 프로그램 이겠지요) 원인을 찾아야 합니다.그렇지 않으면 다시 상황이 발생합니다.여기서 수치…