Mongodbdump 도중 오류 해결 ~ Failed: error writing data for collection `디비명.컬렉션명` to disk: error reading collection: Failed to parse: { find: “컬렉션명”, skip: 0, snapshot: true, $readPreference: { mode: “secondaryPreferred” }, $db: “디비명” }. Unrecognized field ‘snapshot’.

몽고디비에서 DB를 복사하기 위해 mongodump 를 하는데 아래와 같은 오류가 뜨네요.

2019-09-26T11:31:55.686+0900	Failed: error writing data for collection `디비명.컬렉션명` to disk: error reading collection: Failed to parse: { find: "컬렉션명", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "디비명" }. Unrecognized field 'snapshot'.

갑지기 맨붕이 오네요. 덤프에서 오류가 뜨다니..

구글링해보니 Mongodb 서버(4.2)보다 CLI 클라이언트 버전(3.6)이 낮아서 생기는 문제로 확인되었습니다.

결국 아래와 같이 강제로 덤프를 떴습니다.

# mongodump --db=디비명 --forceTableScan

다행히 이후 복구할때는 문제가 없었습니다.

몽고디비 4.2 에서 db.copyDatabase() 가 폐기되어서 이제는 db 복사를 하려면 mongodump / mongorestore 를 사용하는 수밖에 없네요.

참고 URL : https://dba.stackexchange.com/questions/215534/mongodump-unrecognized-field-snapshot