[순서]
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 재기동 에러 해결 방안
초기 설정이 완료되었으니 Node1/2를 Clustering을하여 DB가 잘 연동되었는지 확인해보겠습니다.
확인 후에 추가로 Node1(Server One)의 초기설정을 변경해야하는 중요한 작업이 있으니 꼭 확인해야합니다. 이 부분은 뒤에서 좀 더 자세히 설명하겠습니다.
0. Galera Clustering 작업
0.1 Node 1 Galera Cluster 초기화
앞서 Node 1/2 모두 초기 설정을 완료했으니 node1에서 cluster를 초기화하는 작업이 먼저 필요합니다.
# Galera Cluster 초기화
[root@galera-01 ~]# service mysql start --wsrep-new-cluster
Starting mysql (via systemctl): [ OK ]
# node1(Server One) 상태 확인
[root@galera-01 ~]# ps -ef | grep mysql
mysql 14773 14619 0 13:30 ? 00:00:00 /usr/sbin/mysqld
--basedir=/usr
--datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin
--user=mysql
--wsrep_on=ON
--wsrep_provider=/usr/lib64/galera/libgalera_smm.so
--log-error=/var/lib/mysql/galera-01.err
--pid-file=/var/lib/mysql/galera-01.pid
--wsrep_start_position=a4fe716e-a609-11ea-95ab-fa16ac4cfe80:0
0.2 Node 2 Galera Cluster 추가
# Galera Cluster 초기화
[root@galera-02 ~]# service mysql start
Starting mysql (via systemctl): [ OK ]
# node2(Server Two) 상태 확인
[root@galera-02 ~]# ps -ef | grep mysql
mysql 16041 15887 0 13:46 ? 00:00:00 /usr/sbin/mysqld
--basedir=/usr
--datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin
--user=mysql
--wsrep_on=ON
--wsrep_provider=/usr/lib64/galera/libgalera_smm.so
--log-error=/var/lib/mysql/galera-02.err
--pid-file=/var/lib/mysql/galera-02.pid
--wsrep_start_position=00000000-0000-0000-0000-000000000000:-1
1. Clustering 상태 확인
MariaDB에 접속하여 Cluster가 잘 적용되었는지 확인하겠습니다. 또한 아래내용과 같이 검색을하면 각 노드의 값이 동일하게 적용되어 Cluster가 잘 구성된 것을 확인 할 수 있습니다. 'wsrep%'값을 일부만 발취했습니다.
# MariaDB 접속
[root@galera-01 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.2.32-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show status like 'wsrep%';
+-------------------------------+---------------------------------------+
| Variable_name | Value |
+-------------------------------+---------------------------------------+
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
| wsrep_incoming_addresses | 10.41.226.226:3306,10.41.227.100:3306 |
| wsrep_local_state_comment | Synced |
| wsrep_provider_name | Galera |
| wsrep_ready | ON |
+-------------------------------+---------------------------------------+
2. DB 생성으로 데이터 sync 확인
node1에서 galeradb database를 생성하여 실시간으로 node2에서도 생성되었는지 확인해보자.
# node1에서 database 생성
[root@galera-01 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.2.32-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
MariaDB [(none)]> create database galeradb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| galeradb |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
# node2에 sync되어 생성되었는지 확인
[root@galera-02 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.2.32-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
MariaDB [(none)]>
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| galeradb |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
3. *중요* 완료 후 node1(Server One) 설정 변경
모든 Test가 완료되었습니다. 하지만 아직 마지막으로 중요한 작업이 남아있습니다. 현 상태로 두게되면 DB를 restart했을때 에러가 발생하게 됩니다. 그 이유는 node1에 wsrep_cluster_address='gcomm://'의 값이 아무것도 없기때문에 발생하는 에러로 cluster에 포함된 IP들을 추가해야 합니다.
# 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://10.41.227.100' # Galera Cluster IP 추가
wsrep_cluster_name='cluster'
wsrep_node_address='10.41.226.226'
wsrep_node_name='galera01'
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
Finish!!! 수고하세요!! 모두
'Database > MariaDB Galera Cluster' 카테고리의 다른 글
MariaDB Galera Cluster - DeadLock, Split Brain 문제 (1) | 2020.06.09 |
---|---|
Galera Cluster 재기동 에러 해결 방안 (0) | 2020.06.05 |
MySQL/MariaDB Galera Cluster 구성하기 - Part 2 (1) | 2020.06.04 |
MySQL/MariaDB Galera Cluster 구성하기 - Part 1 (2) | 2020.06.02 |
댓글