Android

Làm cách nào để định cấu hình chính mysql (mariadb)

Master to Master replication for MariaDB

Master to Master replication for MariaDB

Mục lục:

Anonim

Sao chép MySQL là một quá trình sao chép dữ liệu từ một máy chủ cơ sở dữ liệu (chủ) sang một hoặc nhiều máy chủ (nô lệ).

MySQL hỗ trợ một số cấu trúc liên kết sao chép với cấu trúc liên kết Master / Slave là một trong những cấu trúc liên kết nổi tiếng nhất trong đó một máy chủ cơ sở dữ liệu đóng vai trò là chủ, trong khi một hoặc nhiều máy chủ đóng vai trò là nô lệ. Theo mặc định, bản sao không đồng bộ trong đó chủ gửi các sự kiện mô tả sửa đổi cơ sở dữ liệu tới nhật ký nhị phân của nó và nô lệ yêu cầu các sự kiện khi chúng sẵn sàng.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập sao chép MariaDB Master / Slave với một máy chủ chính và một máy chủ nô lệ trên Debian 10. MariaDB là cài đặt mặc định của MySQL trong Debian. Các bước tương tự áp dụng cho Oracle MySQL.

Kiểu cấu trúc liên kết sao chép này phù hợp nhất để triển khai các bản sao đọc để nhân rộng đọc, sao lưu cơ sở dữ liệu trực tiếp để khắc phục thảm họa và cho các công việc phân tích.

Điều kiện tiên quyết

Chúng tôi giả định rằng bạn có hai máy chủ chạy Debian 10, liên lạc với nhau qua mạng riêng. Nếu nhà cung cấp dịch vụ lưu trữ của bạn không hỗ trợ các địa chỉ IP riêng, bạn có thể sử dụng các địa chỉ IP công cộng và định cấu hình tường lửa của mình để chỉ cho phép lưu lượng truy cập trên cổng 3306 từ các nguồn đáng tin cậy.

Các máy chủ được sử dụng trong ví dụ này có các địa chỉ IP sau:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

Cài đặt MariaDB

Mặc định Các kho lưu trữ Debian 10 bao gồm MariaDB phiên bản 10.3. Tốt nhất là cài đặt cùng một phiên bản MariaDB trên cả hai máy chủ để tránh mọi sự cố tiềm ẩn.

Cài đặt MariaDB trên cả chủ và nô lệ bằng cách ban hành các lệnh sau:

sudo apt-get update sudo apt-get install mariadb-server

Định cấu hình Máy chủ chính

Bước đầu tiên là thiết lập máy chủ chính. Chúng tôi sẽ thực hiện các thay đổi sau:

  • Đặt máy chủ MariaDB để nghe trên IP riêng. Đặt một ID máy chủ duy nhất. Ghi nhật ký nhị phân có thể thực hiện được.

Mở tệp cấu hình MariaDB và bỏ ghi chú hoặc đặt các dòng sau:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf chủ: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Sau khi hoàn tất, hãy lưu tệp và khởi động lại dịch vụ MySQL để các thay đổi có hiệu lực:

sudo systemctl restart mariadb

Bước tiếp theo là tạo một người dùng nhân rộng mới. Đăng nhập vào máy chủ MariaDB với tư cách là người dùng root:

sudo mysql

Chạy các truy vấn SQL sau để tạo replica có tên người dùng và cấp đặc quyền REPLICATION SLAVE cho người dùng:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164'; Hãy chắc chắn rằng bạn thay đổi IP bằng địa chỉ IP nô lệ của bạn. Bạn có thể đặt tên người dùng như bạn muốn.

Trong khi vẫn ở trong dấu nhắc MySQL, hãy thực hiện lệnh sau sẽ in tên tệp và vị trí nhị phân.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Lưu ý tên tệp, 'mysql-bin.000001' và Vị trí '328'. Các giá trị này là cần thiết khi định cấu hình máy chủ nô lệ và có thể sẽ khác trên máy chủ của bạn.

Cấu hình máy chủ nô lệ

Chúng tôi sẽ thực hiện các thay đổi tương tự trên máy chủ nô lệ như trên máy chủ:

  • Đặt máy chủ MySQL để nghe trên IP riêng. Đặt một ID máy chủ duy nhất. Ghi nhật ký nhị phân có thể thực hiện được.

Mở tệp cấu hình MariaDB và chỉnh sửa các dòng sau:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf nô lệ: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Khởi động lại dịch vụ MariaDB:

sudo systemctl restart mariadb

Bước tiếp theo là cấu hình các tham số mà máy chủ nô lệ sẽ sử dụng để kết nối với máy chủ chính. Đăng nhập vào vỏ MariaDB:

sudo mysql

Bắt đầu bằng cách dừng các chủ đề nô lệ:

STOP SLAVE;

Chạy truy vấn sau để định cấu hình sao chép Master / Slave:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

Đảm bảo bạn đang sử dụng đúng địa chỉ IP, tên người dùng và mật khẩu. Tên và vị trí tệp nhật ký phải giống với các giá trị bạn nhận được từ máy chủ chính.

Sau khi hoàn thành, bắt đầu các chủ đề nô lệ.

START SLAVE;

Kiểm tra cấu hình

Tại thời điểm này, bạn nên có một thiết lập sao chép Master / Slave hoạt động.

Để xác minh rằng mọi thứ được thiết lập chính xác, hãy tạo cơ sở dữ liệu mới trên máy chủ chính:

sudo mysql

CREATE DATABASE replicatest;

Đăng nhập vào shell MySQL nô lệ:

sudo mysql

Chạy lệnh sau để liệt kê tất cả các cơ sở dữ liệu:

SHOW DATABASES;

Bạn sẽ nhận thấy rằng cơ sở dữ liệu bạn đã tạo trên máy chủ chính được sao chép trên Slave:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn tạo bản sao MariaDB Master / Slave trên Debian 10.

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

mysian mariadb