Database/MongoDB

[MongoDB] MongoDB 마이너버전 업그레이드 방법

꽁담 2024. 4. 18. 15:01

 

마이너버전 업그레이드 정책

MongoDB 마이너버전 업그레이드는 롤링(Rolling-upgrade)방식을 사용한다.

롤링방식이란 서비스를 중지하지 않고 멤버들을 순차적으로 업그레이드하는 방식을 의미한다.

 

 

롤링방식

롤링방식 순서는 다음과 같다.

 

1. 세컨드리 멤버의 버전을 업그레이드 한다.

2. 업그레이드가 된 세컨드리 멤버와 현재의 프라이머리 멤버를 스위칭한다. (서비스 입장에서는 순간적인 단절이 발생)

3. 업그레이드가 된 세컨드리 멤버에서 서비스를 이어간다.

4. 세컨드리가 된 기존 프라이머리 버전을 업그레이드 한다.

 

 

롤링방식의 리스크

롤링방식으로 순차적으로 업그레이드를 하는동안 서비스는 이어갈 수 있지만

세컨드리와 프라이머리간 버전이 일치하지 않는 기간이 발생한다.

 

이 때 업그레이드가 된 버전의 기능을 사용하는 경우

업그레이드가 되지 못한 멤버에 대해서 동기화가 깨져 복구를 해야할 수도 있다.

 

이 리스크를 방지하기 위해 서로다른 버전이 공존하는경우

MongoDB 는 하위버전의 기능만 사용하도록 하여 동기화가 끊어지지 않도록 방지한다.

 

업그레이드가 완료되고 난 후 업그레이드 기능을 활성화 해주는 작업을 해주면 그때부터 신규 기능을 사용할 수 있다.

 

 

setFeatureCompatibilityVersion

이 옵션을 사용하여 신규버전의 기능을 활성화해준다.

 

아래는 현재 MongoDB 는 7.0 버전 호환성이며 7.2 호환성으로 활성화 해주는 명령어이다.

이렇게 한번 실행하고 나면 업그레이드 이전 버전으로는 되돌아 갈 수 없으므로 주의한다.

admin> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1} )
{ featureCompatibilityVersion: { version: '7.0' }, ok: 1 }

admin> db.adminCommand( { setFeatureCompatibilityVersion: "7.2" } )