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

Kiểm tra tự động quá trình nâng cấp cho máy chủ MySQL / MariaDB / Percona

Nâng cấp luôn là một công việc khó khăn và tốn thời gian. Trước tiên, bạn nên kiểm tra ứng dụng của mình trong môi trường thử nghiệm, vì vậy, lý tưởng nhất là bạn sẽ cần sao chép môi trường sản xuất hiện tại của mình cho việc này. Sau đó, bạn cần lập kế hoạch để thực hiện nâng cấp, tùy thuộc vào doanh nghiệp, có thể là không có thời gian chết (hoặc gần như bằng không), hoặc thậm chí lên lịch bảo trì để đảm bảo rằng nếu có sự cố xảy ra, nó sẽ ảnh hưởng ít nhất đến càng tốt.

Nếu bạn muốn thực hiện tất cả những việc này theo cách thủ công, thì khả năng cao là do lỗi của con người và quá trình sẽ diễn ra chậm chạp. Trong blog này, chúng ta sẽ xem cách tự động kiểm tra để nâng cấp cơ sở dữ liệu MySQL, MariaDB hoặc Percona Server của bạn bằng cách sử dụng ClusterControl.

Loại Nâng cấp

Có hai loại nâng cấp:Nâng cấp nhỏ và Nâng cấp chính.

Nâng cấp nhỏ

Nâng cấp đầu tiên, Nâng cấp Nhỏ, là nâng cấp phổ biến và an toàn nhất và trong hầu hết các trường hợp, việc này được thực hiện tại chỗ. Vì không có gì là an toàn 100%, bạn phải luôn có các nút nô lệ sao lưu và sao chép, vì vậy trong trường hợp có sự cố với nâng cấp và vì lý do nào đó bạn không thể khôi phục / hạ cấp, bạn có thể quảng cáo một nút nô lệ và hệ thống của bạn vẫn có thể làm việc mà không bị gián đoạn.

Bạn có thể thực hiện kiểu nâng cấp này bằng ClusterControl. Đối với điều này, hãy đi tới ClusterControl -> Chọn Cluster -> Quản lý -> Nâng cấp.

Trên mỗi nút được chọn, quy trình nâng cấp sẽ:

  • Nút dừng

  • Nút nâng cấp

  • Nút Bắt đầu

Nút Chính trong Cấu trúc liên kết sao chép sẽ không được nâng cấp. Để nâng cấp Chính, trước tiên phải thăng cấp một nút khác để trở thành Chính mới.

Các bản nâng cấp chính

Đối với các bản Nâng cấp Chính, không nên nâng cấp tại chỗ vì rủi ro xảy ra sự cố quá cao đối với môi trường sản xuất. Thay vì điều này, bạn có thể sao chép cụm cơ sở dữ liệu hiện tại của mình và kiểm tra ứng dụng của mình ở đó và khi hoàn tất, bạn có thể tạo lại hoặc thậm chí tạo một cụm mới trong phiên bản mới và chuyển đổi lưu lượng khi nó sẵn sàng. Có nhiều cách tiếp cận khác nhau cho những nâng cấp này. Bạn có thể nâng cấp từng nút một hoặc tạo một cụm khác sao chép lưu lượng từ nút hiện tại, bạn cũng có thể sử dụng bộ cân bằng tải để cải thiện Tính khả dụng cao và nhiều tùy chọn hơn. Cách tiếp cận tốt nhất phụ thuộc vào dung sai thời gian chết và Mục tiêu thời gian khôi phục (RTO).

Bạn không thể trực tiếp thực hiện Nâng cấp Chính với ClusterControl, bởi vì, như chúng tôi đã đề cập, bạn cần kiểm tra mọi thứ trước để đảm bảo rằng việc nâng cấp an toàn, nhưng bạn có thể sử dụng các tính năng ClusterControl khác nhau để thực hiện nhiệm vụ này dễ dàng hơn. Vì vậy, hãy xem một số tính năng này.

Bản sao lưu

Phải sao lưu trước khi nâng cấp. Một chính sách dự phòng tốt có thể tránh được các vấn đề lớn cho doanh nghiệp. Vì vậy, hãy xem cách ClusterControl có thể tự động hóa việc này.

Tạo bản sao lưu

Vào ClusterControl -> Chọn Cluster -> Backup -> Create Backup.

Bạn có thể tạo một bản sao lưu mới hoặc định cấu hình một bản sao lưu đã lên lịch.

Bạn có thể chọn các phương pháp sao lưu khác nhau, tùy thuộc vào công nghệ cơ sở dữ liệu và trong cùng một phần, bạn có thể chọn máy chủ để thực hiện sao lưu, nơi bạn muốn lưu trữ bản sao lưu và nếu bạn muốn tải bản sao lưu lên đám mây (AWS, Azure hoặc Google Cloud) trong cùng một công việc.

Bạn cũng có thể nén và mã hóa bản sao lưu của mình cũng như chỉ định khoảng thời gian lưu giữ, trong số các tùy chọn khác.

Trên phần sao lưu, bạn có thể xem tiến trình của quá trình sao lưu và thông tin như phương pháp, kích thước, vị trí, v.v.

Triển khai Môi trường Thử nghiệm

Đối với điều này, bạn không cần phải tạo mọi thứ từ đầu. Thay vì điều này, bạn có thể sử dụng ClusterControl để thực hiện việc này theo cách thủ công hoặc tự động.

Khôi phục Sao lưu trên Máy chủ Độc lập

Trong phần Sao lưu, bạn có thể chọn tùy chọn “Khôi phục và xác minh trên máy chủ độc lập” để khôi phục bản sao lưu trong một nút riêng biệt.

Tại đây bạn có thể chỉ định xem bạn có muốn ClusterControl cài đặt phần mềm trong nút mới hay không và tắt tường lửa hoặc AppArmor / SELinux (tùy thuộc vào hệ điều hành). Đối với điều này, bạn cần một máy chủ (hoặc máy ảo) chuyên dụng không phải là một phần của cụm.

Bạn có thể duy trì và chạy nút hoặc ClusterControl có thể tắt dịch vụ cơ sở dữ liệu cho đến khi thực hiện công việc khôi phục tiếp theo. Khi quá trình hoàn tất, bạn sẽ thấy bản sao lưu đã được khôi phục / xác minh trong danh sách sao lưu được đánh dấu bằng dấu tích.

Nếu bạn không muốn thực hiện tác vụ này theo cách thủ công, bạn có thể lập lịch quy trình này bằng cách sử dụng Tính năng xác minh sao lưu, để lặp lại công việc này theo định kỳ trong Công việc sao lưu. Chúng ta sẽ xem cách thực hiện việc này trong phần tiếp theo.

Xác minh Sao lưu ClusterControl Tự động

Để tự động hóa tác vụ này, hãy đi tới ClusterControl -> Chọn Cụm của bạn -> Sao lưu -> Tạo Sao lưu và chọn tùy chọn Sao lưu theo lịch trình.

Tính năng Xác minh Sao lưu tự động chỉ khả dụng cho các bản sao lưu theo lịch trình và quá trình này giống như chúng tôi đã mô tả trong phần trước. Trong bước thứ hai, hãy đảm bảo rằng bạn đã bật tùy chọn Xác minh sao lưu và điền đầy đủ thông tin được yêu cầu.

Khi công việc hoàn tất, bạn có thể thấy biểu tượng xác minh trong phần ClusterControl Backup, biểu tượng giống như biểu tượng bạn sẽ có khi thực hiện xác minh theo cách thủ công, với sự khác biệt là bạn không cần để lo lắng về nhiệm vụ khôi phục. ClusterControl sẽ tự động khôi phục bản sao lưu và bạn có thể kiểm tra ứng dụng của mình với dữ liệu gần đây nhất.

Tự động khôi phục và chuyển đổi dự phòng

Đã bật tính năng Autorecovery, trong trường hợp không thành công, ClusterControl sẽ thúc đẩy nút phụ nâng cao nhất lên master cũng như thông báo cho bạn về sự cố. Nó cũng không thể sao chép phần còn lại của các nút phụ từ máy chủ chính mới.

Nếu có các Bộ cân bằng tải trong cấu trúc liên kết, ClusterControl sẽ định cấu hình lại chúng để áp dụng các thay đổi cấu trúc liên kết.

Bạn cũng có thể chạy Chuyển đổi dự phòng theo cách thủ công nếu cần. Vào ClusterControl -> Chọn Cluster -> Nodes -> Chọn Node được thăng cấp -> Node Actions -> Thăng chức Slave.

Bằng cách này, nếu có vấn đề gì xảy ra trong quá trình nâng cấp, bạn có thể sử dụng ClusterControl để sửa lỗi càng sớm càng tốt.

Tự động hóa mọi thứ với ClusterControl CLI

ClusterControl CLI, còn được gọi là s9s, là một công cụ dòng lệnh được giới thiệu trong ClusterControl phiên bản 1.4.1 để tương tác, kiểm soát và quản lý các cụm cơ sở dữ liệu bằng hệ thống ClusterControl. ClusterControl CLI mở ra một cánh cửa cho tự động hóa cụm nơi bạn có thể dễ dàng tích hợp nó với các công cụ tự động hóa triển khai hiện có như Ansible, Puppet, Chef, v.v. Bây giờ hãy cùng xem một số ví dụ về công cụ này.

Nâng cấp

$ s9s cluster --cluster-id=19 \
--check-pkg-upgrades \
--log
$ s9s cluster --cluster-id=19 \
--available-upgrades \
--nodes='10.10.10.146' \
--log \
--print-json
$ s9s cluster --cluster-id=19 \
--upgrade-cluster \
--nodes='10.10.10.146' \
--log

Tạo bản sao lưu

$ s9s backup --create \
--backup-method=mysqldump \
--cluster-id=2 \
--nodes=10.10.10.146:3306 \
--on-controller \
--backup-directory=/storage/backups
--log

Khôi phục Sao lưu

$ s9s backup --restore \
--cluster-id=19 \
--backup-id=3 \
--wait

Xác minh Bản sao lưu

$ s9s backup --verify \
--backup-id=3 \
--test-server=10.10.10.151 \
--cluster-id=19 \
--log

Quảng cáo Slave Node

$ s9s cluster --promote-slave \
--cluster-id=19 \
--nodes='10.10.10.146' \
--log

Kết luận

Nâng cấp là công việc cần thiết nhưng tốn thời gian. Việc triển khai môi trường thử nghiệm mỗi khi bạn cần nâng cấp có thể là một cơn ác mộng và thật khó để duy trì sự cập nhật này nếu không có bất kỳ công cụ tự động hóa nào.

ClusterControl cho phép bạn thực hiện các nâng cấp nhỏ hoặc thậm chí triển khai môi trường thử nghiệm để làm cho nhiệm vụ nâng cấp dễ dàng hơn và an toàn hơn. Bạn cũng có thể tích hợp nó với các công cụ tự động hóa khác nhau như Ansible, Puppet, v.v.

  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 SEC_TO_TIME () hoạt động trong MariaDB

  2. Hướng dẫn về MariaDB Columnstore dành cho quản trị viên MySQL

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

  4. Thông báo ClusterControl 1.7.3:Hỗ trợ được cải thiện PostgreSQL &Tùy chọn triển khai đám mây mới

  5. So sánh thời gian chuyển đổi dự phòng cho Amazon Aurora, Amazon RDS và ClusterControl