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

Sao chép / sao chép cơ sở dữ liệu trong MongoDB

Trong các phiên bản trước của MongoDB, bạn có thể sử dụng copyDB lệnh hoặc phương thức trợ giúp của nó, db.copyDatabase() để sao chép cơ sở dữ liệu.

MongoDB kể từ đó đã không dùng chúng nữa. Ngoài ra, bắt đầu từ phiên bản 4.2, MongoDB đã xóa copydb và do đó cũng là lệnh db.copyDatabase() , có nghĩa là bạn không thể sử dụng chúng ngay cả khi bạn muốn nếu bạn đang sử dụng MongoDB 4.2 trở lên.

May mắn thay, có một cách khác để sao chép cơ sở dữ liệu MongoDB.

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

Trong MongoDB, bạn có thể sao chép cơ sở dữ liệu bằng Công cụ cơ sở dữ liệu MongoDB. Cụ thể, bạn có thể sử dụng mongodumpmongorestore .

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ài đặt Công cụ cơ sở dữ liệu MongoDB hay chưa, hãy thử chạy các lệnh sau trong Terminal hoặc Command Prompt để kiểm tra:

mongodump --version
mongorestore --version

Điều đó đặc biệt kiểm tra mongodumpmongorestore các phiên bản.

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 Công cụ cơ sở dữ liệu MongoDB vào hệ thống của mình.

Ví dụ về sao chép cơ sở dữ liệu

Bạn cần chạy mongodumpmongorestore 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 nó từ mongo vỏ bọc.

Dưới đây là một ví dụ về mã sao chép cơ sở dữ liệu:

mongodump --archive --db=PetHotel | mongorestore --archive  --nsFrom='PetHotel.*' --nsTo='PetHouse.*'

Trong trường hợp này, chúng tôi sao lưu PetHotel cơ sở dữ liệu, sau đó khôi phục tất cả các bộ sưu tập của nó vào cơ sở dữ liệu có tên là PetHouse . Nói cách khác, chúng tôi đã nhân bản PetHotel cơ sở dữ liệu dưới dạng PetHouse .

Điều này sử dụng mongodump để tạo tệp sao lưu của cơ sở dữ liệu, sau đó mongorestore để khôi phục cơ sở dữ liệu đó dưới một tên khác. Chúng tôi đã thực hiện việc này bằng cách kết xuất cơ sở dữ liệu xuống luồng đầu ra tiêu chuẩn và chuyển vào mongorestore .

Đây là chức năng của mỗi thông số:

Tham số Mô tả
--archive Ghi kết quả đầu ra vào một tệp lưu trữ được chỉ định hoặc, nếu tệp lưu trữ không được chỉ định, ghi vào đầu ra chuẩn (stdout ). Trong trường hợp của chúng tôi, tệp lưu trữ là không xác định, vì vậy nó được ghi vào đầu ra chuẩn.
--db Chỉ định một cơ sở dữ liệu để sao lưu. Trong trường hợp này, chúng tôi sao lưu PetHotel cơ sở dữ liệu.
--nsFrom Chỉ định bộ sưu tập trong tệp kết xuất. Ký tự đại diện dấu hoa thị (* ) chỉ định tất cả các bộ sưu tập.
--nsTo Chỉ định tên bộ sưu tập sẽ được sử dụng trong cơ sở dữ liệu được khôi phục.

Bạn cũng có thể sử dụng mongodump để kết xuất tất cả cơ sở dữ liệu. Để làm điều đó, chỉ cần chạy mongodump mà không có bất kỳ đối số. Tuy nhiên, khi bạn làm điều đó, nó không bao gồm localconfig cơ sở dữ liệu trong kết xuất của nó.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhập dữ liệu CSV dưới dạng một mảng trong MongoDB bằng cách sử dụng mongoimport

  2. Các phương pháp hay nhất để sao lưu cơ sở dữ liệu

  3. Tại sao mongoDB sử dụng objectID?

  4. Bộ bản sao MongoDB với xác thực mật khẩu đơn giản

  5. Mẹo quản lý MongoDB từ xa