MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Hiểu các tùy chọn sao lưu MongoDB

Sao lưu và khôi phục quy trình công việc là cực kỳ quan trọng đối với bất kỳ cụm MongoDB sản xuất nào. Ngoài chức năng thực tế là sao lưu và khôi phục, bạn cũng phải xem xét các chức năng khác như tính khả dụng của bản sao lưu, bảo mật, thời gian khôi phục, mức độ chi tiết khôi phục, v.v. Ở cấp độ cao, bạn có ba tùy chọn để sao lưu máy chủ MongoDB của mình:

  1. Mongodump / Mongorestore
  2. Trình quản lý đám mây MongoDB
  3. Ảnh chụp nhanh đĩa

Mỗi một trong ba kỹ thuật trên đều có ưu và nhược điểm riêng. Đọc bên dưới để hiểu chi tiết hơn.

1. Mongodump / Mongorestore

Mongodump là công cụ sao lưu "bắt đầu" cho hầu hết các nhà phát triển MongoDB. Đây có lẽ là cách hầu hết các nhà phát triển bắt đầu sao lưu cơ sở dữ liệu MongoDB của họ. Công cụ Mongodump thực sự đơn giản để sử dụng và kết xuất tất cả dữ liệu trong cơ sở dữ liệu ở định dạng nhị phân (BSON) mà bạn có thể lưu trữ tại vị trí tùy chọn.

Ưu điểm:

  1. Sử dụng đơn giản.
  2. Tính linh hoạt trong nơi lưu trữ bản sao lưu - khi quá trình kết xuất hoàn tất, bạn có thể di chuyển nó đến bất kỳ vị trí nào bạn chọn - NFS chia sẻ, AWS S3, v.v.

Nhược điểm:

  1. Sao lưu toàn bộ, mọi lúc - Đó là một bản sao lưu đầy đủ, không khác với bản sao lưu trước đó của bạn. Vì vậy, khi cơ sở dữ liệu của bạn ngày càng lớn, có thể mất hàng giờ để hoàn tất quá trình sao lưu và khó sử dụng để lưu trữ.
  2. Không phải là thời điểm - Bản sao lưu được tạo bởi mongodump không phải là một ảnh chụp nhanh theo thời gian theo mặc định. Vì vậy, nếu dữ liệu của bạn thay đổi trong quá trình sao lưu, bạn có thể gặp phải tình trạng mông lung không nhất quán từ góc độ ứng dụng. Bạn có thể khắc phục điều này bằng cách sử dụng tùy chọn “–oplog” để chụp ảnh nhanh ở cuối quá trình mongodump. Tuy nhiên, tùy chọn này không khả dụng cho cơ sở dữ liệu độc lập

2. Trình quản lý đám mây MongoDB

Cloud Manager là một dịch vụ đám mây do nhóm MongoDB cung cấp để giúp bạn sao lưu cụm MongoDB của mình.

Ưu điểm:

  1. Sử dụng đơn giản - Cài đặt tác nhân MongoDB Cloud Manager để quản lý việc sao lưu / khôi phục cụm của bạn. Nó phức tạp hơn một chút so với sử dụng mongodump, nhưng không phức tạp hơn nhiều.
  2. Sao lưu liên tục - Trình quản lý đám mây liên tục truy vấn và sao lưu oplog của bạn. Vì vậy, điều này cho phép bạn khôi phục về bất kỳ thời điểm nào thay vì thời gian cụ thể khi sao lưu được thực hiện, điều này giúp giảm thiểu khả năng mất dữ liệu của bạn.

Nhược điểm:

  1. Kiểm soát dữ liệu - Dữ liệu sao lưu được lưu trữ trong trung tâm dữ liệu MongoDB ngoài tầm kiểm soát của bạn. Ở một số nơi trên thế giới (ví dụ:Châu Âu) và tùy thuộc vào nhu cầu bảo mật của bạn, đây có thể là một vấn đề lớn.
  2. Chi phí bổ sung - Bạn đang trả tiền theo kích thước của dữ liệu và số lượng thay đổi oplog. Nếu bạn có một cơ sở dữ liệu lớn hoặc số lần ghi cao, chi phí này có thể tăng lên.
  3. Khôi phục chậm - Để khôi phục dữ liệu của bạn từ Trình quản lý đám mây MongoDB, dữ liệu cần được tải xuống vật lý từ trung tâm dữ liệu Trình quản lý đám mây. Đây có thể là một thao tác rất tốn thời gian nếu bạn có một cơ sở dữ liệu lớn, chẳng hạn như nếu dữ liệu của bạn là 1TB, thì có thể mất vài giờ để tải xuống và sử dụng dữ liệu.

3. Ảnh chụp nhanh đĩa

Ảnh chụp nhanh có thể ở cấp đám mây (ví dụ:ảnh chụp nhanh đĩa AWS EBS) hoặc cấp hệ điều hành (ảnh chụp nhanh LVM). Ảnh chụp nhanh LVM, mặc dù tiện lợi, không dễ dàng di chuyển bên ngoài máy. Do đó, trong phần còn lại của cuộc thảo luận này, chúng ta sẽ tập trung vào ảnh chụp nhanh đĩa đám mây như ảnh chụp nhanh AWS EBS.

Ưu điểm:

  1. Đơn giản và dễ sử dụng - Tương đối nhỏ để kích hoạt ảnh chụp nhanh của đĩa EBS.
  2. Tính di động - Bạn có thể di chuyển ảnh chụp nhanh của mình sang các trung tâm dữ liệu khác nếu bạn cần tính khả dụng cao hơn cho các bản sao lưu của mình.
  3. Ảnh chụp nhanh khác biệt - Ảnh chụp nhanh là ảnh chụp nhanh khác nhau, vì vậy chúng chỉ lưu trữ những thay đổi từ ảnh chụp nhanh trước đó của bạn. Điều này làm giảm dung lượng lưu trữ cần thiết cho bản sao lưu của bạn.
  4. Không có bản sao dữ liệu - Không có bản sao dữ liệu liên quan để khôi phục dữ liệu của bạn. Ví dụ. Nếu bạn muốn khôi phục ảnh chụp nhanh 1TB, bạn chỉ có thể tạo một ổ đĩa mới từ ảnh chụp nhanh và điều này không dẫn đến bất kỳ bản sao dữ liệu thực tế nào. Đây là một * vấn đề lớn * khi xử lý lượng lớn dữ liệu.
  5. Kiểm soát dự phòng - Các bản sao lưu vẫn ở trong cùng một trung tâm dữ liệu với dữ liệu chính của bạn và được bảo mật bằng các cơ chế xác thực giống như máy chủ dữ liệu chính của bạn.

Nhược điểm:

  1. Không phải là bản sao lưu liên tục - Đây là bản sao lưu theo thời gian và chỉ có thể được khôi phục về các điểm đã sao lưu.
  2. Máy vật lý - Không thể sao lưu các máy vật lý tại chỗ bằng kỹ thuật này.

Vào cuối ngày, nếu dữ liệu của bạn nhỏ, cả ba tùy chọn sẽ hoạt động tốt. Khi bạn bắt đầu có lượng dữ liệu lớn hơn, bạn sẽ phải dành thời gian và chọn tùy chọn phù hợp nhất với tình huống của mình.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thể kết nối với MongoDB qua node.js trong Docker

  2. MongoDB $ dateFromString Format Specifier

  3. Mongoose JS findOne luôn trả về null

  4. Đối số được chuyển vào phải là một chuỗi 12 byte

  5. E:Không thể định vị gói mongodb-org