이제 로컬 Mongo 데이터(50GB)를 Alibaba Cloud(메모리 1G)로 마이그레이션하고 싶습니다. 로컬 버전은 v2.4.9이고 서버는 v3.2.11
근데 mongodump를 이용해서 데이터를 내보낸 뒤 Alibaba Cloud로 옮긴 뒤 mongorestore를 이용해서 복원을 하면 1.8%정도로 복원이 되면 오류가 발생합니다. 메모리 부족으로 인해 발생할 수 있습니다.
오류 메시지Failed: sof.test: error restoring from /root/sof/test.bson.gz: insertion error: EOF
mongoexport/mongoimport 명령을 동시에 테스트했는데 동일한 오류가 발생했습니다.
다시 테스트했습니다. mongo v3.2를 다른 컴퓨터에 로컬로 설치하고 로컬 v2.4.9 시스템에서 데이터를 내보낸 다음 Alibaba Cloud 서버(mongo v3.2.11)로 전송했는데 동일한 오류가 발생했습니다. mongorestore에서 발생했습니다.
그럼 v2와 v3 사이의 문제일 수도 있고, v3 자체의 문제일 수도 있다는 건가요? 그러나 후자는 그럴 것 같지 않습니다.
어떻게 해결하나요?
방금 시도했는데 2.6.6에서 덤프했다가 2.6.10과 3.2.11에서 성공적으로 복원했습니다. 버전 문제가 아니어야 하며 버전은 모두 이전 버전과 호환됩니다.
아마도 데이터 문제일까요?
그렇게 큰 데이터가 없어서 테스트하기가 어렵네요. 더 작은 시계로 바꿔보세요.
문서를 주의 깊게 읽으십시오. 버전 간 업그레이드는 명시적으로 금지되어 있습니다. 올바른 접근 방식은 버전별로 업그레이드하는 것입니다. 두 가지 옵션:
로컬에서 버전별로 3.2 버전으로 업그레이드한 후 원격으로 내보내기
상황은 다음과 같아야 합니다. 2.4.9 -> 2.6.x -> 3.0.x -> 3.2.11
마지막으로 3.2.11에서 내보낸 데이터를 mongorestore로 가져옵니다.
2.4.9를 원격으로 설치하고 3.2.11로 업그레이드
과정 역시 위와 같은 과정을 따릅니다.
최종적으로 올바른 결과를 얻으려면 각 버전의 업그레이드를 해당 버전의 업그레이드 노트에 따라 수행해야 합니다.