Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tổng quan về nhân rộng cụm-thành-cụm

Ngày nay, việc sao chép cơ sở dữ liệu trong một máy chủ / trung tâm dữ liệu khác là điều khá phổ biến và nó cũng là điều bắt buộc trong một số trường hợp. Có nhiều lý do khác nhau để sao chép cơ sở dữ liệu của bạn sang một môi trường hoàn toàn riêng biệt.

  • Di chuyển sang một trung tâm dữ liệu khác.
  • Yêu cầu nâng cấp (phần cứng / phần mềm).
  • Duy trì hệ thống hoạt động được đồng bộ hóa hoàn toàn trong trang web Khôi phục sau thảm họa (DR) có thể tiếp quản bất kỳ lúc nào
  • Giữ cơ sở dữ liệu phụ như một phần của Kế hoạch DR chi phí thấp hơn.
  • Đối với các yêu cầu về vị trí địa lý (dữ liệu cần phải ở địa phương ở một quốc gia cụ thể).
  • Có môi trường thử nghiệm.
  • Mục đích khắc phục sự cố.
  • Cơ sở dữ liệu báo cáo.

Và có nhiều cách khác nhau để thực hiện tác vụ sao chép này:

  • Sao lưu / Khôi phục :Sao lưu cơ sở dữ liệu sản xuất và khôi phục nó trong một máy chủ / môi trường mới là cách cổ điển để làm điều này, nhưng đây cũng là một cách cổ điển vì bạn sẽ không cập nhật dữ liệu của mình và bạn cần phải đợi cho mỗi quá trình khôi phục nếu bạn cần một số dữ liệu gần đây. Nếu bạn có một cụm (master-slave, multi-master) và nếu bạn muốn tạo lại nó, bạn nên khôi phục bản sao lưu ban đầu và sau đó tạo lại phần còn lại của các nút, đây có thể là một công việc tốn nhiều thời gian.
  • Nhóm sao chép :Tương tự như trước nhưng quá trình sao lưu và khôi phục là cho cả cụm, không chỉ một máy chủ cơ sở dữ liệu cụ thể. Bằng cách này, bạn có thể sao chép toàn bộ cụm trong cùng một tác vụ và bạn không cần phải tạo lại phần còn lại của các nút theo cách thủ công. Phương pháp này vẫn gặp vấn đề trong việc cập nhật dữ liệu giữa các bản sao.
  • Nhân rộng :Cách này bao gồm tùy chọn sao lưu / khôi phục, nhưng sau lần khôi phục ban đầu, quá trình sao chép sẽ giữ cho dữ liệu của bạn được đồng bộ hóa với nút chính. Theo cách này, nếu bạn có một cụm cơ sở dữ liệu, bạn cần khôi phục bản sao lưu vào một nút và tạo lại tất cả các nút theo cách thủ công.

Trong blog này, chúng ta sẽ thấy một tính năng ClusterControl 1.7.4 mới cho phép bạn sử dụng kết hợp phương pháp mà chúng tôi đã đề cập trước đó để cải thiện tác vụ này.

Sao chép theo cụm là gì?

Sao chép giữa hai cụm không giống như việc mở rộng một cụm để chạy trên hai trung tâm dữ liệu. Khi thiết lập nhân rộng giữa hai cụm, chúng tôi thực sự có 2 hệ thống riêng biệt có thể hoạt động tự chủ. Bản sao được sử dụng để giữ chúng đồng bộ, để hệ thống phụ có trạng thái cập nhật và có thể tiếp quản.

Từ ClusterControl 1.7.4, có thể tạo một cụm mới bằng cách sao chép trực tiếp cụm nguồn đang chạy hoặc bằng cách sử dụng bản sao lưu gần đây của cụm nguồn.

Sau khi nhân bản cụm, bạn sẽ có Cụm nô lệ (SC) nhận dữ liệu và Cụm chính (MC) gửi các thay đổi đến cụm phụ.

ClusterControl hỗ trợ Sao chép cụm từ thành cụm cho các loại cụm sau:

  • Percona XtraDB Cluster phiên bản 5.6.x trở lên.
  • MariaDB Galera Cluster phiên bản 10.x trở lên.
  • PostgreSQL 9.6 trở lên.

Sao chép theo cụm cho Percona XtraDB / MariaDB Galera Cluster

Đối với động cơ dựa trên MySQL, GTID được yêu cầu để sử dụng tính năng này và sao chép không đồng bộ giữa cụm Master và Slave sẽ được sử dụng.

Có một số hành động cần thực hiện để chuẩn bị cụm hiện tại cho công việc này. Đầu tiên, ít nhất một nút trên cụm hiện tại phải bật nhật ký nhị phân. Sau đó, bạn cần thêm người dùng sao lưu được định cấu hình trong nút cơ sở dữ liệu trong tệp cấu hình ClusterControl, tệp này sẽ được sử dụng cho các tác vụ quản lý. Tất cả những hành động này có thể được thực hiện bằng cách sử dụng giao diện người dùng ClusterControl hoặc ClusterControl CLI.

Bây giờ bạn đã sẵn sàng tạo bản sao Percona XtraDB / MariaDB Galera Cluster-to-Cluster. Khi công việc kết thúc, bạn sẽ có:

  • Một nút trong Cụm nô lệ sẽ sao chép từ một nút trong Cụm chính.
  • Quá trình sao chép sẽ diễn ra theo hai hướng giữa các cụm.
  • Tất cả các nút trong Cụm nô lệ sẽ ở chế độ chỉ đọc theo mặc định. Có thể vô hiệu hóa cờ chỉ đọc trên từng nút một.
  • Phân nhóm Hoạt động-Hoạt động chỉ được khuyến nghị nếu các ứng dụng chỉ chạm vào các tập dữ liệu rời rạc trên một trong hai Cụm vì công cụ không cung cấp bất kỳ Giải pháp hoặc Phát hiện Xung đột nào.

Từ cả ClusterControl UI hoặc ClusterControl CLI, bạn sẽ có thể:

  • Tạo cụm sao chép này.
  • Bật cấu hình Active-Active.
  • Thay đổi cấu trúc liên kết cụm.
  • Tạo lại một cụm sao.
  • Dừng / Bắt đầu một Slave nhân bản.
  • Đặt lại Replication Slave (chỉ được triển khai bằng cách sử dụng ClusterControl CLI atm).

Cân nhắc

  • Người dùng sao lưu phải được thêm theo cách thủ công trong tệp cấu hình ClusterControl.
  • Thông tin đăng nhập của người dùng sao lưu phải giống nhau trong cả cụm hiện tại và cụm mới.
  • Mật khẩu gốc MySQL được chỉ định khi tạo Cụm nô lệ phải giống với mật khẩu gốc được sử dụng trên Cụm chính.

Hạn chế Đã biết

  • Tự động chuyển đổi dự phòng chưa được hỗ trợ. Nếu bản chính không thành công thì quản trị viên có trách nhiệm chuyển đổi dự phòng cho bản chính khác.
  • Chỉ có thể "ĐẶT LẠI" một nô lệ sao chép từ CLI ClusterControl vì nó chưa được triển khai trong giao diện người dùng ClusterControl.
  • Chỉ có thể xây dựng lại một cụm đang ở chế độ chỉ đọc. Tất cả các nút trong một Cụm phải ở chế độ chỉ đọc để được tính là Cụm chỉ đọc.

Sao chép cụm thành cụm cho PostgreSQL

ClusterControl Cluster-to-Cluster Replication được hỗ trợ trên PostgreSQL bằng cách sử dụng sao chép trực tuyến.

Theo yêu cầu, phải có máy chủ PostgreSQL với vai trò 'chủ' của ClusterControl và khi bạn thiết lập Cụm Slave, thông tin đăng nhập của Quản trị viên phải giống với Cụm chính.

Bây giờ bạn đã sẵn sàng tạo bản sao PostgreSQL Cluster-to-Cluster. Khi công việc kết thúc, bạn sẽ có:

  • Một nút trong Cụm nô lệ sẽ sao chép từ một nút trong Cụm chính.
  • Bản sao sẽ là một chiều giữa các cụm.
  • Nút trong Cụm nô lệ sẽ ở chế độ chỉ đọc.

Từ cả ClusterControl UI hoặc ClusterControl CLI, bạn sẽ có thể:

  • Tạo cụm sao chép này.
  • Tạo lại một cụm sao.
  • Dừng / Bắt đầu một Slave nhân bản.

Cân nhắc

  • Thông tin đăng nhập của quản trị viên phải giống hệt nhau trong Cụm chính và Cụm nô lệ.

Hạn chế Đã biết

  • Kích thước tối đa của Cụm nô lệ là một nút.
  • Không thể tổ chức Cụm nô lệ từ bản sao lưu.
  • Thay đổi cấu trúc liên kết không được hỗ trợ.
  • Chỉ hỗ trợ sao chép một chiều.

Kết luận

Sử dụng tính năng ClusterControl mới này, bạn không cần phải thực hiện từng bước để tạo Cluster Replication riêng biệt hoặc theo cách thủ công và do sử dụng nó, bạn sẽ tiết kiệm thời gian và công sức. Hãy thử!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Neo4j - Nhập dữ liệu từ tệp CSV bằng Cypher

  2. Làm cách nào để xem các truy vấn MySQL trực tiếp?

  3. MySQL CASE hoạt động như thế nào?

  4. Chuyển từ MySQL 5.7 sang MySQL 8.0 - Những điều bạn nên biết

  5. Trả về bản ghi thứ n từ truy vấn MySQL