[DB] DB 클러스터 설정

2024. 12. 4. 16:23· CS/DB
목차
  1. 클러스터란?
  2. 클러스터 구성 실습 (DB 서버 3대)
  3. DB 생성 실습
  4. DB 중지 실습
728x90

클러스터란?

여러 대의 컴퓨터가 모여서 하나의 시스템으로 동작하는 것

 

클러스터는 왜 홀수로 구성해야 될까?

  • 쉽게 말하자면 클러스터 내의 서버들은 대표 서버를 선정하기 위해 투표를 진행한다.
  • 만약에 서버가 짝수면, 투표가 동률이 나올 수 있다.
  • 서버가 홀수면 투표에서 동률이 나올 수 없다 => 무조건 표를 제일 많이 받는 서버가 뽑힌다.
  • mariadb에서는 투표 = '쿼럼' 이라고 한다.

홀수로 구성했을 때 과반수의 개수를 계산하는 게 훨씬 쉬워서 대부분의 클러스터를 구성하는 프로그램 모두 홀수로 구성한다

 


클러스터 구성 실습 (DB 서버 3대)

1) 서버 중지

systemctl stop mariadb

2) 설정 추가 (3대 중 1대만 먼저 실행)

vi /etc/mysql/mariadb.conf.d/50-server.cnf


마지막 줄에 다음 내용 추가

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster" # 3대의 컴퓨터를 묶었을 때 내가 지어줄 이름
wsrep_node_address="[IP 주소]" # 현재 컴퓨터의 IP 주소

 

 

설정 후 재시작

systemctl restart mariadb

 


3) 클러스터 구성 실행 (3대 중 1대만 먼저 설정)

galera_new_cluster

 


4) 설정 변경 (나머지 서버 설정)

systemctl stop mariadb
vi /etc/mysql/mariadb.conf.d/50-server.cnf

 

아래 내용 추가

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://[IP 주소 1],[IP 주소 2],[IP 주소 3]"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster" # 3대의 컴퓨터를 묶었을 때 내가 지어줄 이름
wsrep_node_address="[IP 주소]" # 현재 컴퓨터의 IP 주소

 


5) 서버 재시작

systemctl restart mariadb

 


6) 처음에 설정했던 서버 설정 변경 (1대)

vi /etc/mysql/mariadb.conf.d/50-server.cnf
# 아래 부분 수정
wsrep_cluster_address="gcomm://[IP 주소 1],[IP 주소 2],[IP 주소 3]"

 


7) 최종 확인

mariadb -u root -p
show status like 'wsrep_cluster_status';
# 모든 노드에서 Primary
show status like 'wsrep_cluster_size';
# 모든 노드에서 클러스터의 총 노드 수(3)
show status like 'wsrep_local_state_comment';
# 모든 노드에서 Synced


DB 생성 실습

3대 중 아무 곳에서 DB 생성

 CREATE DATABASE test1;

 

3대에서 모두 생성이 되었나 확인

 

 


 

DB 중지 실습

3대 중에 아무 서버 1대를 중지 시켜보자

나는 10.10.10.124 서버를 중지시켰다.

systemctl stop mariadb

 

나머지 2대 중 1대에서 DB를 생성

CREATE DATABASE test2;

 

 

중지한 서버를 다시 실행시켜보자

=> 위에서 만들었던 DB가 잘 들어가 있는 것을 확인할 수 있따 !!

728x90
저작자표시 비영리 변경금지 (새창열림)

'CS > DB' 카테고리의 다른 글

[DB] 3계층 아키텍처 - 다중화 실습 (2)  (0) 2024.12.04
[DB] 3계층 아키텍처 - 다중화 실습 (1)  (0) 2024.12.03
[DB] DB 서버 핫 사이트 구성 실습 (Active - Standby)  (0) 2024.12.03
[DB] DB 서버 부하 분산 (HAProxy)  (0) 2024.12.03
[DB] 재해 복구(DR) / DB 서버 Replication 설정 / 미러 사이트 구성 실습  (0) 2024.12.03
  1. 클러스터란?
  2. 클러스터 구성 실습 (DB 서버 3대)
  3. DB 생성 실습
  4. DB 중지 실습
'CS/DB' 카테고리의 다른 글
  • [DB] 3계층 아키텍처 - 다중화 실습 (2)
  • [DB] 3계층 아키텍처 - 다중화 실습 (1)
  • [DB] DB 서버 핫 사이트 구성 실습 (Active - Standby)
  • [DB] DB 서버 부하 분산 (HAProxy)
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • 오블완
  • spring boot
  • 그리디
  • web
  • 회고
  • 프로그래머스
  • 리눅스
  • 백트래킹
  • 백준
  • 네트워크
  • AWS
  • dfs
  • bfs
  • be
  • Gateway
  • 우선순위 큐
  • fe
  • db
  • 트리
  • Java
  • 실습
  • 알고리즘
  • 구현
  • js
  • 자료구조
  • cs
  • DP
  • 티스토리챌린지
  • vue
  • 주간회고

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[DB] DB 클러스터 설정
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.