[MariaDB] Galera 클러스터 구축4: 복제 테스트 및 데이터 동기화 확인
Galera Cluster의 가장 중요한 특징 중 하나는 각 노드 간의 실시간 데이터 복제입니다. 이번 글에서는 이를 직접 테스트해보는 과정을 소개합니다. 새롭게 구성한 예제를 기반으로 데이터베이스를 생성하고, 테이블을 만들고, 각 노드에 데이터를 삽입하여 복제가 제대로 이루어지는지 확인해보겠습니다.
테스트 시나리오
- 데이터베이스 이름: inventory
- 테이블 이름: products
- 테이블 구성: 제품 ID, 제품명, 수량
- 엔진: InnoDB (Galera는 InnoDB만 지원)
- Galera Cluster 노드: mariadb1, mariadb2, mariadb3
1. 데이터베이스 생성
$ mysql -u root -p Enter password: ****** -- 데이터베이스 생성 mysql> CREATE DATABASE inventory; -- 확인 mysql> SHOW DATABASES;
생성된 inventory
데이터베이스는 Galera의 복제를 통해 나머지 노드에도 자동으로 생성됩니다. mariadb2와 mariadb3에서도 동일하게 확인합니다.
2. 테이블 생성
이제 inventory
데이터베이스에 products
테이블을 생성합니다.
mysql> USE inventory; mysql> CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(100), quantity INT ) ENGINE=InnoDB; mysql> SHOW TABLES;
각 노드에서 SHOW TABLES
를 실행하면 동일한 테이블이 존재함을 확인할 수 있습니다.
3. 데이터 삽입 및 복제 확인
세 노드 각각에서 서로 다른 데이터를 삽입해보고, 복제가 잘 되는지 확인해보겠습니다.
-- mariadb1에서 실행 mysql> INSERT INTO products VALUES (1, 'Notebook', 50); -- mariadb2에서 실행 mysql> INSERT INTO products VALUES (2, 'Pen', 200); -- mariadb3에서 실행 mysql> INSERT INTO products VALUES (3, 'Monitor', 30);
이제 세 노드 중 아무 곳에서나 전체 데이터를 조회해봅니다.
mysql> SELECT * FROM products;
출력 예시:
+------------+--------------+----------+ | product_id | product_name | quantity | +------------+--------------+----------+ | 1 | Notebook | 50 | | 2 | Pen | 200 | | 3 | Monitor | 30 | +------------+--------------+----------+
모든 노드에서 동일한 결과를 확인할 수 있다면 Galera Cluster의 동기 복제가 정상적으로 동작하고 있음을 의미합니다.
결론
이번 예제를 통해 Galera Cluster에서 다음 사항을 확인했습니다:
- 어느 노드에서든 데이터베이스 및 테이블 생성이 가능하며, 모든 노드에 실시간 복제됨
- 다중 노드에서 데이터를 각각 삽입해도 충돌 없이 통합 복제됨
- 단순한 구조의 테이블을 활용한 실습으로 클러스터 안정성 확인 가능
운영 환경에 앞서 이러한 테스트를 통해 Galera의 복제 모델을 충분히 이해하고 설정을 검증하는 것이 중요합니다. 다음 단계로는 트랜잭션 충돌 처리, 노드 장애 시 동작 방식 등을 테스트해보는 것을 권장합니다.
관련 포스팅
- [MariaDB] Galera 클러스터 구축1: RHEL 8.8 기반 노드 3대 준비
- [MariaDB] Galera 클러스터 구축2: MariaDB 10.6 3대 설치
- [MariaDB] Galera 클러스터 구축3: Garela Cluster 환경 설정
댓글
댓글 쓰기