Một số tùy chọn tôi đã thử bao gồm chỉ chụp ảnh nhanh hàng ngày với mongodump hoặc lưu trữ các khác biệt gia tăng của điều này với sự trùng lặp. Tuy nhiên, với tập dữ liệu của tôi là vài trăm GB, các phương pháp này quá chậm Show
Sao lưu MMS sẽ là giải pháp hoàn hảo. Thật không may, tôi không thể lưu trữ các bản sao lưu ở Hoa Kỳ do các quy định về quyền riêng tư, vì vậy tôi đang tìm thứ gì đó chạy tại chỗ. Tôi đang cân nhắc tùy chọn MMS tại chỗ nhưng cũng muốn xem xét các tùy chọn khác Tôi đang xem xét viết kịch bản một giải pháp sao lưu các kết xuất/ảnh chụp nhanh định kỳ, sau đó liên tục lưu oplog. Một cách tiếp cận như thế này sẽ làm việc? 1. Chụp nhanh hàng tuần với mongodump --oplog 2. Mỗi giờ (giả sử oplog luôn có hơn một giờ thay đổi), kết xuất tất cả dữ liệu mới từ oplog với nội dung như thế này mongodump -d local -c oplog. rs --query "{ts. { "$gt". { "$dấu thời gian". {"t". (dấu thời gian ở đây) } } }}" Sẽ phải cẩn thận để theo dõi dấu thời gian được nhìn thấy lần cuối và cũng như không có khoảng trống trong oplog 3. Di chuyển các tệp này đến một số vị trí sao lưu ngoại vi 1. Thực hiện kết xuất đầy đủ mới nhất và khôi phục bằng mongorestore --oplogReplay 2. Đối với mỗi kết xuất oplog sau đó (theo thứ tự) một. Đặt oplog vào một thư mục trống, nói "oplog-n", như oplog. bson (thay vì local/oplog. rs. bson) b. Khôi phục oplog với mongorestore --oplogReplay "oplog-n" * Có thể đạt được khôi phục tại thời điểm bằng cách sử dụng tùy chọn --oplogLimit * Việc khôi phục có thể được thực hiện bằng một lệnh mongorestore duy nhất bằng cách nối oplog. bson (có thể cần cẩn thận để làm cho định dạng hợp lệ) Phương pháp này có hiệu quả không? Tôi biết về dự án Tarja, dự án này hoạt động tương tự. Tuy nhiên, tôi sẽ cảm thấy thoải mái hơn khi chỉ sử dụng các lệnh MongoDB tiêu chuẩn và một số tập lệnh giống như bash Sao lưu cơ sở dữ liệu là một trong những quy trình quan trọng nhất đối với bất kỳ quản trị viên cơ sở dữ liệu hoặc hệ thống nào. Sao lưu cơ sở dữ liệu là bản sao dữ liệu từ cơ sở dữ liệu giúp tái sử dụng cơ sở dữ liệu trong trường hợp có bất kỳ sự cố mất mát nào xảy ra Sao lưu và khôi phục cơ sở dữ liệu MongoDB rất quan trọng khi bạn muốn di chuyển cơ sở dữ liệu của mình sang một máy chủ khác hoặc chuyển sang MongoDB. MongoDB đi kèm với lệnh mongodump và mongorestore để sao lưu và khôi phục cơ sở dữ liệu. Nó là một công cụ rất đơn giản và mạnh mẽ để thực hiện quá trình sao lưu và phục hồi trên các máy chủ trực tiếp một cách hiệu quả Mongodump là công cụ sao lưu để tạo bản xuất nhị phân nội dung của cơ sở dữ liệu. Nó có thể xuất dữ liệu từ các triển khai cụm độc lập, bản sao và cụm được chia sẻ Mongorestore là một công cụ khôi phục cơ sở dữ liệu tải dữ liệu từ kết xuất cơ sở dữ liệu nhị phân được tạo bởi mongodump hoặc đầu vào tiêu chuẩn vào một cá thể mongod hoặc mongos Hướng dẫn này sẽ chỉ cho bạn cách sao lưu và khôi phục cơ sở dữ liệu MongoDB Mục lụcYêu cầu
Cú pháp cơ bảnCú pháp cơ bản của lệnh mongodump được hiển thị bên dưới
Một lời giải thích ngắn gọn về từng tùy chọn được hiển thị bên dưới
Cú pháp cơ bản của lệnh mongorestore được hiển thị bên dưới
Ở đâu --drop được sử dụng để xóa cơ sở dữ liệu nếu nó đã tồn tại Cách sao lưu cơ sở dữ liệu MongoDBPhần này sẽ chỉ ra cách sao lưu một và nhiều cơ sở dữ liệu trên máy chủ cục bộ và máy chủ từ xa trong MongoDB Sao lưu một cơ sở dữ liệu duy nhấtBạn có thể sử dụng lệnh mongodump để sao lưu một hoặc toàn bộ cơ sở dữ liệu. Ví dụ: để sao lưu một cơ sở dữ liệu có tên testdb và lưu bản sao lưu bên trong thư mục /opt trên máy chủ cục bộ, hãy chạy lệnh sau
Lệnh trên sẽ sao lưu cơ sở dữ liệu testdb và tạo một thư mục có tên cơ sở dữ liệu bên trong thư mục /opt Sao lưu một bộ sưu tập duy nhấtBạn cũng có thể sao lưu một bộ sưu tập từ cơ sở dữ liệu bằng cách chỉ định tùy chọn --collection bằng lệnh mongodump Ví dụ: để sao lưu một bộ sưu tập có tên là bộ sưu tập thử nghiệm từ cơ sở dữ liệu testdb, hãy chạy lệnh sau
mongodump Tất cả cơ sở dữ liệuĐể sao lưu tất cả cơ sở dữ liệu MongoDB, bạn không cần chỉ định bất kỳ tên cơ sở dữ liệu nào bằng lệnh mongodump Bạn có thể chạy lệnh sau để sao lưu tất cả cơ sở dữ liệu MongoDB và lưu bản sao lưu bên trong thư mục /mnt Lệnh này sẽ sao lưu tất cả cơ sở dữ liệu MongoDB và lưu nó trong thư mục /mnt Sao lưu cơ sở dữ liệu từ xaĐể sao lưu cơ sở dữ liệu từ máy chủ MongoDB từ xa. Bạn sẽ cần chỉ định địa chỉ IP và cổng của máy chủ MongoDB từ xa. Bạn cũng sẽ cần định cấu hình MongoDB để cho phép kết nối từ xa Ví dụ: để sao lưu một cơ sở dữ liệu có tên remotedb từ máy chủ MongoDB từ xa (192. 168. 0. 101), hãy chạy lệnh sau
Ở đâu 192. 168. 0. 101 là địa chỉ IP của máy chủ MongoDB từ xa, 27017 là số cổng MongoDB, admin là tên người dùng cơ sở dữ liệu, yourpassword là mật khẩu của người dùng quản trị và remotedb là tên của cơ sở dữ liệu mà bạn muốn sao lưu Cách khôi phục cơ sở dữ liệu MongoDBPhần này sẽ chỉ cho bạn cách khôi phục một và nhiều cơ sở dữ liệu trên máy chủ cục bộ và máy chủ từ xa Khôi phục một cơ sở dữ liệu duy nhấtBạn có thể dễ dàng sử dụng lệnh mongorestore làm lệnh khôi phục MongoDB trên một cơ sở dữ liệu bằng cách sử dụng bản sao lưu mà chúng tôi đã tạo trước đó Ví dụ: để khôi phục một bản sao lưu cơ sở dữ liệu có tên testdb , hãy chạy lệnh sau
Lệnh này sẽ khôi phục cơ sở dữ liệu testdb từ thư mục /opt/testdb Khôi phục tất cả cơ sở dữ liệuĐể khôi phục tất cả cơ sở dữ liệu MongoDB, bạn không cần chỉ định tùy chọn --db. Bạn có thể khôi phục tất cả cơ sở dữ liệu bằng cách chạy lệnh sau Thao tác này sẽ khôi phục tất cả cơ sở dữ liệu MongoDB từ bản sao lưu bên trong thư mục /opt Khôi phục cơ sở dữ liệu từ xaBạn có thể khôi phục cơ sở dữ liệu MongoDB bằng cách chỉ định tham số --host và --port bằng lệnh mongorestore Ví dụ: để khôi phục bản sao lưu từ cơ sở dữ liệu duy nhất có tên remotedb trên máy chủ MongoDB từ xa (192. 168. 0. 101), hãy chạy lệnh sau
Tự động sao lưu cơ sở dữ liệu MongoDB với CronThường xuyên dọn dẹp cơ sở dữ liệu MongoDB là một cách làm tốt cho bất kỳ quản trị viên hệ thống nào. Ví dụ: bạn có thể tạo tập lệnh sao lưu cơ sở dữ liệu và lên lịch cho nó bằng Cron job Bạn có thể tạo tập lệnh sao lưu bằng lệnh sau Thêm các dòng sau
Lưu và đóng tệp, sau đó tạo một công việc định kỳ để chạy tập lệnh trên hàng ngày vào lúc 10 giờ sáng Thêm các dòng sau ________số 8Lưu và đóng tệp khi bạn hoàn tất Phần kết luậnHướng dẫn trên đã hướng dẫn bạn cách sao lưu và khôi phục cơ sở dữ liệu MongoDB bằng tiện ích dòng lệnh mongodump và mongorestore. Tôi hy vọng những công cụ này sẽ giúp bạn thực hiện quy trình hàng ngày của mình Nếu bạn không muốn quản lý việc này, hãy xem Giải pháp sao lưu MongoDB của chúng tôi Mongodump có khóa cơ sở dữ liệu không?Mongodump không khóa cơ sở dữ liệu. Bạn có thể đọc và ghi tệp dễ dàng Chúng tôi có thể thực hiện sao lưu gia tăng trong MongoDB không?Có, bạn có thể thực hiện cả sao lưu toàn bộ và sao lưu gia tăng với sự trợ giúp của Mongobackup, một công cụ bên ngoài của MongoDB. Sao lưu toàn bộ sẽ được thực hiện bởi dbPath trong hệ thống tệp, trong khi sao lưu gia tăng sẽ được thực hiện bằng kết xuất oplog một phần Làm thế nào bạn có thể xác định tính nguyên tử trong cơ sở dữ liệu?Nó được gọi là tính nguyên tử khi nhiều hoạt động được nhóm thành một thực thể logic duy nhất. Ví dụ: nếu bạn muốn cập nhật ba cơ sở dữ liệu trong một hành động logic đơn lẻ, bạn có thể gọi đó là tính nguyên tử Là sao lưu gia tăng là tốt nhất?Do đó, sao lưu gia tăng thường tốt hơn trên đám mây vì chúng thường tiêu tốn ít tài nguyên hơn . Sao lưu gia tăng cũng nhỏ hơn sao lưu vi sai. Với không gian lưu trữ là một yếu tố chi phí lớn trong đám mây, sao lưu càng nhỏ thì càng tốt.
Hạn chế của sao lưu gia tăng là gì?Nhược điểm của sao lưu gia tăng
. Yêu cầu sao lưu toàn bộ ngoài sao lưu gia tăng để khôi phục hoàn toàn. Phục hồi yêu cầu ghép dữ liệu từ nhiều bộ sao lưu. Khả năng phục hồi dữ liệu không đầy đủ nhỏ nếu một hoặc nhiều bộ sao lưu bị lỗi. Recovery time may be slower. Requires a full backup in addition to incremental backups for complete recovery. Recovery requires the piecing together of data from multiple backup sets. Small potential for incomplete data recovery if one or more backup sets have failed.
Phương pháp sao lưu gia tăng là gì?Sao lưu gia tăng là loại sao lưu chỉ sao chép dữ liệu đã được thay đổi hoặc tạo kể từ khi hoạt động sao lưu trước đó được tiến hành . Phương pháp sao lưu gia tăng được sử dụng khi lượng dữ liệu phải được bảo vệ quá lớn để thực hiện sao lưu toàn bộ dữ liệu đó mỗi ngày.
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 |