본문 바로가기
데이터 베이스/MongoDB

[MongoDB] Version Upgrade 방법

by 우주다람쥐 2021. 4. 14.
반응형

MongoDB를 upgrade를 할 때는 단계적으로 진행해야한다.

현재 버젼을 체크해서 업그레이드할 수 있는 최대치의 버전을 찾고 업데이트한 뒤 다시 해야한다.

해당 내용과 관련된 건 아래의 링크에서 자세히 확인할 수 있다.

https://docs.mongodb.com/manual/release-notes/

 

... 3.2 → 3.4 → 3.6 → 4.0 4.2 → 4.4

이런 순서로 진행해야 한다.

 

버전업을 할 때 주의해야할 점은 다시 버전 다운을 할 때 한계치가 있다.

예를 들어 3.2 → 3.4로 버전업을 했을 때에는 버전 다운이 가능한 건 3.2.8까지이다.

그 이하로는 버전 다운을 할 수 없다.

 

터미널에서 작업해야하는 순서는 다음과 같다.

(아래 내용은 3.2 → 3.4 버전으로 업데이트했을 때의 방법이다. 다른 버전은 좀 더 고려해야할 부분이 더 있을 수도 있다. 해당 내용은 위의 링크를 통해 확인해야한다.)

 

  1. primary DB에 접속한다.

  2. rs.remove로 upgrade할 DB를 relica set 구조에서 제외한다.
    (만약 primary DB를 버전업 해야한다면 rs.stepDown을 통해 primary DB를 변경 시켜준 뒤 바뀐 primary DB로 이동해서 rs.remove를 해준다.)

  3. 정상적으로 remove가 되었다면, 해당 VM의 우분투 환경으로 돌아가서 mongod에 관련된 process를 kill해준다.
    (sudo netstat -peanut / killall -v mongod)

    https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
  4. 설치되어 있는 mongoDB를 삭제한다.
    (위의 url의 가장 아래로 화면을 내리면 관련 내용이 있을 것 이다.)

  5. 새 버전의 mongoDB를 삭제한다.
    (좌측 상단에 나와 있는 버전을 설치하고자하는 버전으로 변경한 뒤 설명에 맞게 설치해준다.)

  6. 설치 후에 mongod를 통해 실행을 시켜준다.

  7. primary DB에 접속해서 rs.add를 사용해 해당 DB를 replica set에 포함시킨다.

p.s.)

reconfig하는 법

https://docs.mongodb.com/manual/reference/method/rs.reconfig/

 

p.s.)

MongoDB version 3.6으로 업데이트 시에 생기는 문제

3.6 버전부터 아래와 같이 MongoDB가 바뀌었다. 만약 아래와 같은 경우를 발생시키는 코드는 모두 수정해야한다.

 

it seems that MongoDB now doesn't like if you set the same field in $set and $setOnInsert.

https://github.com/Automattic/mongoose/issues/5973

 

반응형

'데이터 베이스 > MongoDB' 카테고리의 다른 글

[MongoDB] 필드에 중복 데이터 여부 체크  (0) 2021.04.14

댓글