Tập lệnh tiện ích nào của phương thức MongoDB được sử dụng để sao lưu?

Sao lưu cơ sở dữ liệu không gì khác ngoài một cách để bảo vệ hoặc khôi phục dữ liệu. Đó là quá trình lưu trữ trạng thái hoạt động, kiến ​​trúc và dữ liệu của cơ sở dữ liệu của bạn. Nó có thể rất hữu ích trong các tình huống mất điện kỹ thuật hoặc thảm họa. Vì vậy, điều cần thiết là giữ bản sao lưu cơ sở dữ liệu của bạn và cơ sở dữ liệu của bạn có quy trình sao lưu tốt và dễ dàng

MongoDB cung cấp một số công cụ/kỹ thuật để sao lưu cơ sở dữ liệu của bạn một cách dễ dàng

Trong bài viết này, chúng ta sẽ thảo luận về một số quy trình sao lưu và khôi phục MongoDB hàng đầu

Nói chung, có ba tùy chọn phổ biến nhất để sao lưu máy chủ/cụm MongoDB của bạn

  • Mongodump/Mongorestore
  • Trình quản lý đám mây MongoDB
  • Ảnh chụp cơ sở dữ liệu

Ngoài các tùy chọn chung này, còn có các cách khác để sao lưu MongoDB của bạn. Chúng tôi sẽ thảo luận về tất cả các tùy chọn này trong bài viết này. Bắt đầu nào

MongoDump/MongoRestore

Nếu bạn có một cơ sở dữ liệu nhỏ (<100GB) và bạn muốn có toàn quyền kiểm soát các bản sao lưu của mình, thì Mongodump và Mongorestore là những lựa chọn tốt nhất của bạn. Đây là các lệnh shell mongo có thể được sử dụng để sao lưu cơ sở dữ liệu hoặc bộ sưu tập của bạn theo cách thủ công. Mongodump kết xuất tất cả dữ liệu ở định dạng JSON nhị phân (BSON) đến vị trí đã chỉ định. Mongorestore có thể sử dụng tệp BSON này để khôi phục cơ sở dữ liệu của bạn

Sao lưu toàn bộ cơ sở dữ liệu

$ sudo mongodump --db mydb --out /var/backups/mongo

đầu ra

2018-08-20T10:11:57.685-0500    writing mydb.users to /var/backups/mongo/mydb/users.bson
2018-08-20T10:11:57.907-0500    writing mydb.users metadata to /var/backups/mongo/mydb/users.metadata.json
2018-08-20T10:11:57.911-0500    done dumping mydb.users (25000 documents)
2018-08-20T10:11:57.911-0500    writing mydb.system.indexes to /var/backups/mongo/mydb/system.indexes.bson

Trong lệnh này, đối số quan trọng nhất là –db. Nó chỉ định tên của cơ sở dữ liệu mà bạn muốn sao lưu. Nếu bạn không chỉ định đối số này thì lệnh Mongodump sẽ sao lưu tất cả cơ sở dữ liệu của bạn, đây có thể là quá trình rất chuyên sâu

Sao lưu một bộ sưu tập duy nhất

$ mongodump -d mydb -o /var/backups/mongo --collection users

Lệnh này sẽ chỉ sao lưu bộ sưu tập người dùng trong cơ sở dữ liệu mydb. Nếu bạn không cung cấp tùy chọn này thì nó sẽ sao lưu tất cả bộ sưu tập trong cơ sở dữ liệu theo mặc định

Thực hiện sao lưu thường xuyên bằng Mongodump/Mongorestore

Theo thông lệ tiêu chuẩn, bạn nên tạo bản sao lưu thường xuyên cho cơ sở dữ liệu MongoDB của mình. Giả sử bạn muốn sao lưu hàng ngày vào lúc 3. 03 giờ sáng, sau đó trong hệ thống Linux, bạn có thể thực hiện việc này bằng cách thêm mục nhập cron vào crontab

$ sudo crontab -e

Thêm dòng này vào crontab

3 3 * * * mongodump --out /var/backups/mongo

Khôi phục toàn bộ cơ sở dữ liệu

Để khôi phục cơ sở dữ liệu, chúng ta có thể sử dụng lệnh Mongorestore với tùy chọn –db. Nó sẽ đọc các tệp BSON do Mongodump tạo và khôi phục cơ sở dữ liệu của bạn

$ sudo mongorestore --db mydb /var/backups/mongo/mydb

đầu ra

2018-07-20T12:44:30.876-0500    building a list of collections to restore from /var/backups/mongo/mydb/ dir
2018-07-20T12:44:30.908-0500    reading metadata file from /var/backups/mongo/mydb/users.metadata.json
2018-07-20T12:44:30.909-0500    restoring mydb.users from file /var/backups/mongo/mydb/users.bson
2018-07-20T12:45:01.591-0500    restoring indexes for collection mydb.users from metadata
2018-07-20T12:45:01.592-0500    finished restoring mydb.users (25000 documents)
2018-07-20T12:45:01.592-0500    done

Khôi phục toàn bộ bộ sưu tập

Để khôi phục chỉ một bộ sưu tập từ db, bạn có thể sử dụng lệnh sau

$ mongorestore -d mydb -c users mydb/users.bson

Nếu bộ sưu tập của bạn được sao lưu ở định dạng JSON thay vì BSON thì bạn có thể sử dụng lệnh sau

________số 8_______

Thuận lợi

  • Rất đơn giản để sử dụng
  • Bạn có toàn quyền truy cập vào bản sao lưu của mình
  • Bạn có thể đặt các bản sao lưu của mình ở bất kỳ vị trí nào như chia sẻ NFS, AWS S3, v.v.

Nhược điểm

  • Lần nào nó cũng backup full database chứ không riêng phần chênh lệch
  • Đối với cơ sở dữ liệu lớn, có thể mất hàng giờ để sao lưu và khôi phục cơ sở dữ liệu
  • Nó không phải là thời điểm theo mặc định, điều đó có nghĩa là nếu dữ liệu của bạn thay đổi trong khi sao lưu thì bản sao lưu của bạn có thể dẫn đến sự không nhất quán. Bạn có thể sử dụng tùy chọn –oplog để giải quyết vấn đề này. Nó sẽ chụp nhanh cơ sở dữ liệu khi kết thúc quá trình mongodump

Trình quản lý hoạt động MongoDB

Ops Manager là một ứng dụng quản lý dành cho MongoDB chạy trong trung tâm dữ liệu của bạn. Nó liên tục sao lưu dữ liệu của bạn và cung cấp các quy trình khôi phục tại thời điểm cho cơ sở dữ liệu của bạn. Trong ứng dụng này, có một tác nhân kết nối với các phiên bản MongoDB của bạn. Trước tiên, nó sẽ thực hiện đồng bộ hóa ban đầu để sao lưu trạng thái hiện tại của cơ sở dữ liệu. Nhân viên hỗ trợ sẽ tiếp tục gửi dữ liệu oplog được nén và mã hóa tới Trình quản lý vận hành để bạn có thể sao lưu liên tục. Sử dụng dữ liệu này, Trình quản lý hoạt động sẽ tạo ảnh chụp nhanh cơ sở dữ liệu. Nó sẽ tạo ảnh chụp nhanh cơ sở dữ liệu của bạn cứ sau 6 giờ và dữ liệu oplog sẽ được lưu trữ trong 24 giờ. Bạn có thể định cấu hình lịch chụp nhanh bất cứ lúc nào bằng Trình quản lý hoạt động

Thuận lợi

  • Đó là thời điểm theo mặc định
  • Không ảnh hưởng đến hiệu suất sản xuất ngoại trừ đồng bộ hóa ban đầu
  • Hỗ trợ ảnh chụp nhanh nhất quán của các cụm được phân đoạn
  • Tính linh hoạt để loại trừ các bộ sưu tập không quan trọng

Nhược điểm

  • Độ trễ mạng tăng theo kích thước ảnh chụp nhanh trong khi khôi phục cơ sở dữ liệu

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

MongoDB Cloud Manager là giải pháp sao lưu dựa trên đám mây, cung cấp giải pháp sao lưu trực tuyến, liên tục và khôi phục tại thời điểm dưới dạng dịch vụ được quản lý hoàn toàn. Bạn chỉ cần cài đặt tác nhân Cloud Manager để quản lý sao lưu và khôi phục cơ sở dữ liệu của mình. Nó sẽ lưu trữ dữ liệu sao lưu của bạn trong đám mây MongoDB

Thuận lợi

  • Rất đơn giản để sử dụng. GUI tốt
  • Sao lưu liên tục các truy vấn và oplog

Nhược điểm

  • Không kiểm soát dữ liệu sao lưu. Nó được lưu trữ trong đám mây MongoDB
  • Chi phí phụ thuộc vào kích thước của dữ liệu và số lượng thay đổi oplog
  • Quá trình khôi phục chậm

Tệp cơ sở dữ liệu ảnh chụp nhanh

Đây là giải pháp đơn giản nhất để sao lưu cơ sở dữ liệu của bạn. Bạn có thể sao chép tất cả các tệp bên dưới (nội dung của thư mục/dữ liệu) và đặt nó vào bất kỳ vị trí an toàn nào. Trước khi sao chép tất cả các tệp, bạn nên dừng tất cả các thao tác ghi đang diễn ra vào cơ sở dữ liệu để đảm bảo tính thống nhất của dữ liệu. Bạn có thể sử dụng db. lệnh fsyncLock() để dừng tất cả các thao tác ghi

Có hai loại ảnh chụp nhanh. một là ảnh chụp nhanh cấp đám mây và một là ảnh chụp nhanh cấp hệ điều hành

Nếu bạn đang lưu trữ dữ liệu cơ sở dữ liệu với nhà cung cấp dịch vụ đám mây như AWS thì bạn phải chụp nhanh AWS EBS để sao lưu. Ngược lại, nếu bạn đang lưu trữ các tệp DB trong hệ điều hành gốc như Linux thì bạn phải chụp nhanh LVM. Ảnh chụp nhanh LVM không thể di chuyển sang các máy khác. Vì vậy, ảnh chụp nhanh cơ sở đám mây tốt hơn ảnh chụp nhanh dựa trên hệ điều hành

Thuận lợi

  • dễ sử dụng
  • Toàn quyền kiểm soát ảnh chụp nhanh. Bạn có thể di chuyển nó đến bất kỳ trung tâm dữ liệu nào
  • Những ảnh chụp nhanh này là ảnh chụp nhanh khác chỉ lưu trữ sự khác biệt so với ảnh chụp nhanh trước đó
  • Không cần tải xuống ảnh chụp nhanh để khôi phục cơ sở dữ liệu của bạn. Bạn chỉ có thể tạo một tập mới từ ảnh chụp nhanh của mình

Nhược điểm

  • Sử dụng phương pháp này, bạn chỉ có thể khôi phục cơ sở dữ liệu của mình tại các điểm chia tay
  • Bảo trì đôi khi trở nên rất phức tạp
  • Để điều phối các bản sao lưu trên tất cả các bộ bản sao (trong hệ thống phân mảnh), bạn cần một nhóm phát triển đặc biệt

Công cụ sao lưu nhất quán MongoDB

Sao lưu nhất quán MongoDB là một công cụ để thực hiện sao lưu nhất quán các cụm MongoDB. Nó có thể sao lưu một cụm với một hoặc nhiều phân đoạn vào một điểm duy nhất của cơ sở dữ liệu. Nó sử dụng Mongodump làm phương thức sao lưu mặc định. Chạy lệnh sau để sao lưu bằng công cụ này

$ mongodb-consistent-backup -H localhost -P 27017 -u USERNAME -p PASSWORD -l /var/backups/mongo

Tất cả các bản sao lưu được tạo bởi lệnh này đều tương thích với MongoRestore. Bạn có thể sử dụng lệnh mongorestore với tùy chọn –oplogReplay để đảm bảo tính nhất quán

2018-08-20T10:11:57.685-0500    writing mydb.users to /var/backups/mongo/mydb/users.bson
2018-08-20T10:11:57.907-0500    writing mydb.users metadata to /var/backups/mongo/mydb/users.metadata.json
2018-08-20T10:11:57.911-0500    done dumping mydb.users (25000 documents)
2018-08-20T10:11:57.911-0500    writing mydb.system.indexes to /var/backups/mongo/mydb/system.indexes.bson
0

Thuận lợi

  • Mã nguồn mở hoàn toàn
  • Hoạt động với cụm sharded
  • Cung cấp tùy chọn sao lưu từ xa như Amazon S3
  • Tự động mở rộng quy mô có sẵn
  • Rất dễ cài đặt và chạy

Bất lợi

  • Sản phẩm chưa chín hoàn toàn
  • Rất ít tùy chọn tải lên từ xa
  • Không hỗ trợ mã hóa dữ liệu trước khi lưu vào đĩa
  • Kho lưu trữ mã chính thức thiếu thử nghiệm thích hợp

Sao lưu ClusterControl

ClusterControl là một hệ thống quản lý cơ sở dữ liệu tự động tất cả trong một. Nó cho phép bạn giám sát, triển khai, quản lý và thay đổi quy mô các cụm cơ sở dữ liệu của mình một cách dễ dàng. Nó hỗ trợ MySQL, MongoDB, PostgreSQL, Percona XtraDB và Galera Cluster. Phần mềm này tự động hóa hầu hết tất cả các hoạt động cơ sở dữ liệu như triển khai cụm, thêm hoặc xóa nút khỏi bất kỳ cụm nào, sao lưu liên tục, mở rộng cụm, v.v. Tất cả những điều này, bạn có thể thực hiện từ một GUI duy nhất do hệ thống ClusterControl cung cấp

ClusterControl cung cấp GUI rất đẹp để quản lý sao lưu MongoDB với hỗ trợ lập lịch và báo cáo sáng tạo. Nó cung cấp cho bạn hai tùy chọn cho các phương pháp sao lưu

  1. Mongodump
  2. Sao lưu nhất quán Mongodb

Vì vậy, người dùng có thể chọn bất kỳ tùy chọn nào theo nhu cầu của họ. Công cụ này chỉ định một ID duy nhất cho tất cả các bản sao lưu và lưu trữ nó theo đường dẫn này. ClusterControl > Cài đặt > Sao lưu > BackupID. Nếu nút được chỉ định không hoạt động trong khi thực hiện sao lưu thì công cụ sẽ tự động tìm nút trực tiếp từ cụm và tiếp tục quá trình sao lưu trên nút đó. Công cụ này cũng cung cấp một tùy chọn để lên lịch sao lưu bằng bất kỳ phương pháp sao lưu nào ở trên. Bạn có thể bật/tắt bất kỳ công việc lập lịch trình nào chỉ bằng cách bật/tắt một nút. ClusterControl chạy quy trình sao lưu ở chế độ nền để nó không ảnh hưởng đến các công việc khác trong hàng đợi

Thuận lợi

  • Cài đặt dễ dàng và sử dụng rất đơn giản
  • Nhiều tùy chọn cho các phương pháp sao lưu
  • Lên lịch sao lưu rất dễ dàng bằng cách sử dụng biểu mẫu GUI đơn giản
  • Xác minh sao lưu tự động
  • Báo cáo sao lưu với trạng thái

Bất lợi

  • Cả hai phương pháp sao lưu đều sử dụng mongodump bên trong, có một số vấn đề với việc xử lý cơ sở dữ liệu rất lớn

Phần kết luận

Một chiến lược sao lưu tốt là một phần quan trọng của bất kỳ hệ thống quản lý cơ sở dữ liệu nào. MongoDB cung cấp nhiều tùy chọn để sao lưu và phục hồi/khôi phục. Cùng với một phương pháp sao lưu tốt, điều rất quan trọng là phải có nhiều bản sao của cơ sở dữ liệu. Điều này giúp khôi phục cơ sở dữ liệu mà không có thời gian chết dù chỉ một giây. Đôi khi đối với cơ sở dữ liệu lớn hơn, quá trình sao lưu có thể rất tốn tài nguyên. Vì vậy, máy chủ của bạn phải được trang bị CPU, RAM tốt và nhiều dung lượng ổ đĩa hơn để xử lý loại tải này. Quá trình sao lưu có thể làm tăng tải trên máy chủ vì những lý do này, vì vậy bạn nên chạy quá trình sao lưu vào ban đêm hoặc giờ thấp điểm

Tiện ích nào giúp tạo bản sao lưu cơ sở dữ liệu MongoDB?

MongoDB Atlas cho phép người dùng tạo bản sao lưu bằng hệ thống sao lưu đám mây. Bản sao lưu đám mây MongoDB được tạo bằng chức năng chụp nhanh gốc của nhà cung cấp dịch vụ đám mây của cụm. MongoDB Atlas hỗ trợ sao lưu đám mây cho các cụm được cung cấp trên các nền tảng lưu trữ sau. Nền tảng đám mây của Google (GCP)

Làm cách nào để sao lưu dữ liệu MongoDB?

Bạn có thể tạo bản sao lưu triển khai MongoDB bằng cách tạo bản sao các tệp dữ liệu cơ bản của MongoDB . Nếu ổ đĩa nơi MongoDB lưu trữ các tệp dữ liệu của nó hỗ trợ ảnh chụp nhanh tại thời điểm, bạn có thể sử dụng các ảnh chụp nhanh này để tạo bản sao lưu của hệ thống MongoDB tại một thời điểm chính xác.

Làm cách nào để tự động sao lưu MongoDB?

Nội dung .
Tạo một mô-đun Terraform (tùy chọn)
Tạo hình ảnh Docker với công cụ cần thiết
Xác định các biến và dữ liệu
Tạo một thùng S3 để lưu trữ các bản sao lưu
Tạo vai trò IAM và Tài khoản dịch vụ Kubernetes
Lưu trữ mật khẩu của MongoDB dưới dạng Bí mật Kubernetes
Tạo Kubernetes CronJob
Triển khai hạ tầng