Hướng dẫn mongodb restore from snapshot - khôi phục mongodb từ ảnh chụp nhanh
Trên trang này Show
Tài liệu này mô tả một quy trình để tạo các bản sao lưu của các hệ thống MongoDB bằng các công cụ cấp hệ thống, chẳng hạn như LVM hoặc thiết bị lưu trữ, cũng như các chiến lược phục hồi tương ứng. Các ảnh chụp nhanh hệ thống tệp này hoặc các phương thức sao lưu "cấp khối", sử dụng các công cụ cấp hệ thống để tạo bản sao của thiết bị chứa các tệp dữ liệu của MongoDB. Các phương pháp này hoàn thành nhanh chóng và hoạt động đáng tin cậy, nhưng yêu cầu cấu hình hệ thống bổ sung bên ngoài MongoDB. MẹoẢnh chụp nhanh hoạt động bằng cách tạo các gợi ý giữa dữ liệu trực tiếp và khối lượng ảnh chụp đặc biệt. Những gợi ý này tương đương về mặt lý thuyết với "các liên kết cứng". Khi dữ liệu làm việc khác nhau từ ảnh chụp nhanh, quy trình chụp nhanh sử dụng chiến lược sao chép trên-viết. Do đó, ảnh chụp nhanh chỉ lưu trữ dữ liệu được sửa đổi. Sau khi thực hiện ảnh chụp nhanh, bạn gắn hình ảnh chụp nhanh trên hệ thống tệp của mình và sao chép dữ liệu từ ảnh chụp nhanh. Bản sao lưu kết quả chứa một bản sao đầy đủ của tất cả dữ liệu. MongoDB 3.2 đã thêm hỗ trợ cho việc sao lưu mức âm lượng của các phiên bản MongoDB bằng cách sử dụng công cụ lưu trữ WiredTiger khi các tệp dữ liệu và tệp nhật ký của phiên bản MongoDB nằm trên các khối lượng riêng biệt. Tuy nhiên, để tạo bản sao lưu mạch lạc, cơ sở dữ liệu phải được khóa và tất cả các ghi vào cơ sở dữ liệu phải được treo trong quá trình sao lưu. Trước MongoDB 3.2, việc tạo các bản sao lưu mức âm lượng của các phiên bản MongoDB bằng cách sử dụng WiredTiger yêu cầu các tệp dữ liệu và tạp chí nằm trên cùng một khối lượng. Đối với các công cụ lưu trữ được mã hóa sử dụng chế độ mã hóa Đối với công cụ lưu trữ được mã hóa được cấu hình bằng mật mã
Mẹo
MongoDB 3.2 đã thêm hỗ trợ cho việc sao lưu mức âm lượng của các phiên bản MongoDB bằng cách sử dụng công cụ lưu trữ WiredTiger khi các tệp dữ liệu và tệp nhật ký của phiên bản MongoDB nằm trên các khối lượng riêng biệt. Tuy nhiên, để tạo bản sao lưu mạch lạc, cơ sở dữ liệu phải được khóa và tất cả các ghi vào cơ sở dữ liệu phải được treo trong quá trình sao lưu. Trước MongoDB 3.2, việc tạo các bản sao lưu mức âm lượng của các phiên bản MongoDB bằng cách sử dụng WiredTiger yêu cầu các tệp dữ liệu và tạp chí nằm trên cùng một khối lượng. Đối với các công cụ lưu trữ được mã hóa sử dụng chế độ mã hóa Đối với công cụ lưu trữ được mã hóa được cấu hình bằng mật mã Khôi phục từ bản sao lưu nóng trong 4.2, nếu bạn khôi phục từ các tệp được thực hiện thông qua bản sao lưu "nóng" (tức là Khôi phục từ bản sao lưu lạnh Tuy nhiên, nếu bạn khôi phục từ các tệp được thực hiện thông qua bản sao lưu "lạnh" (tức là Bắt đầu từ 4.2, để tránh việc tái sử dụng các khóa sau khi khôi phục từ ảnh chụp nhanh hệ thống tập tin lạnh, MongoDB thêm tùy chọn dòng lệnh mới ____10. Khi bắt đầu với tùy chọn 0, phiên bản mongod cuộn qua các khóa cơ sở dữ liệu được cấu hình với mật mã AES256-GCM và thoát.Nói chung, nếu sử dụng các bản sao lưu dựa trên hệ thống tập tin cho MongoDB Enterprise 4.2+, hãy sử dụng tính năng sao lưu "nóng", nếu có thể. Đối với MongoDB Enterprise phiên bản 4.0 trở lên, nếu bạn sử dụng chế độ mã hóa AES256-GCM, không tạo bản sao của các tệp dữ liệu của bạn hoặc khôi phục từ các ảnh chụp nhanh hệ thống tập tin ("nóng" hoặc "lạnh").Cơ sở dữ liệu phải hợp lệ khi ảnh chụp nhanh diễn ra. Điều này có nghĩa là tất cả các ghi được chấp nhận bởi cơ sở dữ liệu cần phải được ghi đầy đủ vào đĩa: cho tạp chí hoặc vào các tệp dữ liệu. Nếu có các chữ viết không có trên đĩa khi sao lưu xảy ra, bản sao lưu sẽ không phản ánh những thay đổi này.
Phần này cung cấp một cái nhìn tổng quan về một quy trình sao lưu đơn giản sử dụng LVM trên hệ thống Linux. Mặc dù các công cụ, lệnh và đường dẫn có thể (một chút) khác nhau trên hệ thống của bạn, các bước sau đây cung cấp tổng quan cấp cao về hoạt động sao lưu. Ghi chúChỉ sử dụng quy trình sau làm hướng dẫn cho hệ thống sao lưu và cơ sở hạ tầng. Hệ thống sao lưu sản xuất phải xem xét một số yêu cầu và yếu tố cụ thể của ứng dụng duy nhất cho các môi trường cụ thể. Đã thay đổi trong phiên bản 3.2: Bắt đầu trong MongoDB 3.2, với mục đích sao lưu mức âm lượng của các phiên bản MongoDB bằng WiredTiger, các tệp dữ liệu và tạp chí không còn cần phải cư trú trên một tập. Để tạo ảnh chụp nhanh với LVM, hãy đưa ra lệnh làm root ở định dạng sau:
Lệnh này tạo ra một ảnh chụp nhanh LVM (với tùy chọn 6) có tên 7 của tập 8 trong nhóm âm lượng 9.Ví dụ này tạo ra một ảnh chụp nhanh có tên 7 nằm ở 1. Vị trí và đường dẫn đến các nhóm và thiết bị khối lượng hệ thống của bạn có thể thay đổi một chút tùy thuộc vào cấu hình LVM của hệ điều hành của bạn.Ảnh chụp có một nắp ở mức 100 megabyte, vì tham số 2. Kích thước này không phản ánh tổng lượng dữ liệu trên đĩa, mà là số lượng khác biệt giữa trạng thái hiện tại của 3 và việc tạo ra ảnh chụp nhanh (nghĩa là 1.)Cảnh báoĐảm bảo rằng bạn tạo các ảnh chụp nhanh với đủ không gian để giải thích cho sự phát triển dữ liệu, đặc biệt trong khoảng thời gian cần phải sao chép dữ liệu ra khỏi hệ thống hoặc hình ảnh tạm thời. Nếu ảnh chụp nhanh của bạn chạy ra khỏi không gian, hình ảnh ảnh chụp nhanh không thể sử dụng được. Loại bỏ khối lượng logic này và tạo một khối khác. Ảnh chụp nhanh sẽ tồn tại khi lệnh trả về. Bạn có thể khôi phục trực tiếp từ ảnh chụp nhanh bất cứ lúc nào hoặc bằng cách tạo khối lượng logic mới và khôi phục từ ảnh chụp nhanh này sang hình ảnh thay thế. Mặc dù ảnh chụp nhanh là tuyệt vời để tạo bản sao lưu chất lượng cao một cách nhanh chóng, nhưng chúng không lý tưởng như một định dạng để lưu trữ dữ liệu sao lưu. Ảnh chụp nhanh thường phụ thuộc và cư trú trên cùng một cơ sở hạ tầng lưu trữ như hình ảnh đĩa ban đầu. Do đó, điều quan trọng là bạn lưu trữ những bức ảnh chụp này và lưu trữ chúng ở nơi khác. Sau khi tạo ảnh chụp nhanh, hãy gắn ảnh chụp nhanh và sao chép dữ liệu vào lưu trữ riêng biệt. Hệ thống của bạn có thể cố gắng nén các hình ảnh sao lưu khi bạn di chuyển chúng ngoại tuyến. Ngoài ra, hãy lấy một bản sao cấp khối của hình ảnh ảnh chụp nhanh, chẳng hạn như với quy trình sau:
Trình tự lệnh trên thực hiện như sau:
Nếu ảnh chụp nhanh của bạn chạy ra khỏi không gian, hình ảnh ảnh chụp nhanh không thể sử dụng được. Loại bỏ khối lượng logic này và tạo một khối khác.
Ảnh chụp nhanh sẽ tồn tại khi lệnh trả về. Bạn có thể khôi phục trực tiếp từ ảnh chụp nhanh bất cứ lúc nào hoặc bằng cách tạo khối lượng logic mới và khôi phục từ ảnh chụp nhanh này sang hình ảnh thay thế.
Ghi chúChỉ sử dụng quy trình sau làm hướng dẫn cho hệ thống sao lưu và cơ sở hạ tầng. Hệ thống sao lưu sản xuất phải xem xét một số yêu cầu và yếu tố cụ thể của ứng dụng duy nhất cho các môi trường cụ thể. Đã thay đổi trong phiên bản 3.2: Bắt đầu trong MongoDB 3.2, với mục đích sao lưu mức âm lượng của các phiên bản MongoDB bằng WiredTiger, các tệp dữ liệu và tạp chí không còn cần phải cư trú trên một tập.
Ghi chúMới trong phiên bản 3.6: Tất cả các bộ sưu tập MongoDB đều có UUID theo mặc định. Khi MongoDB khôi phục các bộ sưu tập, các bộ sưu tập được khôi phục giữ lại UUID gốc của chúng. Khi khôi phục một bộ sưu tập không có UUID, MongoDB tạo ra một UUID cho bộ sưu tập được khôi phục.UUIDs by default. When MongoDB restores collections, the restored collections retain their original UUIDs. When restoring a collection where no UUID was present, MongoDB generates a UUID for the restored collection. Để biết thêm thông tin về bộ sưu tập UUID, xem Bộ sưu tập.Collections. Bạn có thể triển khai các bản sao lưu ngoài hệ thống bằng quá trình kết hợp và SSH.combined process and SSH. Trình tự này giống hệt với các thủ tục được giải thích ở trên, ngoại trừ việc nó lưu trữ và nén bản sao lưu trên một hệ thống từ xa bằng SSH. Xem xét thủ tục sau:
Đã thay đổi trong phiên bản 3.2: Bắt đầu trong MongoDB 3.2, với mục đích sao lưu mức âm lượng của các phiên bản MongoDB bằng WiredTiger, các tệp dữ liệu và tạp chí không còn cần phải cư trú trên một tập. Tuy nhiên, cơ sở dữ liệu phải được khóa và tất cả các ghi vào cơ sở dữ liệu phải bị đình chỉ trong quá trình sao lưu để đảm bảo tính nhất quán của bản sao lưu. Nếu ví dụ Để mở khóa cơ sở dữ liệu sau khi ảnh chụp nhanh đã hoàn thành, hãy sử dụng lệnh sau trong 3 3 |