Sao chép dữ liệu là quá trình sao chép dữ liệu của bạn trên nhiều máy chủ để cải thiện tính khả dụng của dữ liệu và nâng cao độ tin cậy và hiệu suất của ứng dụng. Trong MySQL sao chép, dữ liệu được sao chép từ cơ sở dữ liệu từ máy chủ chính đến các nút khác trong thời gian thực để đảm bảo tính nhất quán của dữ liệu và cũng để cung cấp sao lưu và dự phòng.
Trong hướng dẫn này, chúng tôi trình bày cách bạn có thể thiết lập MySQL ( Chủ nô ) sao chép trong các bản phân phối dựa trên RHEL chẳng hạn như CentOS , Fedora , Rocky Linux, và AlmaLinux .
Thiết lập bản sao MySQL
Vì vậy, đây là MySQL của chúng tôi thiết lập phòng thí nghiệm nhân bản.
MySQL Master - 10.128.0.14MySQL Slave - 10.128.15.211
Hãy bắt đầu…
Bước 1:Cài đặt MySQL trên Máy chủ Master và Slave
Chúng tôi sẽ bắt đầu bằng cách cài đặt MySQL cơ sở dữ liệu trên cả cái chính và nô lệ máy chủ.
$ sudo dnf install @mysql
Sau khi cài đặt xong, hãy chuẩn bị khởi động máy chủ cơ sở dữ liệu.
$ sudo systemctl start mysqld
Sau đó cho phép nó bắt đầu khởi động hệ thống hoặc khi khởi động lại.
$ sudo systemctl kích hoạt mysqld
Sau đó, xác nhận rằng MySQL máy chủ cơ sở dữ liệu đang chạy như được hiển thị:
$ sudo systemctl status mysqld
Bước 2:Bảo mật MySQL trên Máy chủ Master và Slave
Bước tiếp theo là bảo mật MySQL cơ sở dữ liệu trên cả cái chính và nô lệ may chủ. Điều này là do cài đặt mặc định không an toàn và có một số lỗ hổng có thể dễ dàng bị tin tặc khai thác.
Vì vậy, để làm cứng MySQL, hãy chạy lệnh:
$ sudo mysql_secure_installation
Trước tiên, bạn sẽ được yêu cầu đặt MySQL mật khẩu gốc. Đảm bảo cung cấp mật khẩu gốc mạnh, tốt hơn là có nhiều hơn 8 ký tự là sự kết hợp của các ký tự viết hoa, viết thường, đặc biệt và số.
Đối với các lời nhắc còn lại, hãy nhập 'Y'
để điều chỉnh máy chủ cơ sở dữ liệu theo các cài đặt được đề xuất.
Sau khi bạn hoàn tất cài đặt và củng cố MySQL trên nút chính và nút phụ, việc tiếp theo là định cấu hình nút chính.
Bước 3:Định cấu hình Nút chính (Máy chủ)
Bước tiếp theo là định cấu hình Chính và cấp cho nô lệ nút truy cập vào nó. Trước tiên, chúng tôi cần chỉnh sửa mysql-server.cnf tệp cấu hình.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Thêm các dòng sau vào [mysqld]
phần.
bind-address =10.128.0.14server-id =1log_bin =mysql-bin
Sau khi hoàn tất, hãy lưu các thay đổi và thoát. Sau đó khởi động lại MySQL máy chủ.
$ sudo sysemctl khởi động lại mysqld
Tiếp theo, đăng nhập vào MySQL vỏ.
$ sudo mysql -u root -p
Thực thi các lệnh sau để tạo người dùng cơ sở dữ liệu sẽ được sử dụng để liên kết chính và phụ để sao chép.
mysql> TẠO NGƯỜI DÙNG 'replica'@'10.128.15.211' ĐƯỢC XÁC NHẬN BỞI '[email protected]'; mysql> BẬT LƯỢT THAY THẾ *. * ĐẾN 'replica'@'10.128.15.211';
Áp dụng các thay đổi và thoát khỏi MySQL máy chủ.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Xác minh trạng thái của trang cái.
mysql> HIỂN THỊ TRẠNG THÁI CHÍNH \ G
Ghi lại Tên tệp và Vị trí. Bạn sẽ cần điều này sau này khi thiết lập nô lệ để nhân rộng. Trong trường hợp của chúng tôi, chúng tôi có tên tệp là mysql-bin.000001
và Vị trí 1232 .
Bước 4:Định cấu hình Slave Node (Máy chủ)
Bây giờ, quay lại nút Slave. Một lần nữa, hãy chỉnh sửa mysql-server.cnf tệp cấu hình.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Như trước đây, hãy dán những dòng này dưới [mysqld]
tiết diện. Thay đổi địa chỉ IP để tương ứng với IP của nô lệ. Ngoài ra, chỉ định một id máy chủ khác . Ở đây, chúng tôi đã gán giá trị của nó là 2 .
bind-address =10.128.15.211server-id =2log_bin =mysql-bin
Lưu các thay đổi và thoát khỏi tệp. Sau đó khởi động lại máy chủ cơ sở dữ liệu.
$ sudo systemctl khởi động lại mysqld
Để định cấu hình Slave để sao chép từ nút Chính, đăng nhập vào máy chủ MySQL của Slave.
$ sudo mysql -u root -p
Đầu tiên và quan trọng nhất, hãy dừng các chuỗi sao chép:
mysql> DỪNG LƯỢT;
Sau đó, thực hiện lệnh sau để định cấu hình nút phụ để sao chép cơ sở dữ liệu từ chính.
mysql> ĐỔI MASTER TO MASTER_HOST ='10 .128.0.14 ', MASTER_USER =' replica ', MASTER_PASSWORD='[email protected]', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS =1232;Lưu ý rằng MASTER_LOG_FILE và MASTER_LOG_POS cờ tương ứng với tệp và Vị trí giá trị từ Chính ở cuối Bước 1.
MASTER_HOST , MASTER_USER, và MASTER_PASSWORD tương ứng với địa chỉ IP Chính, người dùng bản sao và mật khẩu của người dùng bản sao tương ứng.
Sau đó, bắt đầu các chuỗi sao chép nô lệ:
mysql> BẮT ĐẦU LƯỢT;Bước 4:Kiểm tra bản sao MySQL Master-Slave
Bây giờ, để kiểm tra xem bản sao giữa nút chính và nút phụ có hoạt động hay không, hãy đăng nhập vào máy chủ cơ sở dữ liệu MySQL trên nút chính:
$ sudo mysql -u root -pTạo cơ sở dữ liệu thử nghiệm. Tại đây, cơ sở dữ liệu thử nghiệm của chúng tôi được gọi là replication_db .
mysql> TẠO CƠ SỞ DỮ LIỆU replication_db;Xác minh sự tồn tại của cơ sở dữ liệu.mysql> HIỂN THỊ DỮ LIỆU;Bây giờ, hãy chuyển đến nút nô lệ, đăng nhập vào máy chủ MySQL và xác nhận rằng replication_db cơ sở dữ liệu hiện tại. Từ kết quả bên dưới, chúng ta có thể thấy rằng cơ sở dữ liệu hiện diện. Đây là xác nhận rằng quá trình sao chép đã diễn ra từ nút chính đến nút phụ.
mysql> HIỂN THỊ DỮ LIỆU;Vậy là xong, chúng tôi đã chứng minh thành công cách bạn có thể thiết lập MySQL mô hình sao chép master-slave có thể sao chép cơ sở dữ liệu từ nút chính sang nút phụ.