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

Cách triển khai MariaDB Cluster 10.5 để có tính khả dụng cao

Triển khai MariaDB Cluster 10.5 đã được hỗ trợ trong ClusterControl kể từ phiên bản 1.8.1.

MariaDB 10.5 được trang bị:

  • Đặc quyền chi tiết hơn

  • Cải tiến Hiệu suất InnoDB

  • Hỗ trợ đầy đủ GTID cho Galera Cluster

  • Thêm siêu dữ liệu cho bản sao và bản ghi nhị phân

  • Câu lệnh cú pháp SQL khác (câu lệnh RETURNING thành INSERT, EXCEPT ALL và INTERSECT ALL,…)

  • Cập nhật lược đồ hiệu suất để phù hợp với MySQL 5.7

  • Công cụ lưu trữ S3

Bạn có thể kiểm tra thêm trên blog trước của chúng tôi

Để biết thêm chi tiết về bản phát hành phiên bản cụ thể này, hãy xem có gì mới trong MariaDB 10.5? Một số thay đổi quan trọng nhất từ ​​phiên bản 10.4 đến 10.5 bao gồm:

  • GTID nhất quán

  • Biểu quyết không nhất quán / lỗi cụm

  • hoạt động DDL không chặn (chỉ khả dụng trên phiên bản doanh nghiệp)

  • Hộp đen (chỉ khả dụng trên phiên bản doanh nghiệp)

  • Đã nâng cấp Thư viện Galera wsrep, trong đó 26.4.6 là phiên bản mới nhất

Ban đầu, Hỗ trợ Giao dịch XA được mong đợi cho bản phát hành này (đừng nhầm lẫn vì Giao dịch XA được Máy chủ MariaDB hỗ trợ chứ không phải trên Galera Cluster). Tuy nhiên, do một số hàm ý về hiệu suất, MariaDB Galera Cluster không hỗ trợ các giao dịch XA.

Trong blog này, chúng ta sẽ thảo luận về cách triển khai MariaDB Cluster 10.5 để có tính khả dụng cao.

Cụm MariaDB Cho Tính khả dụng cao

Cụm MariaDB về cơ bản là Cụm Galera sử dụng triển khai MariaDB làm lớp cơ sở dữ liệu để giao tiếp với công cụ InnoDB hoặc XtraDB. MariaDB Galera Cluster là một cụm đa tổng thể hầu như đồng bộ cho MariaDB. Nó chỉ có sẵn trên Linux và hỗ trợ công cụ lưu trữ XtraDB / InnoDB (mặc dù có hỗ trợ thử nghiệm cho MyISAM - xem biến hệ thống wsrep_replicate_myisam). Khi Galera Cluster được sử dụng, việc đọc và ghi cơ sở dữ liệu có thể được chuyển hướng đến bất kỳ nút nào. Bất kỳ nút riêng lẻ nào cũng có thể bị mất mà không bị gián đoạn hoạt động và không cần sử dụng các thủ tục chuyển đổi dự phòng phức tạp.

Với bản chất của Galera được điều chỉnh trong Cụm MariaDB, đó là một giải pháp có tính khả dụng cao với tính năng sao chép đồng bộ, chuyển đổi dự phòng và đồng bộ hóa lại. Nó mang lại những lợi ích như không mất dữ liệu, không bị trễ nô lệ, khả năng mở rộng đọc và ghi và tính khả dụng cao trong các trung tâm dữ liệu khác nhau.

Triển khai MariaDB Cluster 10.5

MariaDB cung cấp một thiết lập đơn giản và dễ dàng để cài đặt MariaDB Cluster 10.5 của bạn. Quy trình thủ công có thể tẻ nhạt, nhưng với các tập lệnh tự động do MariaDB cung cấp, các kho lưu trữ có thể được thiết lập phù hợp với phiên bản cơ sở dữ liệu mục tiêu, loại hệ điều hành và phiên bản hệ điều hành của bạn.

Đối với bài tập này, tôi có thiết lập Cụm Galera 3 nút sau với các địa chỉ IP sau:192.168.40.210, 192.168.40.220, 192.168.40.230.

Thiết lập hệ thống lưu trữ của bạn

Như đã đề cập trước đó, MariaDB có một tập lệnh tên là mariadb_repo_setup và nó rất dễ sử dụng. Bạn có thể chỉ định phiên bản đích của cơ sở dữ liệu, loại hệ điều hành và phiên bản hệ điều hành của mình.

Ví dụ:tôi đang cài đặt bằng EL 8:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |  sudo bash -s -- --mariadb-server-version="mariadb-10.5" --os-type=rhel --os-version=8

hoặc cài đặt nó trong Ubuntu Focal Fossa,

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |  sudo bash -s -- --mariadb-server-version="mariadb-10.5" --os-type=ubuntu --os-version=focal

Lưu ý rằng khi sử dụng tập lệnh mariadb_repo_setup, nó yêu cầu gói apt-transport-https như một gói phụ thuộc. Vì vậy, hãy cài đặt gói này trước khi bạn có thể tận dụng tập lệnh mariadb_repo_setup.

apt update

apt install apt-transport-https

Bây giờ, hãy chạy lệnh tới ba nút của bạn theo hệ điều hành của chúng. Tất nhiên, phiên bản MariaDB phải là 10.5.

Thiết lập Cấu hình MySQL

Tệp cấu hình phụ thuộc vào tài nguyên máy chủ, loại môi trường máy chủ và địa chỉ IP được chỉ định. Đối với blog này, bạn có thể sử dụng thiết lập cấu hình MariaDB Cluster / PXC sẵn sàng sản xuất này mà chúng tôi đã sử dụng để triển khai trong cơ sở dữ liệu Percona XtraDB Cluster / MariaDB Cluster bằng cách sử dụng ClusterControl. Các biến đáng chú ý mà bạn cần hoặc có thể thay đổi như sau:

  • innodb_buffer_pool_size - Đặt vùng đệm từ 70% - 80% RAM khả dụng của máy chủ của bạn

  • wsrep_provider - Đường dẫn của thư viện biên dịch Galera. Đối với Enterprise Linux, đường dẫn sẽ là /usr/lib64/galera-4/libgalera_smm.so. Trong khi Debian / Ubuntu nằm trong /usr/lib/galera/libgalera_smm.so.

  • wsrep_node_address - Đây là địa chỉ IP của nút

  • wsrep_sst_method - Bạn có thể thay đổi nó, nhưng chúng tôi khuyên bạn nên sử dụng mariabackup. Các giá trị có thể bạn có thể chọn là rsync, mysqldump, xtrabackup, xtrabackup-v2, mariabackup.

  • wsrep_cluster_name - Tên của Cụm MariaDB của bạn. Nó phải giống với tất cả các nút của bạn trong một Cụm MariaDB.

  • wsrep_cluster_address - Điều này chứa địa chỉ của các nút của bạn trong cụm. Nó phải là IP, tên máy chủ hoặc FQDN hợp lệ.

  • wsrep_node_name - Tên nút của bạn. Tên có thể được sử dụng trong wsrep_sst_donor với tư cách là nhà tài trợ ưu tiên. Lưu ý rằng nhiều nút trong một cụm có thể có cùng tên.

Để thực hiện SST, người dùng và mật khẩu cho các phần sau [mysqldump], [xtrabackup] và [mysqld] có thể thay đổi nếu bạn muốn. Đối với bài tập này, hãy giữ nó đơn giản và bạn có thể để các giá trị như hiện tại.

Bây giờ, sao chép tệp cấu hình và đặt nó vào /etc/my.cnf. Thực hiện việc này với tất cả ba nút Galera của bạn.

Cài đặt Gói Bắt buộc

Cài đặt các gói cho cả ba nút Galera. Thực hiện theo lệnh bên dưới dựa trên môi trường hệ điều hành mục tiêu của bạn.

Đối với RHEL / Rocky / AlmaLinux:

sudo yum install MariaDB-server MariaDB-client galera-4 MariaDB-backup

Đối với Debian / Ubuntu:

sudo apt update

sudo apt-get install mariadb-server galera-4 mariadb-client libmariadb3 mariadb-backup mariadb-common

Sau khi cài đặt xong, hãy dừng quá trình MariaDB và khởi tạo cụm dưới dạng một nút duy nhất. Điều này sẽ khởi động Cụm Galera của bạn. Ở giai đoạn này, tôi đang chạy nó trên nút 192.168.40.210.

$ /usr/bin/galera_new_cluster

Tạo SST / IST Người dùng

Tạo người dùng sao lưu, người dùng này sẽ được sử dụng cho SST hoặc IST. Chỉ chạy các câu lệnh SQL sau đây trên nút đầu tiên mà bạn đã khởi tạo cụm. Ở giai đoạn này, tôi đã thực thi nó trong nút 192.168.40.210.

CREATE USER [email protected] IDENTIFIED BY 'backuppassword';

GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost';

Tại thời điểm này, chúng tôi đã thiết lập xong và sẵn sàng kết nối các nút còn lại.

Khởi động Máy chủ MariaDB

Bây giờ chúng ta đã thiết lập xong nút đầu tiên. Chúng tôi đã sẵn sàng kết nối các nút còn lại. Đơn giản, chỉ cần bắt đầu dịch vụ MariaDB. Chỉ cần chạy lệnh dưới đây:

systemctl start mariadb

Chạy lệnh lần lượt cho các nút còn lại. Tại thời điểm này, tất cả các nút đều được đồng bộ hóa.

Thêm Steroid cho Cụm MariaDB 10.5 của bạn để có tính khả dụng cao

Có thể, việc triển khai MariaDB Cluster 10.5 để có tính khả dụng cao có thể không đáp ứng đủ nhu cầu của bạn trong thiết lập sản xuất. Thêm nhiều steroid hơn, chẳng hạn như cài đặt HAProxy cùng với Keepalived để dự phòng, sẽ mang lại tính khả dụng cao hơn cho môi trường cơ sở dữ liệu của bạn.

Việc thiết lập HAProxy và Keepalived để có được cấu trúc liên kết và môi trường mong muốn có thể thêm nhiều rắc rối. Tuy nhiên, bạn có thể tự động hóa việc này với ClusterControl. Sử dụng ClusterControl, bạn có thể triển khai MariaDB Cluster 10.5 của mình và thêm các giải pháp khác để cân bằng tải, chẳng hạn như ProxySQL, MaxScale hoặc garbd. Bạn có thể thêm Keepalived vào cụm của mình để thêm các giải pháp dự phòng và tự động chuyển đổi dự phòng trong trường hợp thảm họa.

Bạn có thể tải xuống bản dùng thử miễn phí của ClusterControl sẽ cho phép bạn triển khai các giải pháp HA này và quản lý toàn bộ hoạt động cơ sở dữ liệu của bạn từ một tấm kính. Chúng tôi sẽ hướng dẫn cách triển khai Cụm MariaDB 10.5 của bạn với ClusterControl.

Triển khai MariaDB 10.5 Cluster với ClusterControl

Khi bạn đã cài đặt xong ClusterControl, hãy nhấp vào biểu tượng ở góc trên bên phải và bạn sẽ thấy Trình hướng dẫn triển khai giống như bên dưới.

Bạn có thể thiết lập dễ dàng. Chỉ cần làm theo chuỗi các bước dựa trên luồng giao diện người dùng.

Triển khai HAProxy để quản lý cân bằng tải

Tại thời điểm này, tôi cho rằng bạn đã thiết lập xong MariaDB Cluster 10.5. Bây giờ, hãy triển khai HAProxy:

Ngoài ra, bạn có thể đi tới Quản lý → Bộ cân bằng tải → HAProxy.

Sau đó chọn hoặc nhập địa chỉ nơi HAProxy sẽ được cài đặt và chọn các nút Galera của bạn sẽ được HAProxy giám sát. Xem ví dụ bên dưới:

Thêm ít nhất hai triển khai HAProxy để thêm tính khả dụng. Bất cứ khi nào một trong các HAProxy của bạn gặp sự cố, ứng dụng của bạn sẽ chuyển đến nút khác vẫn có sẵn hoặc đang trực tuyến. Điều này rất quan trọng, đặc biệt là khi xử lý nâng cấp cơ sở dữ liệu hoặc hệ thống, ngoài các sự kiện thảm họa hoặc thảm họa.

Triển khai Keepalived

Bạn sẽ sử dụng quy trình tương tự ở trên để triển khai Keepalived, như được hiển thị bên dưới:

Nếu bạn nhận thấy, tôi có hai phiên bản HAProxy mà tôi sẽ cài đặt Keepalived , sẽ có mặt trong mọi nút nơi HAProxy đang chạy.

Hoàn thiện Cụm MariaDB 10.5 của bạn với Tính khả dụng cao

Bây giờ chúng ta đã thiết lập xong mọi thứ, bạn sẽ có một môi trường giống như sau:

Kết thúc

Thiết lập này cho Cụm MariaDB 10.5 của bạn mang lại cho bạn những lợi ích khi đạt được tính khả dụng cao với một số nines. HAProxy cung cấp cho bạn nhiều khả năng cân bằng tải hơn với khả năng phân tách đọc và ghi của nó và Keepalived đảm bảo rằng trong trường hợp một trong các HAProxy của bạn chết, nó sẽ chuyển đổi dự phòng sang nút có sẵn tiếp theo. Ứng dụng của bạn sẽ chỉ kết nối với địa chỉ IP ảo (tuân theo VRRP) và không yêu cầu cấu hình hoặc thiết lập bổ sung.

Để tăng thêm tính linh hoạt và khả năng phân tách đọc / ghi bằng cách chỉ phát ở một cổng, bạn có thể thay thế HAProxy bằng ProxySQL. Việc đạt được một thiết lập hoàn hảo để có tính khả dụng cao có thể khó và mỗi thứ đều đi kèm với những hạn chế của nó. Tuy nhiên, điều quan trọng nhất là đạt được thời gian ngừng hoạt động thấp hoặc không.

Để biết thêm mẹo về cách xây dựng thiết lập MariaDB có tính khả dụng cao, hãy xem phần này về cách triển khai bản sao MariaDB.

Nếu bạn muốn cập nhật các xu hướng cơ sở dữ liệu và các phương pháp hay nhất, hãy đăng ký nhận bản tin của chúng tôi và theo dõi chúng tôi trên Twitter và LinkedIn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách CHAR () hoạt động trong MariaDB

  2. Cách cài đặt MariaDB trên Rocky Linux và AlmaLinux

  3. MariaDB JSON_KEYS () Giải thích

  4. MariaDB CURRENT_TIME () được giải thích

  5. MariaDB là gì? MariaDB hoạt động như thế nào?