Tạo MySQL Cluster và Tham Gia Group

Giới thiệu

Multi-node MySQL là giải pháp tiên tiến giúp nâng cao khả năng mở rộng và tăng cường hiệu suất cho các hệ thống cơ sở dữ liệu. Bằng cách phân tán dữ liệu và xử lý trên nhiều nút (node), Multi-node MySQL không chỉ giảm tải cho một máy chủ mà còn đảm bảo tính toàn vẹn và tính sẵn sàng cao hơn. Đây là một công nghệ quan trọng đối với các doanh nghiệp cần xử lý lượng lớn dữ liệu trong thời gian thực mà vẫn đảm bảo tính ổn định của hệ thống.

Về chi tiết các bạn có thể tham khảo tại trang chủ của MySQL & MariaDB :

https://dev.mysql.com/doc/mysql-cluster-excerpt/8.0/en/mysql-cluster-general-info.html

https://mariadb.com/kb/en/galera-cluster

Phần 4: Tạo MySQL Cluster và Tham Gia Group: Hướng Dẫn Từng Bước

MySQL Cluster giúp mở rộng quy mô và đảm bảo tính toàn vẹn của dữ liệu bằng cách phân phối trên nhiều nút. Bài viết này sẽ hướng dẫn bạn cách tạo MySQL Cluster và tham gia vào nhóm (group) bằng MySQL Shell.

Đặt tham số:

var c1 = 'cluster@192.168.33.20:3306'
var c2 = 'cluster@192.168.33.21:3306'
var c3 = 'cluster@192.168.33.22:3306'

Host 1: Connect vào host và tạo Cluster

shell.connect(c1)
var cluster = dba.createCluster('groupa');

Connect từng Cluster vào Group

cluster.addInstance(c2) -> Incremental (I)
cluster.addInstance(c3) -> Incremental (I)

Cài đặt bầu chọn Node chính và Node phụ

Bầu chọn node nào sẽ làm node chính, node phụ. Với những môi trường thiếu tài nguyên thì đây là một cách để tối ưu tài nguyên phần cứng. Tuy nhiên, khuyến nghị nhà cung cấp nên là các host tương đồng như nhau về mặt tài nguyên để đảm bảo hệ thống chạy thông suốt

  • Member Weight : 0 -> 100
  • Default 50 !
  • Member Weight càng cao -> Primary

Có 3 cách như sau:

Cách 1:

dba.createCluster('cluster1', {memberWeight:35})
var mycluster = dba.getCluster()
mycluster.addInstance('icadmin@ic2', {memberWeight:25})
mycluster.addInstance('icadmin@ic3', {memberWeight:50})

Cách 2:

Kiểm tra trên các node : sử dụng Heavy Weight . Heavy Weight càng CAO -> PRIMARY

mysql> select member_host,member_state,member_role,member_version from performance_schema.replication_group_members;

Kiểm tra Server Weight trên các node:

[root@innodb1 ~]# mysql -e "select @@hostname, @@group_replication_member_weight\G"
[root@innodb2 ~]# mysql -e "select @@hostname, @@group_replication_member_weight\G"
[root@innodb3 ~]# mysql -e "select @@hostname, @@group_replication_member_weight\G"

Set trên host muốn đặt làm Primary node:

mysql> set global group_replication_member_weight = 70;
## Default : 50

Cách 3:

Sử dụng group_replication_set_as_primary. Tại host muốn làm Primary:

Show UUID:

mysql> show global variables like 'server_uu%';

Set primary:

mysql> select group_replication_set_as_primary('c5aed435-d58d-11ea-bb26-5254004d77d3');

Kiểm tra lại:

mysql> select member_host,member_state,member_role,member_version from performance_schema.replication_group_members;

Tóm lại

Sau khi hoàn thành việc tạo cluster và tham gia group, hệ thống của bạn đã sẵn sàng xử lý lượng lớn dữ liệu với độ tin cậy cao. Tiếp theo, hãy đảm bảo rằng bạn cấu hình MySQL Router để tối ưu hóa kết nối.

Xem thêm

I am gaining experience and developing my skills in the field of information technology. My focus areas include basic network administration, troubleshooting, and supporting IT infrastructure. I am keen on learning and growing in various aspects of IT, from system setup and maintenance to exploring new technologies and methodologies.

Post Comment