본문 바로가기
Database/MariaDB Galera Cluster

MySQL/MariaDB Galera Cluster 구성하기 - Part 2

by 시스파고 2020. 6. 4.

 

[순서]

2020/06/02 - [Database/Galera Cluster] - MySQL/MariaDB Galera Cluster 구성하기 - Part 1

2020/06/04 - [Database/Galera Cluster] - MySQL/MariaDB Galera Cluster 구성하기 - Part 2

2020/06/04 - [Database/Galera Cluster] - MySQL/MariaDB Galera Cluster 구성하기 - Part 3

2020/06/05 - [Database/Galera Cluster] - Galera Cluster 재기동 에러 해결 방안

 

 

 

지금부터 DB설치에서부터 2개의 DB 서버(Node)를 Galera Cluster로 만들어 보다 뛰어난 DB를 만들어보자

앞선 Part 1에서 간략하게 설명을 했으니 동작방식은.......... 어차피 우리는 설치하여 구성하는게 목표니깐 패스...하도록 하겠다.

매우 잘 만들었다고하니 그걸로 만족 :) 우리는 잘 만들어진 것을 잘 쓰면되는 것이다!

 

0. 구성 과정 흐름도

-> MariaDB 설치

-> 노드별 설정

-> 최초 노드서버 Clustering 초기화

-> 노드 Cluster에 추가

-> Clustering 확인

-> DB Sync 확인

 

1. MariaDB Clustering 구성 환경

- OS : CentOS-7.3-64

- DB : MariaDB 10.2

- Server One IP : 10.41.226.226 

- Server Two IP : 10.41.227.100

 

실 구축이 아닌 Test용으로 구성하기때문에 방화벽은 in/out 모두 오픈하여 진행하였다. 오픈해야하는 Port정보는 Part 1에서 확인이 가능합니다. 또한 Galera Cluster는 3개의 node를 Clustering하는것을 권장하고 있지만 2 node로도 충분히 구성이 가능하므로 2개의 서버로 진행한다 ^^

 

2. Install MariaDB

MariaDB 공식사이트에 들어가면 아주 진철하게 설치하는 방법이 소개되어 있다.

- MariaDB Site : https://mariadb.org/

- MariaDB Repositories Download : https://downloads.mariadb.org/mariadb/repositories/#mirror=iweb

나의 구성환경과 동일하게 선택하면 아래 그림과 같이 경로와 파일정보를 제공해준다.

 

 

2.1 MariaDB 설치 (Server One, Server Two)

# Repository를 생성
[root@galera-01 ~]# vi /etc/yum.repo.d/MariaDB.repo


# MariaDB.repo 정보
# MariaDB 10.2 CentOS repository list - created 2020-06-04 00:40 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


# Install MariaDB
[root@galera-01 ~]# yum install MariaDB-server MariaDB-client
========================================================================================================
 Package                        Arch          Version                              Repository      Size
========================================================================================================
Installing:
 MariaDB-client                 x86_64        10.2.32-1.el7.centos                 mariadb         11 M
 MariaDB-compat                 x86_64        10.2.32-1.el7.centos                 mariadb        2.2 M
     replacing  mariadb-libs.x86_64 1:5.5.52-1.el7
 MariaDB-server                 x86_64        10.2.32-1.el7.centos                 mariadb         24 M
Installing for dependencies:
 MariaDB-common                 x86_64        10.2.32-1.el7.centos                 mariadb         81 k
 boost-program-options          x86_64        1.53.0-28.el7                        base           156 k
  galera                         x86_64        25.3.29-1.rhel7.el7.centos           mariadb        8.2 M  
 perl-Compress-Raw-Bzip2        x86_64        2.061-3.el7                          base            32 k
 perl-Compress-Raw-Zlib         x86_64        1:2.061-4.el7                        base            57 k
 perl-DBI                       x86_64        1.627-4.el7                          base           802 k
 perl-IO-Compress               noarch        2.061-2.el7                          base           260 k
 perl-Net-Daemon                noarch        0.48-5.el7                           base            51 k
 perl-PlRPC                     noarch        0.2020-14.el7                        base            36 k
Updating for dependencies:
 openssl                        x86_64        1:1.0.2k-19.el7                      base           493 k
 openssl-libs                   x86_64        1:1.0.2k-19.el7                      base           1.2 M

Transaction Summary
========================================================================================================   


# MariaDB version 확인
[root@galera-01 ~]# mysql --version
mysql  Ver 15.1 Distrib 10.2.32-MariaDB, for Linux (x86_64) using readline 5.1

 

 

2.2 MariaDB Setup Root (Server One, Server Two)

MariaDB를 시작하고 Setup을 진행한다. Setting이 완료되면 DB를 Stop해준다.

# Start MariaDB
[root@galera-01 ~]# service mysql start
Starting mysql (via systemctl):                            [  OK  ]
[root@galera-01 ~]# mysql_secure_installation


# Setting
Enter current password for root (enter for none):
OK, successfully used password, moving on...

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
 Remove anonymous users? [Y/n] y
 ... Success!
 
 Disallow root login remotely? [Y/n] n
 ... skipping.
 
 Remove test database and access to it? [Y/n] y
  - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
 Reload privilege tables now? [Y/n] y
 ... Success!
 
 Thanks for using MariaDB!
 
 
# Stop MariaDB
[root@galera-01 ~]# service mysql stop
Stopping mysql (via systemctl):                            [  OK  ]

 

3. Galera Cluster 설정

Galera Cluster를 처음으로 구성하는 Node와 추가되는 Node의 설정값에 조금 차이가 있으니 주의해서 설정을 진행한다.

/etc/my.cnf.d/server.xml을 수정할 것이고 [galera]부분만 수정을 진행하면 된다.

 

 

3.1 Node1(Server One) Galera Cluster 설정

# Config node1(Server One) galera clutser
[root@galera-01 ~]# vi /etc/my.cnf.d/server.cnf 

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so    # 초기설치 시 기본경로
wsrep_cluster_address='gcomm://'                     # Galera 초기설정 시 미입력 
wsrep_cluster_name='cluster'                         # Node1/2 동일하게  
wsrep_node_address='10.41.226.226'                   # Node1(Server One) IP 
wsrep_node_name='galera01'                           # Node1 Name     
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

 

 

3.2 Node2(Server Two) Galera Cluster 설정

# Config node2(Server Two) galera clutser
[root@galera-02 ~]# vi /etc/my.cnf.d/server.cnf 

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so    # 초기설치 시 기본경로
wsrep_cluster_address='gcomm://10.41.226.226'        # Galera Clustering IP(node1)
wsrep_cluster_name='cluster'                         # Node1/2 동일하게  
wsrep_node_address='10.41.227.100'                   # Node2(Server One) IP 
wsrep_node_name='galera02'                           # Node2 Name     
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

 

Part 3에서 계속.....

Cluster 초기화(Clustering)

댓글