Đã có rất nhiều công cụ được xây dựng để làm cho quá trình duy trì cơ sở dữ liệu dễ dàng hơn
Sử dụng các công cụ và lệnh mạnh mẽ này, các thao tác phức tạp phải thực hiện lặp đi lặp lại sẽ được thực hiện nhanh chóng và rõ ràng
Một lệnh duy nhất có thể sao lưu hoặc khôi phục toàn bộ cơ sở dữ liệu hoặc các phần được chỉ định của nó
Khi làm việc với cơ sở dữ liệu MongoDB [bộ sưu tập], bạn có thể sử dụng mongodump để thực hiện việc này
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn mongodump và mongorestore là gì, cách sử dụng chúng và cung cấp một số ví dụ rõ ràng để bạn có thể sử dụng cả hai công cụ để sao lưu và khôi phục bộ sưu tập của mình một cách dễ dàng
[email protected]:27107/redbase?ssl=false&authSource=admin"3 và các tùy chọn cờ hoặc chuỗi được định dạng chính xác như
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
4, mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
5 và mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
6. Người dùng không được phép kết hợp cả hai thành một lệnhCách sử dụng mongodump để sao lưu bộ sưu tập
Trong khi sử dụng máy chủ cục bộ, mongodump có thể kết xuất bộ sưu tập có tên là
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
7 bằng lệnh sau trong khi sử dụng định dạng URI và thông tin người dùng sau- Tên cơ sở dữ liệu.
7mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
- tên tài khoản.
9mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
- Mật khẩu.
0mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
Một lệnh mongodump ví dụ khác sử dụng cờ tiêu chuẩn sẽ như thế này
________số 8
Cũng có thể chạy sao lưu cơ sở dữ liệu vào tệp lưu trữ. Điều này trái ngược với việc đổ các tệp vào một thư mục. Các tùy chọn này dùng để truyền dữ liệu giữa các máy chủ hoặc chuyển đổi máy chủ
Cờ --archive cho phép chỉ định tên của kho lưu trữ. Tùy chọn tạo một tệp có thể được sử dụng để nhập lại cơ sở dữ liệu với mongorestore
Nếu tên của cơ sở dữ liệu giống với cơ sở dữ liệu cần kết xuất, hãy sử dụng cờ
mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
1 với đúng tên hoặc nếu bạn đang sử dụng URI, hãy đảm bảo rằng phần mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
2 của chuỗi trỏ đến đúng cơ sở dữ liệuQuy trình mongodump tiêu chuẩn liên quan đến việc kết xuất toàn bộ cơ sở dữ liệu vào một giám đốc
mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
3 duy nhất được đặt tên là mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
3 theo mặc địnhThư mục làm việc này sẽ được đặt trong thư mục làm việc mà bạn đã chạy lệnh trong. Thư mục có một thư mục con được đặt tên theo cơ sở dữ liệu
Trong ví dụ trước, đây sẽ là
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
7 nên cấu trúc mới trông giống như mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
6Hai tệp khác nhau cho bộ sưu tập trong cơ sở dữ liệu sẽ nằm trong thư mục cụ thể. Điều này bao gồm tệp BSON và tệp JSON
Theo cùng một mẫu, tệp
mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
7 sẽ chứa siêu dữ liệu như mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
8, mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
9 và mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
00 để tương ứng với không gian tên cho bộ sưu tậpTệp BSON chứa
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
01 sẽ chứa dữ liệu trong bộ sưu tập. Trong mongodump, người dùng có thể thay đổi hành vi cụ thể của đầu raThư mục
mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
3 có thể sử dụng các cờ như mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
03 chỉ định tên của thư mục nơi bạn muốn kết xuất cơ sở dữ liệu. Chẳng hạn, tên của thư mục kết xuất có thể là mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
04 thay vì kết xuất. Lệnh sẽ trông như thế nàymongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
0Theo mặc định, tất cả các bộ sưu tập được đổ vào thư mục đầu ra. Tên của thư mục sẽ được bao gồm trong cơ sở dữ liệu. Người dùng có thể kiểm soát thêm tiện ích bằng cách chỉ sao lưu một bộ sưu tập tại một thời điểm. Sử dụng cờ
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
05 cho phép người dùng cho biết bộ sưu tập nào cần được kết xuấtNếu bộ sưu tập duy nhất có tên là
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
06 phải được kết xuất, thì một lệnh mongodump mẫu sẽ giống nhưmongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
8Cấu trúc thư mục sau cũng sẽ được tạo bằng lệnh
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
9Sử dụng lệnh đó, có thể sao lưu một bộ sưu tập tại một thời điểm, bao nhiêu lần tùy ý người dùng. Các lệnh này sẽ không ghi đè lên bất kỳ nội dung nào cho thư mục đầu ra
Việc thêm bộ sưu tập
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
07 vào thư mục kết xuất sẽ giống nhưmongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
1Lệnh đó sẽ tạo ra thư mục
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
08 với các tệp mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
09 và mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
80 được thêm vào, tạo thành một cấu trúc giống như saumongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
5Sử dụng mongodump để kết xuất tất cả cơ sở dữ liệu
Cũng có thể chạy bản sao lưu và có tất cả các tệp trong kho lưu trữ. Điều này trái ngược với việc đổ mọi thứ vào một thư mục kết xuất
Khi truyền tệp giữa các máy chủ hoặc gửi tệp sao lưu giữa các máy chủ là khi tùy chọn này hoạt động tốt nhất
Nó sử dụng cờ
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
81 để người dùng có thể chỉ định tên của tệp lưu trữ. Tùy chọn này tạo một tệp duy nhất có thể được sử dụng để nhập lại cơ sở dữ liệu với mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
82Người dùng không được phép sử dụng song song cả hai cờ
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
81 và mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
03 vì điều nàyVí dụ lệnh mongodump dưới đây, sẽ kết xuất tất cả cơ sở dữ liệu [bộ sưu tập]
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
0Một ví dụ về mongorestore và cách khôi phục cơ sở dữ liệu mongo
Ngược lại với tiện ích mongodump là mongorestore, cho phép người dùng khôi phục cơ sở dữ liệu
Chương trình tải dữ liệu từ tiện ích mongodump hoặc bất kỳ kết xuất cơ sở dữ liệu nhị phân nào
Chương trình khác với mongoimport ở chỗ mongorestore chỉ chèn dữ liệu. Chương trình không thể ghi đè lên các tài liệu trong cơ sở dữ liệu đã tồn tại. Điều này bao gồm các bản cập nhật
Nếu id của tài liệu đã tồn tại thì tài liệu sẽ không bị ghi đè. Nếu không, mongorestore có thể tạo cơ sở dữ liệu mới hoặc thêm dữ liệu vào cơ sở dữ liệu hiện có
Khi thực thi mongorestore yêu cầu duy nhất là phải có đường dẫn đến thư mục dump, có thể sử dụng ví dụ mongorestore sau
Nếu localhost được sử dụng làm máy chủ và tên của cơ sở dữ liệu được tạo có cùng tên của các thư mục con trong thư mục
mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
3. Lệnh chỉ phức tạp hơn một chút khi sử dụng máy chủ từ xaNgười dùng sẽ phải chỉ định cờ
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
3 hoặc bao gồm tất cả các cờ kết nối tiêu chuẩn nhưmongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
3Chương trình cũng không yêu cầu khôi phục toàn bộ cơ sở dữ liệu. Chỉ có thể khôi phục một bộ sưu tập cụ thể hoặc danh sách các bộ sưu tập. Người dùng có tùy chọn chỉ định cờ
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
87, cờ mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
5 và bao gồm đường dẫn đến tệp BSON. Trong trường hợp này, mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
87 có nghĩa là tên của bộ sưu tập trong cơ sở dữ liệumongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
0Tuy nhiên, trong khi lệnh này hoạt động, nó không lý tưởng. Phương pháp ưa thích để khôi phục các bộ sưu tập khác nhau là sử dụng tùy chọn
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
90Tùy chọn này cho phép người dùng chọn một mẫu không gian tên để khôi phục các bộ sưu tập cho cơ sở dữ liệu mongo
Ở đây, nếu thư mục
mongodump --user=uberuser --db=redbase --password=passherd --authenticationDatabase=admin
3 kết xuất cơ sở dữ liệu có tên là mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
92 và mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
93, thì cấu trúc thư mục cuối cùng sẽ như thế nàymongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
1Bằng cách sử dụng -nsInclude, cơ sở dữ liệu
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
92 có thể được cách ly và nhập để khôi phục trong môi trường cục bộ. Lệnh sẽ giống nhưmongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
2Ghi chú. Lệnh trên sẽ khôi phục tất cả các bộ sưu tập có trong
mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
92 đã được kết xuất khỏi cơ sở dữ liệu có tên là mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
7. Tuy nhiên, lệnh sẽ không khôi phục bất kỳ thứ gì được tìm thấy trong mongodump --uri="mongodb://uberuser:[email protected]:27107/redbase?ssl=false&authSource=admin"
93, mặc dù dữ liệu được lưu trữ trong cùng một thư mục kết xuấtPhần kết luận
Mongodump là một công cụ hữu ích giúp bạn sao lưu các bộ sưu tập với các lệnh tối thiểu. Một lệnh cho phép đưa toàn bộ bộ sưu tập vào một tệp duy nhất
Công cụ này đủ linh hoạt để sao lưu các phần cơ sở dữ liệu cần thiết và đi kèm với nhiều tùy chọn để thay đổi dữ liệu bạn cần lưu
Sao lưu MongoDB tự động bằng SimpleBackups
sao lưu đơn giản. com là công cụ tự động sao lưu ảnh chụp nhanh cơ sở dữ liệu, trang web và máy chủ tất cả trong một
Nó tự động sao lưu MongoDB bằng cách sử dụng mongodump để kết xuất an toàn các bộ sưu tập MongoDB của bạn và gửi chúng từ bên ngoài lên đám mây để lưu trữ
Khi bạn cần đảm bảo các bản sao lưu MongoDB của mình được an toàn, bạn có thể tin tưởng SimpleBackups sẽ xử lý nó cho bạn
SimpleBackups sẽ giúp bạn tiết kiệm rất nhiều thời gian thiết lập tập lệnh và đảm bảo chúng chạy mà không gặp sự cố. Nó sẽ cảnh báo bạn khi có sự cố xảy ra và cho phép bạn lưu trữ các bản sao lưu của mình trên nhiều dịch vụ lưu trữ đám mây như Google, DigitalOcean, Wasabi, Dropbox, v.v.