Anda memiliki korupsi datafile dari disk yang tidak bersih selama shutdown. Bahkan jika Anda memulihkan database, Anda masih dapat menghadapi masalah karena inkonsistensi kunci dalam database. Berikut ini adalah prosedur untuk mengatasi masalah ini dengan benar
Memulihkan MongoDB dari kegagalan mendadak
-
Jika file database ada di host Anda, buat salinannya sebelum memulai prosedur ini. Untuk menyalinnya, Anda dapat menggunakan
docker cp <container_name>:<location of files in container> <location on host>
Jika file database masih berada di dalam container, ambil bagian luar container, dan buat salinannya
-
Mulai wadah perbaikan di atas file sebagai berikut:
docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repair
Nama gambar tergantung pada platform, dan untuk Raspberry PI3 namanya adalah
andresvidal/rpi3-mongodb3
, untuk arm64v8 atau untuk amd64 wadahnya adalahmongo
Pastikan Anda memiliki versi gambar MongoDB yang sama dengan yang digunakan untuk membuat file data.
Jika file tidak dapat diperbaiki, coba:
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
-
Setelah file diperbaiki, Anda perlu memulai penampung di atas database dan mengekspor file dengan
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
-
Mulai database bersih untuk proyek Anda dan gunakan
mongorestore
untuk mengimpor data dalam database baru.
Anda dapat memeriksa tautan berikut untuk informasi lebih lanjut: