Sao chép MySQL trên mỗi cơ sở dữ liệu

Sao chép MySQL là một cơ chế thời gian thực tự động sao chép hoặc sao chép dữ liệu từ máy chủ này sang máy chủ dự phòng khác. Quản trị viên cơ sở dữ liệu có thể sử dụng quy trình sao chép chủ-tớ để sao chép hoặc sao chép dữ liệu từ nhiều máy chủ cùng một lúc

Điều này cho phép quản trị viên cơ sở dữ liệu tạo bản sao lưu trực tiếp liên tục của cơ sở dữ liệu. Họ có thể chuyển qua cơ sở dữ liệu nô lệ và duy trì hoạt động của ứng dụng trong nhiều tình huống khác nhau khi gặp sự cố. Ứng dụng của bạn sẽ không gặp bất kỳ thời gian chết nào do quy trình sao chép

Làm thế nào nó hoạt động

Có nhiều loại thủ tục sao chép khác nhau trong bản sao này. Bạn có thể có một chủ và nhiều nô lệ, hoặc nhiều chủ và nhiều nô lệ, v.v.

Nó luôn luôn là truyền dữ liệu một chiều hoặc một chiều trong hoạt động này. Dữ liệu ban đầu được lưu trong tổng thể, sau đó được sao chép sang các nô lệ. Do đó, thao tác ghi được giới hạn trong cơ sở dữ liệu chính. Cả chủ và nô lệ đều thực hiện thao tác đọc. Các nô lệ cũng có thể được sử dụng để giảm thiểu sự căng thẳng cho cơ sở dữ liệu chủ bằng cách cung cấp khả năng truy cập dữ liệu

Mục đích của sao chép Master-Slave

Một trong những ưu điểm chính của hệ thống sao chép chủ-tớ là nó cung cấp một hệ thống dự phòng với bản sao lưu trực tiếp có thể được thăng cấp lên trạng thái chính nếu máy chủ chính bị lỗi

Nó cũng có một số lợi thế khác, chẳng hạn như

  • khả năng mở rộng. Để giảm tải cho máy chủ và cung cấp khả năng truy cập nhanh hơn, tất cả các yêu cầu truy vấn cơ sở dữ liệu có thể được gửi đến nhiều máy chủ cơ sở dữ liệu. Hầu hết các ứng dụng web và trang web mà bạn sẽ gặp ngày nay có nhiều hoạt động đọc hơn là ghi các hoạt động vào cơ sở dữ liệu. Do đó, quản trị viên trang web phải đưa ra sự sắp xếp lý tưởng để tải nhanh thông tin trên trang web
  • Hiệu suất. Cơ sở dữ liệu chủ xử lý tất cả các hoạt động ghi cơ sở dữ liệu. Những thay đổi này được chủ nhân truyền bá và quảng bá cho nô lệ sau khi chúng được thực hiện với cơ sở dữ liệu chủ. Tuy nhiên, các yêu cầu đọc từ các trang web có thể được chia thành nhiều nô lệ để cải thiện tốc độ của trang web
  • Sao lưu. Chỉ trong vài phút, bạn có thể sao chép ảnh chụp nhanh cơ sở dữ liệu gần đây nhất sang cơ sở dữ liệu khác và tạo bản sao lưu. Dữ liệu bị hỏng do máy chủ chính không có lỗi và có 99. 9% thời gian hoạt động. Điều này cho phép các ứng dụng xử lý số lượng lớn thao tác đọc và ghi một cách dễ dàng
  • Phân tích và đo điểm chuẩn. Các nhà phân tích cơ sở dữ liệu có thể sử dụng phương pháp này để thực hiện các thử nghiệm và thử nghiệm phân tích dữ liệu khác nhau trên các nô lệ mà không làm gián đoạn chủ

Sao chép MySQL trên mỗi cơ sở dữ liệu

Các bước để đạt được bản sao MySQL Master-Slave

Trong cấu hình này, chúng tôi sẽ có hai máy chủ RHEL 8 với các địa chỉ IP sau

Sao chép MySQL trên mỗi cơ sở dữ liệu

Phiên bản mới nhất của MySQL 8. x đã được bao gồm trong kho lưu trữ mặc định của RHEL 8 và bạn có thể cài đặt nó bằng lệnh yum sau

cài đặt yum -y @mysqlmysql_secure_installation

Thiết lập máy chủ MySQL Master

Khi quá trình cài đặt MySQL hoàn tất, hãy chạy lệnh sau để mở tệp cấu hình MySQL

vim/etc/của tôi. cnf

Thêm các dòng được đề cập bên dưới vào phần “mysqld”

địa chỉ liên kết = 172. 17. 0. 8

Id máy chủ = 1

Log_bin = mysql-bin

Sau đó, dịch vụ MySQL sẽ được khởi động lại

systemctl khởi động lại mysqld

Bây giờ chúng ta sẽ tạo một người dùng sao chép. Do đó, hãy đăng nhập với tư cách người dùng root vào máy chủ chính MySQL của bạn và nhập mật khẩu

mysql -u gốc -p

Chạy các lệnh sau để tạo người dùng bản sao đồng thời cung cấp quyền truy cập nô lệ của người dùng. Hãy ghi nhớ để sử dụng địa chỉ IP của máy của bạn

Sao chép MySQL trên mỗi cơ sở dữ liệu

Bây giờ bạn sẽ gõ lệnh sau, lệnh này sẽ in tên tệp nhị phân và vị trí

Sao chép MySQL trên mỗi cơ sở dữ liệu

Theo dõi tên tệp được tạo mysql-bin. 000001 và vị trí của nó 683

Thiết lập máy chủ nô lệ MySQL

Bạn nên thực hiện các thay đổi sau đối với tệp cấu hình nô lệ mysql, giống như bạn đã làm khi thiết lập chính

địa chỉ liên kết = 172. 17. 0. 8

Id máy chủ = 2

Log_bin = mysql-bin

Sau đó khởi động lại dịch vụ

systemctl khởi động lại mysqld

Máy chủ phụ hiện phải được cấu hình để sao chép từ máy chủ chính. Sau đó, dừng chuỗi sao chép và kết nối với máy chủ MySQL

mysql> DỪNG NÔ LỆ;

Chạy truy vấn sau để thiết lập máy chủ phụ để sao chép từ máy chủ chính

Sao chép MySQL trên mỗi cơ sở dữ liệu

Kiểm tra xem bạn có đang sử dụng đúng tên người dùng và mật khẩu IP không. Sử dụng cả tên tệp và vị trí mà bạn nhận được từ máy chủ chính. Cuối cùng, chạy lệnh bên dưới để bắt đầu chuỗi nô lệ

mysql> BẮT ĐẦU NÔ LỆ;

Đặt bản sao MySQL Master-Slave vào thử nghiệm

Bây giờ bạn đã hoàn thành cấu hình của cả máy chủ chính và máy chủ phụ, đã đến lúc kiểm tra xem cấu hình có đúng không và liệu có thể sao chép hay không

Để làm như vậy, hãy chuyển đến máy chủ chính và kết nối với máy chủ cơ sở dữ liệu MySQL. Tạo cơ sở dữ liệu mẫu

Sao chép MySQL trên mỗi cơ sở dữ liệu

Bây giờ hãy truy cập máy chủ nô lệ và đăng nhập vào máy chủ cơ sở dữ liệu MySQL một lần nữa. Sử dụng lệnh sau để liệt kê tất cả các cơ sở dữ liệu

Sao chép MySQL trên mỗi cơ sở dữ liệu

Thiết lập đơn giản

Bạn sẽ có thể thiết lập bản sao chính-phụ trong MySQL và bắt đầu các chuỗi phụ sau khi đọc hướng dẫn này. Giờ đây, bạn có thể sao lưu, giữ và thay đổi dữ liệu trên nhiều PC. Để biết thêm thông tin, hãy liên hệ với các chuyên gia của chúng tôi ngay hôm nay

Làm cách nào để sao chép tất cả các cơ sở dữ liệu trong MySQL?

điều kiện tiên quyết
Hiểu về bản sao trong MySQL
Bước 1 — Điều chỉnh tường lửa của máy chủ nguồn của bạn
Bước 2 — Cấu hình cơ sở dữ liệu nguồn
Bước 3 — Tạo người dùng sao chép
Bước 4 — Truy xuất tọa độ nhật ký nhị phân từ nguồn
Bước 5 — Cấu hình cơ sở dữ liệu bản sao
Bước 6 — Bắt đầu và kiểm tra bản sao

Có bao nhiêu kiểu sao chép trong MySQL?

ba loại sao chép – và khi nói đến các loại, chúng ta đang nói về cách quản lý việc truyền dữ liệu khi được truyền từ . Bản sao MySQL không đồng bộ theo mặc định – các nô lệ không cần phải được kết nối vĩnh viễn để nhận các bản cập nhật từ chủ.

Bản sao MySQL được đẩy hay kéo?

Mỗi bản sao kết nối với nguồn yêu cầu một bản sao của nhật ký nhị phân. Nghĩa là, nó lấy dữ liệu từ nguồn chứ không phải nguồn đẩy dữ liệu đến bản sao.

Sao chép MySQL có ảnh hưởng đến hiệu suất không?

Khi số lượng bản sao kết nối với nguồn tăng lên, tải, mặc dù tối thiểu, cũng tăng lên , vì mỗi bản sao sử dụng kết nối máy khách với nguồn. Ngoài ra, vì mỗi bản sao phải nhận được một bản sao đầy đủ nhật ký nhị phân của nguồn, tải mạng trên nguồn cũng có thể tăng lên và tạo ra nút cổ chai.