Sao lưu cơ sở dữ liệu là một phần quan trọng của quản lý cơ sở dữ liệu và phải được lên kế hoạch cẩn thận. Lên lịch sao lưu thôi chưa đủ, dữ liệu sao lưu còn cần được xác minh tính nhất quán và toàn vẹn. Có những cân nhắc khác như mã hóa và lưu trữ bên ngoài trang web. Một trình quản lý sao lưu tốt sẽ có các tính năng có tính đến tất cả các cân nhắc khác nhau này.
Trong bài đăng blog này, chúng ta sẽ xem xét cách bạn có thể lên lịch sao lưu cơ sở dữ liệu của mình với ClusterControl.
Sao lưu cơ sở dữ liệu bằng ClusterControl
ClusterControl hỗ trợ một số phương pháp sao lưu tùy thuộc vào loại cụm, như được tóm tắt trong bảng sau:
Loại cụm | Phương pháp sao lưu được hỗ trợ |
---|---|
MySQL (Replication, Galera, NDB Cluster, Group Replication) |
|
MongoDB (Bộ bản sao, Cụm được chia nhỏ) |
|
PostgreSQL (Sao chép trực tuyến) |
|
Khi lập lịch sao lưu với ClusterControl, mỗi phương pháp sao lưu đều có thể định cấu hình với một tập hợp các tùy chọn về cách bạn muốn thực hiện sao lưu. Các khối lượng công việc cơ sở dữ liệu khác nhau và các chiến lược sao lưu sẽ yêu cầu hỗ trợ các tính năng khác nhau, ví dụ:
- Điều chỉnh IOPS trên đĩa
- Điều chỉnh mạng
- Ổ khóa dự phòng
- Mã hóa
- Nén
- Thời gian lưu giữ
- Xác minh
ClusterControl sẽ tự động đặt một số tùy chọn sao lưu, theo phương pháp hay nhất từ nhà cung cấp cơ sở dữ liệu cụ thể. Ví dụ:nếu nút cơ sở dữ liệu đích đã bật nhật ký nhị phân, nó sẽ gắn thêm một cờ, --master-data để bao gồm tọa độ nhật ký nhị phân (tên tệp và vị trí) của máy chủ được kết xuất. Nếu đó là một nút Galera và phương thức sao lưu là xtrabackup, ClusterControl sẽ gắn thêm một cờ, --galera-info chứa trạng thái nút cục bộ tại thời điểm sao lưu.
Lập kế hoạch sao lưu
Trước khi lên lịch cho bất kỳ bản sao lưu nào, chúng ta phải lập kế hoạch hoạt động sao lưu sẽ diễn ra như thế nào. Trả lời các câu hỏi ví dụ sau sẽ hữu ích trước khi bạn tạo lịch dự phòng:
- Bạn muốn sử dụng phương pháp sao lưu nào? Một số phương pháp sao lưu là không chặn, nhưng rất tốn tài nguyên. Hiểu được sự cân bằng, vì vậy bạn không ngạc nhiên về cách thức hoạt động của quy trình trong sản xuất.
- Bạn muốn sao lưu cơ sở dữ liệu của mình với tần suất bao lâu? Việc chạy một bản sao lưu đầy đủ có thể gây khó khăn nếu khoảng thời gian sao lưu quá ngắn. Bạn có thể cần kết hợp các bản sao lưu đầy đủ và tăng dần.
- Bạn muốn khôi phục dữ liệu của mình nhanh đến mức nào? Sao lưu vật lý thường nhanh hơn sao lưu logic về thời gian khôi phục toàn bộ. Mặt khác, sao lưu hợp lý thường nhanh hơn để khôi phục một phần.
- Kích thước dữ liệu của bạn lớn đến mức nào? Trong một số trường hợp, sao lưu hợp lý không phải là lựa chọn tốt cho cơ sở dữ liệu khổng lồ và sao lưu nhị phân là cách duy nhất để thực hiện.
- Bạn có bao nhiêu dung lượng trống để lưu trữ bản sao lưu của mình? Các bản sao lưu có xu hướng ăn nhiều dung lượng. Quyết định xem có cần nén hay không và mức nén mà bạn có thể chi trả. Nén tốt hơn yêu cầu mức sử dụng CPU cao hơn.
- Điều gì sẽ xảy ra nếu máy chủ sao lưu bị lỗi trong thời gian sao lưu? Nó có nên chuyển đổi dự phòng bản sao lưu sang một máy chủ có sẵn khác không? Bỏ qua bản sao lưu do sắp hết thời gian bảo trì thường không phải là một ý kiến hay.
- Làm cách nào để đảm bảo tính toàn vẹn của bản sao lưu đã tạo? Hãy nhớ rằng một bản sao lưu không phải là bản sao lưu nếu nó không có khả năng khôi phục.
- Bạn có tin tưởng vào bộ nhớ dự phòng không? Mã hóa có thể là một ý tưởng hay để bảo vệ dữ liệu của bạn.
Nói chung, bằng cách trả lời những câu hỏi đó, chúng tôi có thể đưa ra một chiến lược dự phòng thích hợp. Danh sách các câu hỏi có thể dài hơn tùy thuộc vào chính sách sao lưu và khôi phục của bạn.
Chúng tôi đã trình bày chi tiết chương này trong sách trắng của chúng tôi, Hướng dẫn DevOps về Sao lưu cơ sở dữ liệu cho MySQL và MariaDB.
Lập lịch sao lưu
Với ClusterControl, việc lập lịch trình khá đơn giản. Đi thẳng đến Sao lưu -> Tạo Sao lưu -> Lên lịch Sao lưu và bạn sẽ thấy hộp thoại sau:
Tùy thuộc vào loại cụm, các tùy chọn có thể khác nhau, như được hiển thị trong ảnh chụp màn hình sau cho PostgreSQL và MongoDB:
PostgreSQL MongoDBHầu hết các tùy chọn đều tự giải thích và được trình bày chi tiết trong Hướng dẫn sử dụng. Sau khi lịch trình được tạo, bạn có thể chỉnh sửa các bản sao lưu cấu hình, bật / tắt bản sao lưu hoặc xóa lịch biểu trong tab "Sao lưu theo lịch biểu":
Lưu ý khi lập lịch sao lưu với ClusterControl, tất cả thời gian phải được lập lịch theo múi giờ UTC của máy chủ ClusterControl. Lý do đằng sau điều này là để cắt bỏ sự nhầm lẫn về thời gian thực hiện sao lưu. Khi làm việc với một cụm, các máy chủ cơ sở dữ liệu có thể nằm rải rác ở các múi giờ khác nhau và các khu vực địa lý khác nhau. Sử dụng một múi giờ tham chiếu để quản lý tất cả chúng sẽ đảm bảo các bản sao lưu luôn được thực thi vào đúng thời điểm.
Bạn có thể theo dõi tiến trình của một bản sao lưu bằng cách xem Hoạt động -> Công việc khi đã đến lúc. Nếu công việc sao lưu không thành công, bạn sẽ thấy lỗi ngay lập tức:
Nhật ký ở trên cũng có thể truy cập được trong tab Sao lưu trên mỗi mục nhập sao lưu:
Kiểm tra và xác minh sau sao lưu
Sau khi công việc sao lưu kết thúc, không có nghĩa là trách nhiệm của bạn đã hết. Có một số điều cần được theo dõi. Điều quan trọng nhất là trạng thái của bản sao lưu đã tạo. ClusterControl cung cấp thông báo qua email và sẽ thông báo cho bạn về trạng thái. Dịch vụ thông báo này tất nhiên có thể định cấu hình dựa trên mức độ nghiêm trọng trong Cài đặt -> Cài đặt chung -> Cài đặt thông báo email -> Sao lưu:
Cung cấp có nghĩa là ClusterControl sẽ gửi thông báo qua email ngay lập tức sau khi cảnh báo cho thành phần này được nâng lên. Bạn cũng có thể định cấu hình nó là Bỏ qua hoặc Thông báo, trong đó ClusterControl gửi một bản tóm tắt hàng ngày về các cảnh báo được nêu ra.
Nếu bản sao lưu được tạo thành công, bạn nên xác minh xem bản sao lưu có thể khôi phục được hay không. Bạn có thể sử dụng tính năng Xác minh sao lưu bằng cách nhấp vào nút "Khôi phục" của ID sao lưu đã chọn và bạn sẽ thấy hai tùy chọn khôi phục:
"Khôi phục và xác minh trên máy chủ độc lập" yêu cầu máy chủ riêng biệt, máy chủ này chưa phải là một phần của thiết lập cơ sở dữ liệu. ClusterControl trước tiên sẽ triển khai một phiên bản MySQL trên máy chủ đích, khởi động dịch vụ, sao lưu bản sao lưu từ kho lưu trữ sao lưu và bắt đầu khôi phục. Sau khi hoàn tất, bạn có thể có tùy chọn tắt máy chủ sau khi được khôi phục hoặc để nó chạy để bạn có thể tiến hành điều tra thêm trên máy chủ.
Công việc dọn phòng cũng rất quan trọng để chỉ giữ lại những bản sao lưu hữu ích trong bộ nhớ của bạn. Do đó, hãy định cấu hình lưu giữ bản sao lưu khi cần thiết. Theo mặc định, ClusterControl sẽ xóa các bản sao lưu cũ hơn 30 ngày. Bạn cũng có thể tùy chỉnh từng lịch trình sao lưu với các khoảng thời gian lưu giữ khác nhau.
Nếu bộ nhớ sao lưu sắp đạt đến bất kỳ giới hạn dung lượng nào hoặc bạn muốn lưu trữ bản sao lưu của mình ở ngoài vị trí, bạn có thể chọn xóa tệp theo cách thủ công bằng cách nhấp vào biểu tượng thùng rác hoặc tải tệp lên đám mây, như được đánh dấu bên dưới:
Tại thời điểm viết bài, AWS S3 và GCP Cloud Storage được hỗ trợ. Thông tin đăng nhập đám mây phải được định cấu hình trước trong Menu bên -> Tích hợp -> Nhà cung cấp đám mây.
Đó là nó, folks. Chúc các bạn thành nhóm vui vẻ!