Estou usando o mongodump nas ferramentas do mongo para baixar um backup do meu servidor. No entanto, ao executar o comando, o comando retorna "Campo não reconhecido 'instantâneo'".
O erro completo é:
Failed: error reading collection: Failed to parse: { find: "data", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "xxx" }. Unrecognized field 'snapshot'.
Mongodump --version retorna:
mongodump version: built-without-version-string
git version: built-without-git-spec
Go version: go1.7.3
os: linux
arch: amd64
compiler: gc
OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
Talvez eu precise fazer o downgrade da minha versão? Caso contrário, não tenho certeza de onde ir a partir daqui ...
mongodump --version
saída sugere que você construiu as ferramentas a partir do código-fonte, portanto não é óbvio a que versão do MongoDB pode corresponder. Sempre que possível, sugiro baixar os binários oficiais.Respostas:
Você certamente tem uma diferença de versão entre o mongodump e o servidor mongoDB (3.6 vs 4.0).
Você pode usar a janela de encaixe para o resgate:
Com o docker, você pode usar uma versão precisa do tools cli sem instalá-lo.
Você pode até especificar um alias (em .bashrc):
Nota: A pasta em que o dump é salvo precisará ter permissões de gravação para que o usuário do mongodb no contêiner possa gravar no volume montado. Isso pode ser conseguido definindo manualmente as permissões na pasta de despejo antes de executar o comando acima.
No exemplo acima, que seria:
mkdir -m 777 dump
. Após a conclusão do despejo, as permissões podem ser modificadas de volta ao normal (ou seja,sudo chmod 755 dump
).fonte
Failed: error dumping metadata: error creating directory for metadata file dump/{COLLECTION}: mkdir dump: permission denied
. Eu tentei com-u 0
e-o /tmp/dump
, mas não consegui fazê-lo funcionar. Finalmente acabei iniciando um contêiner, executando o despejo e copiando-o para fora do contêiner. Alguma idéia de onde eu errei com o one-liner?docker run --rm -v $(pwd):/workdir/ -w /workdir/ -u $(id -u) mongo:4.0 mongodump ...
Adicionar
--forceTableScan
Exemplo:
http://aug2uag.blogspot.com/2018/08/mongoexport-unrecognized-field-snapshot.html
fonte