Sao lưu tự động mongodb

À còn nữa nếu muốn 
FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
7 để làm gì đó thì chỉ cần kiếm 
FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
8 của nó sau đó dùng lệnh 
FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
9 để giết nó

Kiểm tra thư mục mà bạn đã truyền vào trong câu lệnh trên, bạn sẽ thấy một thư mục có tên là tên của cơ sở dữ liệu MongoDB với một số tệp. json,. bson is content of this database

Tiếp theo chúng ta sẽ nói về cách khôi phục

Chúng ta sẽ sử dụng công cụ mongorestore cũng được cài đặt cùng với máy chủ MongoDB

Cú pháp của khôi phục phần thì đơn giản như sau

Java

1

. / mongorestore - d <

in which

  • database_will_be_restored là cơ sở dữ liệu mới mà các bạn cần khôi phục cơ sở dữ liệu. Nếu cơ sở dữ liệu này không tồn tại trong máy chủ MongoDB thì nó sẽ được tạo tự động nhé các bạn
  • location_to_folder_contain_mongodb_database là thư mục chứa cơ sở dữ liệu nội dung mà chúng ta cần khôi phục

Giả sử mình cần khôi phục cơ sở dữ liệu “qm” mà mình vừa sao lưu ở trên một cơ sở dữ liệu khác, mình sẽ thực hiện câu lệnh như sau

Hướng dẫn này mô tả quy trình tạo bản sao lưu và khôi phục dữ liệu bằng các tiện ích được cung cấp cùng với MongoDB

Ghi chú

Bản đồ MongoDB

MongoDB Atlas, dịch vụ đám mây MongoDB chính thức, cung cấp 2 phương pháp được quản lý đầy đủ để sao lưu

  1. Sao lưu liên tục , tính năng này thực hiện sao lưu dữ liệu gia tăng trong cụm của bạn, đảm bảo rằng các bản sao lưu của bạn thường chậm hơn vài giây so với hệ điều hành. Bản sao lưu liên tục của Atlas cho phép bạn khôi phục từ ảnh chụp nhanh được lưu trữ hoặc từ một thời điểm đã chọn trong vòng 24 giờ qua. Bạn cũng có thể truy vấn ảnh chụp nhanh sao lưu liên tục.
  2. Ảnh chụp nhanh của nhà cung cấp đám mây , cung cấp dung lượng lưu trữ sao lưu cục bộ bằng cách sử dụ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.

cân nhắc

triển khai

Các tiện ích và hoạt động với các kết xuất dữ liệu BSON và rất hữu ích để tạo bản sao lưu của các triển khai nhỏ. Để sao lưu linh hoạt và không gây gián đoạn, hãy sử dụng hệ thống tệp hoặc chức năng chụp nhanh đĩa cấp khối, chẳng hạn như các phương pháp được mô tả trong tài liệu Phương pháp sao lưu MongoDB

Ghi chú

không thể là một phần của chiến lược dự phòng cho 4. Hơn 2 cụm phân đoạn có các giao dịch phân đoạn đang diễn ra, vì các bản sao lưu được tạo bằng không duy trì đảm bảo tính nguyên tử của các giao dịch trên các phân đoạn

cho 4. Hơn 2 cụm được phân đoạn với các giao dịch được phân đoạn đang diễn ra, hãy sử dụng một trong các quy trình sao lưu và khôi phục phối hợp sau để duy trì đảm bảo tính nguyên tử của các giao dịch trên các phân đoạn

  • Bản đồ MongoDB ,

  • Trình quản lý đám mây MongoDB hoặc

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

Cân nhắc hiệu suất

Bởi vì và hoạt động bằng cách tương tác với một phiên bản đang chạy, chúng có thể ảnh hưởng đến hiệu suất của cơ sở dữ liệu đang chạy của bạn. Các công cụ không chỉ tạo lưu lượng truy cập cho phiên bản cơ sở dữ liệu đang chạy mà còn buộc cơ sở dữ liệu đọc tất cả dữ liệu qua bộ nhớ. Khi MongoDB đọc dữ liệu không được sử dụng thường xuyên, nó có thể loại bỏ dữ liệu được truy cập thường xuyên hơn, gây ra sự suy giảm hiệu suất đối với khối lượng công việc thông thường của cơ sở dữ liệu

Khi sao lưu dữ liệu của bạn bằng các công cụ của MongoDB, hãy xem xét các nguyên tắc sau

  • Gắn nhãn tệp để bạn có thể xác định nội dung của bản sao lưu cũng như thời điểm mà bản sao lưu phản ánh

  • Sử dụng chiến lược sao lưu thay thế như Ảnh chụp nhanh hệ thống tệp hoặc Trình quản lý đám mây MongoDB nếu tác động hiệu suất của và không thể chấp nhận được đối với trường hợp sử dụng của bạn.

  • Sử dụng để nắm bắt các thao tác ghi đến trong thao tác {{out_tool}} để đảm bảo rằng các bản sao lưu phản ánh trạng thái dữ liệu nhất quán

  • Đảm bảo rằng các bản sao lưu của bạn có thể sử dụng được bằng cách khôi phục chúng về bản triển khai MongoDB thử nghiệm

Mẹo

Xem thêm

Phương pháp sao lưu MongoDB và Tài liệu sao lưu Trình quản lý đám mây MongoDB để biết thêm thông tin về cách sao lưu các phiên bản MongoDB. Ngoài ra, hãy xem xét tài liệu tham khảo sau cho Công cụ cơ sở dữ liệu MongoDB.

Kết xuất BSON nhị phân

Các tiện ích và hoạt động với các kết xuất dữ liệu BSON và rất hữu ích để tạo bản sao lưu của các triển khai nhỏ. Để sao lưu linh hoạt và không gây gián đoạn, hãy sử dụng hệ thống tệp hoặc chức năng chụp nhanh đĩa cấp khối, chẳng hạn như các phương pháp được mô tả trong tài liệu Phương pháp sao lưu MongoDB

Sử dụng các công cụ này để sao lưu nếu các phương pháp sao lưu khác, chẳng hạn như Trình quản lý đám mây MongoDB hoặc ảnh chụp nhanh hệ thống tệp không khả dụng.

thủ tục

Sao lưu cơ sở dữ liệu với mongodump --host=mongodb.example.net --port=270170

Ghi chú

và không thể là một phần của chiến lược dự phòng cho 4. Hơn 2 cụm phân đoạn có các giao dịch phân đoạn đang diễn ra, vì các bản sao lưu được tạo bằng không duy trì đảm bảo tính nguyên tử của các giao dịch trên các phân đoạn

cho 4. Hơn 2 cụm được phân đoạn với các giao dịch được phân đoạn đang diễn ra, hãy sử dụng một trong các quy trình sao lưu và khôi phục phối hợp sau để duy trì đảm bảo tính nguyên tử của các giao dịch trên các phân đoạn

  • Bản đồ MongoDB ,

  • Trình quản lý đám mây MongoDB hoặc

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

Loại trừ Cơ sở dữ liệu
mongodump --collection=myCollection --db=test
1

loại trừ nội dung của cơ sở dữ liệu

mongodump --collection=myCollection --db=test
1 trong đầu ra của nó

Quyền truy cập bắt buộc

Để chạy với triển khai MongoDB đã bật kiểm soát truy cập, bạn phải có đặc quyền cấp hành động cho từng cơ sở dữ liệu để sao lưu. Vai trò tích hợp cung cấp các đặc quyền cần thiết để thực hiện sao lưu bất kỳ và tất cả cơ sở dữ liệu

Vai trò cung cấp các đặc quyền bổ sung để sao lưu bộ sưu tập tồn tại khi chạy với

Hoạt động cơ bản của
mongodump --host=mongodb.example.net --port=27017
0

Tiện ích sao lưu dữ liệu bằng cách kết nối với một máy đang chạy

Tiện ích có thể tạo bản sao lưu cho toàn bộ máy chủ, cơ sở dữ liệu hoặc bộ sưu tập hoặc có thể sử dụng truy vấn để sao lưu chỉ một phần của bộ sưu tập

Khi bạn chạy mà không có bất kỳ đối số nào, lệnh sẽ kết nối với phiên bản MongoDB trên hệ thống cục bộ (e. g.

mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
3) trên cổng
mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
4 và tạo bản sao lưu cơ sở dữ liệu có tên
mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
5 trong thư mục hiện tại

Để sao lưu dữ liệu từ một phiên bản chạy trên cùng một máy và trên cổng mặc định của

mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
4, hãy sử dụng lệnh sau

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
1

Bạn cũng có thể chỉ định và của phiên bản MongoDB sẽ kết nối với. Ví dụ

mongodump --host=mongodb.example.net --port=27017

sẽ ghi các tệp chứa một bản sao dữ liệu có thể truy cập thông qua nghe trên cổng

mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
4 của máy chủ
FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
44. Xem để biết thêm thông tin

Để chỉ định một thư mục đầu ra khác, bạn có thể sử dụng tùy chọn

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
5

Để giới hạn lượng dữ liệu được bao gồm trong kết xuất cơ sở dữ liệu, bạn có thể chỉ định và làm tùy chọn để. Ví dụ

mongodump --collection=myCollection --db=test

Thao tác này tạo ra một kết xuất của bộ sưu tập có tên

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
70 từ cơ sở dữ liệu
FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
71 trong thư mục con
FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
72 của thư mục làm việc hiện tại

ghi đè lên các tệp đầu ra nếu chúng tồn tại trong thư mục dữ liệu sao lưu. Trước khi chạy lệnh nhiều lần, hãy đảm bảo rằng bạn không cần các tệp trong thư mục đầu ra nữa (mặc định là thư mục

mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
5) hoặc đổi tên các thư mục hoặc tệp

Tạo bản sao lưu bằng Oplog

Tùy chọn thu thập các mục nhập và cho phép bạn thực hiện sao lưu trên cơ sở dữ liệu trực tiếp. Nếu sau đó bạn khôi phục cơ sở dữ liệu từ bản sao lưu, cơ sở dữ liệu sẽ giống như khi quá trình sao lưu hoàn tất

Với , sao chép tất cả dữ liệu từ cơ sở dữ liệu nguồn cũng như tất cả các mục từ đầu đến cuối quy trình sao lưu. Thao tác này, kết hợp với , cho phép bạn khôi phục bản sao lưu phản ánh thời điểm cụ thể tương ứng với thời điểm hoàn thành việc tạo tệp kết xuất

Tạo bản sao lưu từ các phiên bản
mongodump --host=mongodb.example.net --port=27017
7 không cục bộ

Các tùy chọn và cho phép bạn kết nối và sao lưu từ máy chủ từ xa. Xem xét ví dụ sau

mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24

Trên bất kỳ lệnh nào bạn có thể, như trên, chỉ định thông tin đăng nhập tên người dùng và mật khẩu để chỉ định xác thực cơ sở dữ liệu

Khôi phục cơ sở dữ liệu với mongodump --host=mongodb.example.net --port=270171

Ghi chú

và không thể là một phần của chiến lược dự phòng cho 4. Hơn 2 cụm phân đoạn có các giao dịch phân đoạn đang diễn ra, vì các bản sao lưu được tạo bằng không duy trì đảm bảo tính nguyên tử của các giao dịch trên các phân đoạn

cho 4. Hơn 2 cụm được phân đoạn với các giao dịch được phân đoạn đang diễn ra, hãy sử dụng một trong các quy trình sao lưu và khôi phục phối hợp sau để duy trì đảm bảo tính nguyên tử của các giao dịch trên các phân đoạn

  • Bản đồ MongoDB ,

  • Trình quản lý đám mây MongoDB hoặc

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

Kiểm soát truy cập

Để khôi phục dữ liệu về triển khai MongoDB đã bật kiểm soát truy cập, vai trò này cung cấp các đặc quyền cần thiết để khôi phục dữ liệu từ bản sao lưu nếu dữ liệu không bao gồm dữ liệu thu thập và bạn chạy mà không có tùy chọn này

Nếu dữ liệu sao lưu bao gồm dữ liệu bộ sưu tập hoặc bạn chạy với , bạn cần có thêm đặc quyền

mongodump --collection=myCollection --db=test
8

Nếu dữ liệu sao lưu bao gồm dữ liệu bộ sưu tập và cơ sở dữ liệu đích không chứa bộ sưu tập, hãy thử tạo bộ sưu tập mặc dù chương trình không thực sự khôi phục tài liệu

mongodump --collection=myCollection --db=test
8. Như vậy, người dùng yêu cầu các đặc quyền bổ sung để thực hiện và hành động trên bộ sưu tập cho cơ sở dữ liệu

Cả vai trò tích hợp và cung cấp các đặc quyền bổ sung

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
64

Để chạy với , hãy tạo một cái có bật

Chỉ cấp cho người dùng phải chạy với

Hoạt động cơ bản của
mongodump --host=mongodb.example.net --port=27017
1

Tiện ích khôi phục bản sao lưu nhị phân được tạo bởi. Theo mặc định, tìm bản sao lưu cơ sở dữ liệu trong thư mục

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
72

Tiện ích khôi phục dữ liệu bằng cách kết nối trực tiếp với máy đang chạy

có thể khôi phục toàn bộ bản sao lưu cơ sở dữ liệu hoặc một tập hợp con của bản sao lưu

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 sẽ giữ lại UUID ban đầu của chúng. Khi khôi phục một bộ sưu tập không có UUID, MongoDB sẽ tạo UUID cho bộ sưu tập đã khôi phục.

Để biết thêm thông tin về bộ sưu tập UUID, hãy xem

Để sử dụng để kết nối với một active , hãy sử dụng một lệnh có dạng nguyên mẫu sau

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
4

Xem xét ví dụ sau

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
7

Tại đây, nhập bản sao lưu cơ sở dữ liệu trong thư mục

mongodump --host=mongodb.example.net --port=27017
14 vào phiên bản chạy trên giao diện localhost trên cổng mặc định
mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
4

Khôi phục điểm trong thời gian Sao lưu Oplog

Nếu bạn đã tạo kết xuất cơ sở dữ liệu của mình bằng tùy chọn để đảm bảo ảnh chụp nhanh tại thời điểm, hãy gọi bằng tùy chọn, như trong ví dụ sau

mongodump --host=mongodb.example.net --port=27017
3

Bạn cũng có thể cân nhắc sử dụng tùy chọn để kiểm tra tính toàn vẹn của các đối tượng trong khi chèn chúng vào cơ sở dữ liệu hoặc bạn có thể xem xét tùy chọn loại bỏ từng bộ sưu tập khỏi cơ sở dữ liệu trước khi khôi phục từ bản sao lưu

Khôi phục các bản sao lưu cho các trường hợp
mongodump --host=mongodb.example.net --port=27017
7 không cục bộ

Theo mặc định, kết nối với phiên bản MongoDB chạy trên giao diện máy chủ cục bộ và trên cổng mặc định (

mongodump --host=mongodb1.example.net --port=3017 --username=user --password="pass" --out=/opt/backup/mongodump-2013-10-24
4). Nếu bạn muốn khôi phục về máy chủ hoặc cổng khác, hãy sử dụng tùy chọn và

Ví dụ sau chỉ định các tùy chọn và

FILENAME=$(date +%s)mongodump --uri=$URI --archive="/home/ubuntu/mongoBackup/psdp-$FILENAME"echo "done => $FILENAME"
6

Nếu khôi phục phiên bản thực thi kiểm soát truy cập, hãy bao gồm cả và. Bỏ qua tùy chọn nhắc nhập mật khẩu