Недавно я попытался сделать резервную копию моей текущей базы данных, используя mongodump --archive
. Поскольку MongoDB был развернут как контейнер docker и использовалась команда резервного копирования docker exec -it
, выгруженный архив содержит разные символы, и, к сожалению, его невозможно восстановить с помощью mongorestore
. Вы можете проверить команду резервного копирования по следующей ссылке:
docker exec -it <CONTAINER> sh -c 'mongodump -d db --archive' > db.dump
Поскольку база данных сейчас недоступна, мне нужно восстановить поврежденный архив. С первой попытки я попытался вручную удалить лишние очевидные символы, но этого оказалось недостаточно. Затем я решил использовать Python для анализа архива, но я не смог ни сериализовать его как bson
, ни декодировать байты.
Вот это часть архива, которая Python читает двоичный файл:
...\x85\x01\x00\x00\x02db\x00\x08\x00\x00\x00example\x00\x02collection\x00\x14\x00\x00\x00...
Что вы предлагаете по этой проблеме? Вы знаете, что такое кодировка вывода mongodump --archive
? Любой ответ будет оценен ...