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

Khôi phục Cơ sở dữ liệu MongoDB bằng mongorestore

Nếu bạn đã sao lưu cơ sở dữ liệu bằng mongodump , bạn có thể khôi phục nó bằng cách sử dụng mongorestore tiện ích.

mongorestore tiện ích 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 thành mongod hoặc mongos ví dụ.

Kiểm tra Công cụ Cơ sở dữ liệu MongoDB

mongorestore tiện ích là một phần của gói Công cụ cơ sở dữ liệu MongoDB. Công cụ cơ sở dữ liệu MongoDB là một bộ tiện ích dòng lệnh để làm việc với MongoDB.

Nếu bạn không chắc mình có Công cụ cơ sở dữ liệu MongoDB / mongorestore hay không Cài đặt. Hãy thử chạy lệnh sau trong Terminal hoặc Command Prompt của bạn để kiểm tra:

mongorestore --version

Nếu chưa có, bạn có thể sử dụng hướng dẫn cài đặt trên trang web MongoDB để cài đặt vào hệ thống của mình.

Chạy lệnh ở đâu?

Bạn cần chạy mongorestore lệnh từ dòng lệnh của hệ thống của bạn (ví dụ:cửa sổ Terminal hoặc Command Prompt mới).

Đừng chạy chúng từ mongo vỏ bọc.

Khôi phục tất cả cơ sở dữ liệu từ một thư mục

Lệnh sau khôi phục tất cả cơ sở dữ liệu đã được sao lưu vào dump/ thư mục:

mongorestore dump/

Ví dụ này khôi phục cơ sở dữ liệu về phiên bản cục bộ đang chạy trên cổng mặc định 27017. Chúng tôi biết điều này vì chúng tôi không cung cấp bất kỳ máy chủ, cổng, thông tin xác thực nào, v.v.

Khôi phục một cơ sở dữ liệu cụ thể

Bạn có thể sử dụng --nsInclude để chỉ định một cơ sở dữ liệu để khôi phục.

Ví dụ:

mongorestore --nsInclude="PetHotel.*" dump/

Trong trường hợp này, chúng tôi đã khôi phục PetHotel cơ sở dữ liệu. Chúng tôi đã khôi phục tất cả các bộ sưu tập vì chúng tôi đã sử dụng ký tự đại diện dấu hoa thị (* ) để chỉ định tất cả các bộ sưu tập.

Khôi phục một bộ sưu tập cụ thể

Bạn cũng có thể sử dụng --nsInclude để chỉ định một bộ sưu tập để khôi phục.

Ví dụ:

mongorestore --nsInclude="PetHotel.pets" dump/

Ví dụ này khôi phục bộ sưu tập thú cưng từ PetHotel cơ sở dữ liệu. Nếu cơ sở dữ liệu không tồn tại, nó sẽ được tạo bằng một bộ sưu tập duy nhất (pets ).

Ví dụ này gần giống với ví dụ trước, ngoại trừ việc thay vì sử dụng ký tự đại diện dấu hoa thị (* ) để chỉ định tất cả các bộ sưu tập, chúng tôi đã chỉ định rõ ràng bộ sưu tập mà chúng tôi muốn khôi phục.

Đổi tên bộ sưu tập

Bạn có thể sử dụng --nsFrom--nsTo tham số để chỉ định tên mới cho bộ sưu tập.

Ví dụ:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/

Điều này đổi tên pets bộ sưu tập vào pets2 .

Lưu ý rằng đoạn mã trên cũng khôi phục tất cả các cơ sở dữ liệu và bộ sưu tập khác trong dump/ danh mục. Sự khác biệt duy nhất là pets bộ sưu tập được khôi phục dưới dạng pets2 .

Nếu bạn chỉ muốn khôi phục một bộ sưu tập duy nhất (và đổi tên nó trong quá trình này), thì hãy sử dụng --nsInclude tham số.

Ví dụ:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/

Đổi tên cơ sở dữ liệu

Bạn có thể sử dụng khái niệm tương tự để đổi tên cơ sở dữ liệu. Chỉ cần sử dụng --nsFrom--nsTo tham số để chỉ định tên mới cho cơ sở dữ liệu.

Ví dụ:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/

Trong trường hợp này, tôi đã đổi tên PetHotel cơ sở dữ liệu tới PetHouse .

Lưu ý rằng --nsInclude tham số chỉ định mới tên cơ sở dữ liệu. Ngoài ra, tôi sử dụng ký tự đại diện dấu hoa thị (* ) để khôi phục tất cả các bộ sưu tập trong cơ sở dữ liệu đó.

Loại trừ Bộ sưu tập

Bạn có thể sử dụng --nsExclude tham số để chỉ định một bộ sưu tập để loại trừ từ quá trình khôi phục.

Ví dụ:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/

Ví dụ đó khôi phục tất cả các bộ sưu tập trong PetHotel cơ sở dữ liệu ngoại trừ dogs bộ sưu tập.

Bạn có thể sử dụng --nsExclude nhiều lần để loại trừ nhiều bộ sưu tập khỏi quá trình khôi phục.

Ví dụ:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/

Kiểm soát truy cập / Xác thực

Các ví dụ trước được thực hiện trên máy cục bộ bằng cách sử dụng cổng mặc định. Điều này có nghĩa là chúng tôi có thể chạy mongodump mà không chỉ định những thứ như --host , --port , --username , v.v.

Dưới đây là một ví dụ sử dụng các tham số đó để xác thực là homer :

mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30

Chúng tôi cũng có thể đã sử dụng --password nhưng chúng tôi đã không làm như vậy. Nếu bạn vượt qua --user nhưng không phải --password , bạn sẽ được nhắc nhập mật khẩu.

Khôi phục từ tệp nén

Bạn có thể sử dụng --gzip tham số để khôi phục từ các tệp nén hoặc luồng dữ liệu được tạo bởi mongodump --gzip .

Ví dụ:

mongorestore --gzip  --nsInclude="krankykranes.*" dump3/

Chế độ yên lặng

Bạn có thể sử dụng --quiet để giới hạn đầu ra trong cửa sổ Terminal hoặc Command Prompt của bạn.

mongorestore --quiet

Nếu không sử dụng điều này, bạn có thể sẽ thấy một danh sách lớn các chế độ xem, bộ sưu tập, v.v. được khôi phục.

Chế độ chi tiết

Mặt khác, bạn có thể sử dụng --verbose hoặc -v tham số để tăng đầu ra trong cửa sổ Terminal hoặc Command Prompt của bạn.

mongorestore --verbose

Bạn có thể tăng độ chi tiết bằng cách lặp lại -v tạo nhiều lần.

Ví dụ:

mongorestore -vvvv

Thông tin thêm về mongodump

mongorestore tiện ích chấp nhận nhiều tham số hữu ích khác và cũng có nhiều yếu tố khác nhau cần xem xét khi sử dụng nó như một phần của chiến lược sao lưu và phục hồi.

Xem mongorestore tài liệu trên trang web MongoDB để biết thêm thông tin.

Các tùy chọn khác

mongodumpmongorestore là các công cụ đơn giản và hiệu quả để sao lưu và khôi phục các triển khai MongoDB nhỏ, nhưng không phải là công cụ lý tưởng để sao lưu các hệ thống lớn hơn.

Xem Phương pháp sao lưu MongoDB trên trang web MongoDB để biết các phương pháp khác để sao lưu và khôi phục cơ sở dữ liệu MongoDB của bạn.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ mili giây

  2. MongoDB trên AWS:Làm thế nào để Chọn Loại Phiên bản EC2 Phù hợp cho Máy chủ MongoDB của bạn?

  3. MongoDB $ ln

  4. Kiểm tra xem mọi phần tử trong mảng có khớp với điều kiện không

  5. Mongodb thiết lập trường duy nhất