Pre-checking và Chuẩn Bị Hệ Thống Trước Khi Tạo MySQL Cluster

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 3 : Pre-checking và Chuẩn Bị Hệ Thống Trước Khi Tạo MySQL Cluster

Trước khi tạo MySQL Cluster, bạn cần thực hiện các bước pre-checking và chuẩn bị hệ thống để đảm bảo mọi thành phần hoạt động trơn tru. Bài viết này sẽ hướng dẫn bạn cách kiểm tra phần cứng, mạng và cấu hình phần mềm cần thiết.

Kiểm tra các thông số và chuẩn bị

Cấu hình 3 host với thông số :

node 0 : 192.168.33.20/24 ‘cluster’@’%’ apt install mysql-server mysql-shell(8.0)

node 1 : 192.168.33.21/24 ‘cluster’@’%’ apt install mysql-server mysql-shell(8.0)

node 2 : 192.168.33.22/24 ‘cluster’@’%’ apt install mysql-server mysql-shell(8.0)

Phân Quyền cho InnoDB Cluster :

GRANT CREATE USER, FILE, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SELECT, SHUTDOWN, SUPER ON *.* TO 'cluster'@'%' WITH GRANT OPTION;
GRANT DELETE, INSERT, UPDATE ON mysql.* TO 'cluster'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata.* TO 'cluster'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata_bkp.* TO 'cluster'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata_previous.* TO 'cluster'@'%' WITH GRANT OPTION;

Chuẩn bị trên các host 1, 2 ,3 các cấu hình như sau

nano /etc/mysql/mysql.conf.d/my.cnf

Host 1:

#innodb-1
binlog_checksum = NONE
enforce_gtid_consistency = ON
gtid_mode	= ON
log_slave_updates	 = ON
master_info_repository   = TABLE
relay_log_info_repository	= TABLE
server_id	= 55554
transaction_write_set_extraction	= XXHASH64
disable_log_bin
log_bin	= ON

Host 2:

#innodb-2
binlog_checksum = NONE
enforce_gtid_consistency = ON
gtid_mode	= ON
log_slave_updates	 = ON
master_info_repository   = TABLE
relay_log_info_repository	= TABLE
server_id	= 55555
transaction_write_set_extraction	= XXHASH64
disable_log_bin
log_bin	= ON

Host 3:

#innodb-3
binlog_checksum = NONE
enforce_gtid_consistency = ON
gtid_mode	= ON
log_slave_updates	 = ON
master_info_repository   = TABLE
relay_log_info_repository	= TABLE
server_id	= 55557
transaction_write_set_extraction	= XXHASH64
disable_log_bin
log_bin	= ON

Trên Mysql Shell đặt tham số và connect để config từng host

Đặt các 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'

Connect từng host và kiểm tra :

Host 1 : 
    shell.connect(c1)
    dba.configureInstance('cluster@192.168.33.20')
Host 2 :
    shell.connect(c2)
    dba.configureInstance('cluster@192.168.33.21')
Host 3 :
    shell.connect(c3)
    dba.configureInstance('cluster@192.168.33.22')

Kiểm tra trạng thái tiêu chuẩn từng host :

Host 1 :
	dba.configureInstance('cluster@192.168.33.20:3306')           -> Status : Ok là đạt
Host 2 :
	dba.checkInstanceConfiguration('cluster@192.168.33.21:3306'); -> status OK 
Host 3 :
	dba.checkInstanceConfiguration('cluster@localhost:3306'); 	  -> status OK

Tóm lại

Hoàn thành bước pre-checking và chuẩn bị hệ thống giúp bạn tránh các lỗi không mong muốn khi thiết lập MySQL Cluster. Đây là bước quan trọng để bảo đảm hệ thống hoạt động ổn định và hiệu quả.

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