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

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

조회 58회 댓글 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


  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 61건 1 페이지
  • profile_image 파일의 내용을 확인하여 원하는 문자가 들어 있는 파일이 출력 됩니다.# 특정 문자 들어간 파일 찾기find /pabburi.co.kr/ \( -name "*.php" \) -exec grep -nl "찾을문자" {} \;   보통은 백그라운드로 돌려 놓습니다.
  • profile_image 슬레쉬는 디렉토리의 구분을 하는 역활이기 때문에 주소를 다시 만들어 줄때 설정이 없으면 작동을 하지 않습니다.그렇기 때문에 필요하면 옵션을 추가해 줘야 합니다.웹서버 주소재작성(rewrite)에서 슬레쉬 사용 되도록 적용시키는 방법.보통 카테고리명이나 특정키워드에서 슬레쉬를 사용하곤 합니다. AllowEncodedSlashes On
  • profile_image ▲ 네트워크 설정 방법기존에는 아래 디렉토리에 있는 파일을 수정하여 수동으로 설정 하곤 했었다.하지만 디렉토리가 변경되어 아무것도 없다./etc/sysconfig/network-scripts/ ▲ 네트워크 환경 설정 파일은 아래로 변경 되었다./etc/NetworkManager/system-connections▲ 네트워크 설정nmtui 명령을 사용하여 설정 후 아래 명령으로 재시작 한다. systemctl restart NetworkManage…
  • profile_image 처음에 잘 되어 yum -y update 명령으로 업그레이드 까지 잘 되었던건데 어떻게 하다 재부팅 하니 그 뒤로 안되는 현상 입니다.특이사항은 ssh로 접속 내부에서 잘 됩니다.그리고 공유기 까지 ping도 잘 되고 내부에서 연결하는데는 문제가 없는데 공유기 밖으로 못 나가는 그런 현상입니다.원인은 gateway 설정이 없어졌네요. 그래서 그렇습니다. 왜? 없어졌는지는 아직 못 찾았습니다.ping www.naver.comping: connec…
  • profile_image ● innodb_buffer_pool_chunk_size기본값은 128M 이며 버풀 사이즈를 결정하는데 역활을 한다.코어수가 적다면 이 값을 늘려서 버퍼풀의 크기를 늘려 줘야 한다는 논리가 발생 한다.예를 들면 4G 인경우 코어가 1개 이면 - 인스턴스는 2개로 설정이 된다.이것을 512M로 잡으면 버퍼풀의 크기는 1G가 된다. - 1G로 잡으면 버퍼풀의 크기는 2G● innodb_buffer_pool_size- 디스크 액세스를 줄이기 위한 캐…
  • profile_image 원인은 테이블 타입 부분이 명핑이 엔진으로 변경이 되서 그렇습니다.어떤 것이든 왠만하면 그냥 사용하면 좋을텐데 장기적으로 보면 이것이 맞기 때문에 변경한다고 하고 변경을 합니다.데이터베이스 테이블 타입이나데이터베이스 테이블 엔진이나 우린 상관 없는데 말입니다.vi 치환하는 기본적인 문법시작행,끝행s/원래문자열/변경문자열/옵션 예) 전체 문서에서 hello로 된것을 ddd로 변경한다.:%s/hello/ddd/gvi로 열어서 아래와 같이 입력하고 …
  • profile_image MySQL8 기준으로 건드리지 않은 디폴트 상태는 아래와 같습니다.● 현재 사용 가능한 MySQL 엔진 종류 확인 명령mysql> show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine             | Suppor…