Jika Anda telah mencadangkan database menggunakan mongodump
utilitas, Anda dapat memulihkannya menggunakan mongorestore
utilitas.
mongorestore
utilitas memuat data dari dump basis data biner yang dibuat oleh mongodump
atau input standar ke dalam mongod
atau mongos
contoh.
Periksa Alat Basis Data MongoDB
mongorestore
utilitas adalah bagian dari paket Alat Database MongoDB. Alat Database MongoDB adalah rangkaian utilitas baris perintah untuk bekerja dengan MongoDB.
Jika Anda tidak yakin apakah Anda memiliki MongoDB Database Tools/mongorestore
diinstal. Coba jalankan perintah berikut di Terminal atau Command Prompt Anda untuk memeriksa:
mongorestore --version
Jika Anda tidak memilikinya, Anda dapat menggunakan petunjuk penginstalan di situs web MongoDB untuk menginstalnya ke sistem Anda.
Di mana Menjalankan Perintah?
Anda perlu menjalankan mongorestore
perintah dari baris perintah sistem Anda (mis. Terminal baru atau jendela Prompt Perintah).
Jangan jalankan dari mongo
kerang.
Pulihkan Semua Basis Data dari Direktori
Perintah berikut mengembalikan semua database yang telah dicadangkan ke dump/
direktori:
mongorestore dump/
Contoh ini mengembalikan database ke instance lokal yang berjalan pada port default 27017. Kami mengetahui hal ini, karena kami tidak menyediakan host, port, informasi autentikasi, dll.
Memulihkan Basis Data Tertentu
Anda dapat menggunakan --nsInclude
parameter untuk menentukan database yang akan dipulihkan.
Contoh:
mongorestore --nsInclude="PetHotel.*" dump/
Dalam hal ini, kami memulihkan PetHotel
basis data. Kami memulihkan semua koleksi, karena kami menggunakan wildcard asterisk (*
) untuk menentukan semua koleksi.
Pulihkan Koleksi Tertentu
Anda juga dapat menggunakan --nsInclude
parameter untuk menentukan koleksi yang akan dipulihkan.
Contoh:
mongorestore --nsInclude="PetHotel.pets" dump/
Contoh ini mengembalikan koleksi hewan peliharaan dari PetHotel
basis data. Jika database tidak ada, itu dibuat dengan satu koleksi (pets
).
Contoh ini hampir identik dengan contoh sebelumnya, kecuali bahwa alih-alih menggunakan wildcard asterisk (*
) untuk menentukan semua koleksi, kami secara eksplisit menentukan koleksi yang ingin kami pulihkan.
Ganti Nama Koleksi
Anda dapat menggunakan --nsFrom
dan --nsTo
parameter untuk menentukan nama baru untuk koleksi.
Contoh:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/
Ini mengganti nama pets
koleksi ke pets2
.
Perhatikan bahwa kode di atas juga memulihkan semua database dan koleksi lain di dump/
direktori. Satu-satunya perbedaan adalah pets
koleksi dipulihkan sebagai pets2
.
Jika Anda hanya ingin memulihkan satu koleksi (dan mengganti namanya dalam proses), gunakan --nsInclude
parameter.
Contoh:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/
Ganti Nama Basis Data
Anda dapat menggunakan konsep yang sama untuk mengganti nama database. Cukup gunakan --nsFrom
dan --nsTo
parameter untuk menentukan nama baru untuk database.
Contoh:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/
Dalam hal ini saya mengganti nama PetHotel
database ke PetHouse
.
Perhatikan bahwa --nsInclude
parameter menentukan baru nama basis data. Juga, saya menggunakan wildcard asterisk (*
) untuk memulihkan semua koleksi dalam database tersebut.
Tidak termasuk Koleksi
Anda dapat menggunakan --nsExclude
parameter untuk menentukan koleksi untuk dikecualikan dari proses pemulihan.
Contoh:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/
Contoh tersebut mengembalikan semua koleksi di PetHotel
database kecuali untuk dogs
koleksi.
Anda dapat menggunakan --nsExclude
beberapa kali untuk mengecualikan beberapa koleksi dari proses pemulihan.
Contoh:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/
Kontrol Akses/Otentikasi
Contoh sebelumnya dilakukan pada mesin lokal menggunakan port default. Ini berarti bahwa kami dapat menjalankan mongodump
tanpa menentukan hal-hal seperti --host
, --port
, --username
, dll.
Berikut adalah contoh yang menggunakan parameter tersebut untuk mengautentikasi sebagai homer
:
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30
Kita juga bisa menggunakan --password
parameter, tetapi kami tidak melakukannya. Jika Anda melewati --user
tapi bukan --password
, Anda akan dimintai sandi.
Pulihkan dari File Terkompresi
Anda dapat menggunakan --gzip
parameter untuk memulihkan dari file terkompresi atau aliran data yang dibuat oleh mongodump --gzip
.
Contoh:
mongorestore --gzip --nsInclude="krankykranes.*" dump3/
Mode Diam
Anda dapat menggunakan --quiet
parameter untuk membatasi output di jendela Terminal atau Command Prompt Anda.
mongorestore --quiet
Tanpa menggunakan ini, Anda mungkin akan melihat daftar besar tampilan, koleksi, dll yang dipulihkan.
Mode Verbose
Di sisi lain, Anda dapat menggunakan --verbose
atau -v
parameter untuk meningkatkan output di jendela Terminal atau Command Prompt Anda.
mongorestore --verbose
Anda dapat meningkatkan verbositas dengan mengulangi -v
bentuk beberapa kali.
Contoh:
mongorestore -vvvv
Informasi Lebih Lanjut tentang mongodump
mongorestore
utilitas menerima banyak parameter berguna lainnya, dan ada juga berbagai faktor yang perlu dipertimbangkan saat menggunakannya sebagai bagian dari strategi pencadangan dan pemulihan.
Lihat mongorestore
dokumentasi di situs web MongoDB untuk info lebih lanjut.
Opsi Lain
mongodump
dan mongorestore
adalah alat yang sederhana dan efisien untuk mencadangkan dan memulihkan penerapan MongoDB kecil, tetapi tidak ideal untuk merekam cadangan sistem yang lebih besar.
Lihat Metode Pencadangan MongoDB di situs web MongoDB untuk metode lain dalam mencadangkan dan memulihkan basis data MongoDB Anda.