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

Dễ dàng nâng cấp Zero Downtime với ClusterControl

“Giữ cho cơ sở dữ liệu của bạn được nâng cấp lên phiên bản mới nhất - đó là sự an toàn của bạn” là điều mà bạn có thể thường xuyên nghe thấy như lời khuyên hữu ích và phương pháp hay nhất khi nói đến quản lý cơ sở dữ liệu. Mặt khác, nâng cấp cơ sở dữ liệu của bạn có thể là một công việc tốn nhiều thời gian. Ngay cả khi nâng cấp phiên bản nhỏ cũng yêu cầu bạn kiểm tra kỹ lưỡng việc nâng cấp trong môi trường dàn dựng trước khi nâng cấp thiết lập sản xuất của mình. Vậy thỏa thuận lớn nào? Nếu bạn chỉ bị tụt hậu so với một phiên bản nhỏ, điều đó không thành vấn đề, phải không? Chà, nó có thể không ... cho đến khi nó xảy ra. Và bạn có thực sự chuẩn bị sẵn sàng để chấp nhận loại rủi ro đó không?

Đầu năm nay, một lỗ hổng tiềm ẩn nguy hiểm mới đã được xác định trong Galera Cluster (CVE-2021-27928). Thoạt nhìn, chúng ta thấy rằng mức độ nghiêm trọng đã được đánh dấu là cao, và khi chúng ta bắt đầu tìm hiểu sâu hơn về vấn đề, nó thực sự có vẻ nghiêm trọng. Có vẻ như SUPER người dùng có thể thực thi bất kỳ mã tùy ý nào bằng cách thay đổi các biến wsrep_provider và wsrep_notify_cmd trong thời gian chạy. Nó cho phép người dùng tải thư viện .so và trỏ tới một tập lệnh mà máy chủ sẽ thực thi. Như bạn có thể tưởng tượng, đây không phải là một tình huống tốt. Chắc chắn, bạn cần có quyền truy cập vào người dùng SUPER và bạn sẽ cần có thứ gì đó có sẵn để thực thi trên nút cơ sở dữ liệu, nhưng thực tế là Galera có thể được định cấu hình để thực thi mã tùy ý với tư cách là người dùng 'mysql' là đủ xấu riêng.

Như thường lệ, trong những trường hợp như vậy, các bản sửa lỗi đã được tạo và các phiên bản mới của phần mềm, không bị ảnh hưởng bởi lỗ hổng bảo mật, đã được đẩy. Sự cố cụ thể này đã được khắc phục trong MariaDB 10.5.9, 10.4.18, 10.3.28 và 10.2.37, cũng như Percona XtraDB Cluster 5.6.51-28.46, Percona XtraDB Cluster 5.7.33-31.49 và Percona XtraDB Cluster 8.0.22-13.1. Tất cả dường như trở lại bình thường. Đúng không?

Sai. Có vô số hệ thống đang chạy trên sản xuất vẫn chưa được nâng cấp lên phiên bản mới, không bị ảnh hưởng. Nhóm hỗ trợ của Somenines liên hệ với nhiều môi trường cơ sở dữ liệu trong tự nhiên và chúng tôi liên tục làm việc với các khách hàng tiềm năng để giúp họ chuyển sang môi trường do ClusterControl quản lý. Chúng tôi thấy tất cả các loại MySQL (và không chỉ MySQL) đang chạy trong các phiên bản lỗi thời, đôi khi thậm chí là các phiên bản đã đến thời kỳ End Of Life và không còn nhận được các bản cập nhật bảo mật nữa. Điều đó không nên xảy ra, đặc biệt nếu bạn là người dùng ClusterControl.

ClusterControl đi kèm với một tập hợp các tính năng sẽ giúp bạn luôn cập nhật tất cả các bản sửa lỗi bảo mật. Hãy xem:

Trước hết, ClusterControl đi kèm với Báo cáo hoạt động, một trong số đó là Báo cáo nâng cấp gói:

Giống như tất cả các báo cáo hoạt động của ClusterControl, Báo cáo nâng cấp gói có thể được lập lịch để được thực hiện thường xuyên và sau đó được gửi qua email. Nó sẽ chứa thông tin về các phiên bản gói được cài đặt trên các nút và nếu có bất kỳ loại nâng cấp nào cần được thực hiện:

Báo cáo nâng cấp gói trình bày danh sách các gói cần được cập nhật cho tất cả cơ sở dữ liệu, bộ cân bằng tải, bản sửa lỗi bảo mật và bất kỳ gói nào khác được cài đặt trên nút. Đối với tất cả các gói hệ thống, giải pháp là nâng cấp chúng bằng các phương pháp tiêu chuẩn (apt, yum). Khi nói đến cơ sở dữ liệu và bộ cân bằng tải, ClusterControl đi kèm với chức năng cho phép bạn thực hiện nâng cấp phiên bản nhỏ trực tiếp từ giao diện người dùng.

Trước khi chúng ta đến đó, hãy giả sử rằng cơ sở dữ liệu phải được cập nhật. Bạn không muốn chỉ tiến hành và chạy nâng cấp một cách mù quáng - nó có thể gây ra sự cố cho ứng dụng của bạn. Điều đó không nên - các phiên bản nhỏ không phá vỡ khả năng tương thích ngược (ngoại trừ khi bạn sử dụng MySQL 8.0 - thì có, bạn có thể mong đợi bất cứ điều gì khi chuyển từ 8.0.x lên 8.0.x + 1); tuy nhiên, luôn có một số rủi ro liên quan. Điều bạn nên làm trước tiên là kiểm tra nâng cấp trong một môi trường riêng biệt.

Chúng tôi có một cụm MariaDB Galera đơn giản với ProxySQL và Keepalived:

Chúng tôi muốn tạo một cụm kiểm tra để chúng tôi có thể kiểm tra nâng cấp tiến trình. Với ClusterControl, thật dễ dàng như sử dụng công việc Create Replica Cluster:

Chúng tôi có thể lấy dữ liệu mới từ cụm hiện có hoặc chúng tôi có thể sử dụng dữ liệu từ một bản sao lưu.

Chúng tôi cũng phải chọn một nút nguồn trong cụm sản xuất:

Sau đó, chúng tôi phải trải qua trình hướng dẫn triển khai thông thường, chọn phiên bản và nhà cung cấp cơ sở dữ liệu, xác định mật khẩu gốc, v.v. Chúng tôi kết thúc bằng cách chuyển các nút mà cụm sẽ được cài đặt.

Do đó, bạn sẽ thấy một cụm mới trên danh sách với đánh dấu rõ ràng rằng nó đang nhân rộng ra khỏi cụm sản xuất. Một điều đáng nói, trong thiết lập mặc định, ClusterControl sẽ sử dụng các phiên bản mới nhất của các gói để tạo cụm bản sao. Nếu bạn chỉ muốn kiểm tra lại các truy vấn, điều này là đủ. Nếu bạn muốn thực hiện toàn bộ quá trình nâng cấp, bạn cần ghim các phiên bản cũ hơn của gói MySQL để cài đặt phiên bản cũ (sau đó bỏ ghim chúng và kiểm tra nâng cấp).

Bằng cách này hay cách khác, sau khi kiểm tra thành công, cuối cùng bạn sẽ muốn thực hiện nâng cấp. ClusterControl có thể giúp bạn thực hiện điều này:

Trong Quản lý -> Nâng cấp, bạn sẽ tìm thấy giao diện người dùng để thực hiện nâng cấp .

Bạn có thể sử dụng "Kiểm tra gói mới" để làm mới cơ sở dữ liệu có sẵn các gói. Chúng tôi cũng có thể chọn những nút nào chúng tôi muốn nâng cấp và những dịch vụ nào:

Chỉ cần xác nhận là xong - ClusterControl sẽ thực hiện nâng cấp và giúp bạn phiên bản mới nhất của các gói.

Như bạn có thể thấy, ClusterControl giúp việc cập nhật cơ sở dữ liệu của bạn trở nên dễ dàng và đơn giản. Bước duy nhất mà bạn phải xử lý theo cách thủ công là kiểm tra thích hợp. Nếu không - mọi thứ khác có thể được thực hiện cho bạn bởi ClusterControl. Bạn muốn tìm hiểu thêm về cách ClusterControl có thể giúp bạn quản lý hiệu quả cơ sở dữ liệu của mình? Dùng thử miễn phí trong 30 ngày.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 cách để hiển thị đối chiếu cho kết nối của bạn trong MariaDB

  2. So sánh MariaDB Enterprise Backup với ClusterControl Backup Management

  3. Cách SUBTIME () hoạt động trong MariaDB

  4. Cách mã hóa bản sao lưu MySQL &MariaDB của bạn

  5. Tường lửa SQL trở nên dễ dàng với ClusterControl &ProxySQL