Replication trong MySQL là một cơ chế cho phép dữ liệu từ một cơ sở dữ liệu (máy chủ chính hay master) được sao chép và đồng bộ hóa đến một hoặc nhiều cơ sở dữ liệu khác (máy chủ phụ hay slave). Mục đích chính của replication là cung cấp khả năng sao lưu, cân bằng tải và tăng cường độ sẵn sàng của dữ liệu.
Replication trong MySQL cho phép bạn duy trì nhiều bản sao của cơ sở dữ liệu ở các vị trí khác nhau. Khi có bất kỳ thay đổi nào xảy ra trên máy chủ chính, những thay đổi này sẽ được ghi lại và sau đó được chuyển tiếp đến các máy chủ phụ. Điều này có nhiều lợi ích như:
MySQL hỗ trợ nhiều loại replication, trong đó phổ biến nhất là:
Đây là loại replication mặc định trong MySQL. Khi một câu lệnh thay đổi dữ liệu được thực hiện trên máy chủ chính, câu lệnh đó sẽ được ghi lại trong một tệp log nhị phân (binary log). Máy chủ phụ sẽ đọc và áp dụng những thay đổi này từ log.
MySQL cũng hỗ trợ khả năng sao chép từ nhiều máy chủ chính đến một máy chủ phụ. Điều này rất hữu ích cho các ứng dụng lớn khi cần hợp nhất dữ liệu từ nhiều nguồn.
Kích hoạt Binary Logging: Mở tệp cấu hình MySQL (my.cnf
hoặc my.ini
) và thêm các dòng sau:
[mysqld] log-bin=mysql-bin server-id=1
Khởi động lại dịch vụ MySQL để áp dụng thay đổi.
Tạo người dùng cho replication:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%'; FLUSH PRIVILEGES;
Ghi lại trạng thái của máy chủ chính:
SHOW MASTER STATUS;
Cài đặt Server ID cho Slave: Mở tệp cấu hình MySQL trên máy chủ phụ và thêm:
[mysqld] server-id=2
Khởi động lại dịch vụ MySQL.
Thiết lập replication:
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', -- Tên file log từ SHOW MASTER STATUS MASTER_LOG_POS=12345; -- Vị trí từ SHOW MASTER STATUS
Bắt đầu quá trình sao chép:
START SLAVE;
Để kiểm tra tình trạng của máy chủ phụ, bạn có thể sử dụng:
SHOW SLAVE STATUSG
Điều này sẽ hiển thị thông tin về trạng thái của replication, bao gồm thông tin lỗi (nếu có).
Replication trong MySQL mang lại nhiều lợi ích cho tổ chức và doanh nghiệp, bao gồm:
Replication trong MySQL là một công cụ mạnh mẽ giúp quản lý dữ liệu hiệu quả hơn. Bằng cách thiết lập replication, bạn có thể tối ưu hóa hiệu suất cơ sở dữ liệu, nâng cao độ sẵn sàng và bảo mật dữ liệu của mình. Hãy nhớ rằng việc cấu hình và quản lý replication cần được thực hiện cẩn thận để đảm bảo tính nhất quán và hiệu suất của hệ thống.