Sao lưu cơ sở dữ liệu thích hợp là một nhiệm vụ quan trọng. Bên cạnh việc thiết lập kiến trúc sẵn sàng cao của MongoDB cho các dịch vụ cơ sở dữ liệu, bạn cũng cần có các bản sao lưu cơ sở dữ liệu của mình để đảm bảo dữ liệu sẵn có trong trường hợp xảy ra thảm họa. Ví dụ:nếu bạn vô tình xóa một số dữ liệu khỏi cơ sở dữ liệu sản xuất, cách duy nhất để khôi phục dữ liệu theo quan điểm cơ sở dữ liệu là khôi phục từ bản sao lưu.
Gần đây, ClusterControl bắt đầu hỗ trợ một phương pháp sao lưu mới, được gọi là Percona Backup cho MongoDB, do Percona phát triển. Nó có thể chạy các bản sao lưu nhất quán cho Bộ bản sao MongoDB và Cụm được chia nhỏ.
Trong blog này, chúng ta sẽ xem xét cách quản lý sao lưu cho Bộ bản sao MongoDB và Cụm được chia nhỏ.
Bản sao lưu MongoDB trong kiến trúc khả dụng cao
ClusterControl hỗ trợ 3 phương pháp sao lưu, đó là mongodump, mongodb nhất quán và Percona Backup cho Mongodb. Bản sao lưu nhất quán mongodb đang sử dụng tiện ích mongodump làm phương pháp sao lưu và bản sao lưu có thể được khôi phục bằng mongorestore.
Phương pháp sao lưu được hỗ trợ mới nhất là Percona Backup cho Mongodb để sao lưu nhất quán và kịp thời cho Nhóm bản sao và Nhóm chia nhỏ, nó yêu cầu tác nhân chạy trên mọi nút hoặc tập hợp bản sao hoặc các nút phân đoạn và nút quản lý cho các cụm phân đoạn như được mô tả trong đây.
Việc định cấu hình và lập lịch sao lưu nhất quán bằng Percona Backup cho Mongodb trong ClusterControl rất dễ dàng. Đi tới trang Sao lưu, sau đó định cấu hình Sao lưu Percona cho Mongodb. Điều kiện tiên quyết là phải có Percona Backup cho MongoDB chạy trên mỗi nút, cũng có thể được cài đặt từ ClusterControl.
Trước tiên, chúng ta cần cài đặt Percona Backup cho MongoDB agent trước khi có thể lên lịch Backup như sau:
Và sau đó định cấu hình thư mục sao lưu. Xin lưu ý rằng thư mục sao lưu phải là một đĩa dùng chung đã được gắn kết trên tất cả các nút với chính xác cùng một đường dẫn được gắn kết như bên dưới:
Nếu bạn không có sẵn bất kỳ loại đĩa dùng chung nào trong hệ thống, bạn có thể sử dụng NFS để thực hiện việc này. Để cấu hình máy chủ NFS, chúng ta cần một máy chủ / máy ảo chuyên dụng có đủ dung lượng trống để lưu trữ bản sao lưu. Cài đặt thư viện nfs-utils và nfs-utils-lib trong máy chủ như bên dưới (giả sử chúng tôi đang sử dụng dựa trên CentOS):
[[email protected] ~]# yum install nfs-utils nfs-utils-lib
[[email protected] ~]# yum install portmap
Và khởi động dịch vụ portmap và nfs.
[[email protected] ~]# /etc/init.d/portmap start
[[email protected] ~]# /etc/init.d/nfs start
Sau đó, thêm các mục nhập mới vào / etc / export như hình dưới đây:
[[email protected] ~]# vi /etc/exports
/backup 10.10.10.11(rw,sync,no_root_squash)
Trên nút cơ sở dữ liệu, chúng ta chỉ cần gắn đĩa lưu trữ làm bộ nhớ dùng chung.
Điều cuối cùng, chỉ cần nhấp vào nút cài đặt và nó sẽ kích hoạt một công việc mới để định cấu hình tác nhân trên mỗi nút.
Sau khi cài đặt xong PBM ggent, chúng ta có thể định cấu hình phương pháp sao lưu cho cụm như bên dưới:
Sao lưu vật lý và lôgic
MongoDB backup hỗ trợ backup logic và backup vật lý. Phương pháp sao lưu hợp lý bằng cách sử dụng tiện ích mongodump được bao gồm khi bạn cài đặt gói mongodb. Mongodump cần quyền truy cập vào cơ sở dữ liệu mongodb của bạn, do đó nó yêu cầu quyền truy cập thông tin xác thực cho mongodump với các đặc quyền vai trò sao lưu và phải có hành động tìm cấp để sao lưu cơ sở dữ liệu.
Nó hoạt động với các định dạng kết xuất dữ liệu BSON. mongodump sẽ kết nối với cơ sở dữ liệu của bạn với thông tin đăng nhập được cung cấp, đọc toàn bộ dữ liệu trong cơ sở dữ liệu của bạn và kết xuất dữ liệu vào tệp. Vì nó là một quá trình đơn luồng, nên sẽ mất nhiều thời gian hơn để sao lưu, đặc biệt là với kích thước lớn của cơ sở dữ liệu. Mongodump không duy trì tính nguyên tử của các giao dịch trên các phân đoạn, đó là lý do tại sao nó không thể được sử dụng làm chiến lược dự phòng cho mongodb phiên bản 4.2 trở lên trong một cụm phân đoạn. Percona Backup cho MongoDB là một bản sao lưu hợp lý nhưng nó hỗ trợ các bản sao lưu nhất quán của các cụm.
Sao lưu vật lý trong MongoDB hoạt động thông qua ảnh chụp nhanh của hệ thống tệp mongodb, nó đang sao chép các tệp mongodb bên dưới sang một vị trí khác làm bản sao lưu cơ sở của cơ sở dữ liệu mongodb của bạn. Ảnh chụp nhanh hệ thống tệp là hệ điều hành nếu bạn sử dụng LVM (Trình quản lý Khối lượng Hợp lý) làm phần mềm để quản lý bố cục và thiết bị đĩa của bạn, hoặc thiết bị phần mềm, ví dụ:Veritas hoặc NetApp Backup. Bạn phải bật tính năng ghi nhật ký, ghi nhật ký hoạt động thay đổi trong mongodb trước khi chạy ảnh chụp hệ thống tệp để sao lưu nhất quán.
Bên cạnh ảnh chụp nhanh hệ thống tệp, bạn cũng có thể sử dụng lệnh cp hoặc rsync để sao chép tệp dữ liệu MongoDB, nhưng bạn cần dừng quá trình ghi vào mongodb vì quá trình sao chép tệp dữ liệu không phải là một hoạt động nguyên tử. Không thể sử dụng bản sao lưu để khôi phục điểm trong thời gian trong bộ bản sao hoặc kiến trúc cụm phân đoạn.
Percona Backup cho MongoDB bao gồm hai thành phần, pbm-agent cần được cài đặt trên mỗi nút và pbm như một giao diện dòng lệnh để tương tác và chạy các bản sao lưu. các nút cơ sở dữ liệu và chạy quá trình sao lưu và phục hồi. Pbm-agent sẽ quyết định nút tốt nhất để thực hiện sao lưu.
Sao lưu PITR
Trong nhiều hệ thống cơ sở dữ liệu, người ta thường sử dụng một trạm kiểm soát để chuyển dữ liệu vào đĩa. MongoDB sử dụng công cụ lưu trữ WiredTiger làm công cụ lưu trữ mặc định và cũng sử dụng các điểm kiểm tra để cung cấp chế độ xem dữ liệu nhất quán. Không chỉ vậy, trạm kiểm soát trong MongoDB có thể được sử dụng để khôi phục từ điểm kiểm tra cuối cùng. Việc ghi nhật ký hoạt động giữa mỗi điểm kiểm tra, việc ghi nhật ký được yêu cầu để phục hồi sau những sự cố mất điện đột xuất xảy ra bất kỳ lúc nào giữa các điểm kiểm tra. Việc ghi nhật ký đảm bảo các hoạt động ghi được ghi vào đĩa, MongoDB sẽ tạo một mục nhật ký cho mọi thay đổi, bao gồm các byte đã thay đổi và vị trí đĩa.
Mongodump và mongorestore có thể được sử dụng để sao lưu phục hồi tại thời điểm, có một tùy chọn để tận dụng oplog. Oplog là một bộ sưu tập có giới hạn trong MongoDB, theo dõi tất cả các thay đổi trong bộ sưu tập cho mọi giao dịch ghi (ví dụ:chèn, cập nhật, xóa). Vì vậy, nếu bạn muốn khôi phục kịp thời, bạn cần khôi phục từ bản sao lưu đầy đủ cuối cùng và cũng sử dụng tệp oplog để áp dụng các thay đổi vào thời điểm chính xác mà bạn muốn khôi phục. Một công cụ khác có thể được sử dụng là Percona Backup cho MongoDB, quy trình tương tự như mongodump, chúng ta cần khôi phục từ bản sao lưu và sau đó áp dụng oplog.
Kết luận
Thực hiện một bản sao lưu nhất quán là điều quan trọng, đặc biệt là trong các thiết lập MongoDB được phân cụm (tập hợp bản sao hoặc cụm phân đoạn). ClusterControl cung cấp một cách dễ dàng để định cấu hình Percona Backup cho MongoDB trong cụm của bạn và lên lịch sao lưu.