문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

복제본 세트를 WiredTiger로 변경

참고

MongoDB 4.2부터

  • collMod 명령에 대한 noPaddingusePowerOf2Sizes MMAPv1 옵션이 제거되었습니다. MongoDB 4.0에서 4.2로 업그레이드하면 4.2 세컨더리 멤버 가 즉시 중지되므로 해당 옵션은 사용하지 마세요.

  • MongoDB는 더 이상 사용되지 않는 MMAPv1 스토리지 엔진을 제거합니다. MongoDB 로 업그레이드하는 4 경우.2 MongoDB 4 에서 .0 MMAPv 를 사용하는 배포의 경우,1 WiredTiger로 업그레이드해야 합니다.

이 튜토리얼을 통해 WiredTiger 를 사용하도록 복제본 세트를 업데이트하세요. 이 절차는 다운타임을 방지하기 위해 순차적으로 복제본 세트를 업데이트합니다.

복제본 세트에는 서로 다른 스토리지 엔진을 가진 멤버가 있을 수 있습니다. 따라서 WiredTiger 스토리지 엔진을 순차적으로 사용하도록 멤버를 업데이트할 수 있습니다.

WiredTiger에 사용할 수 있는 "majority" 읽기 고려는 기본적으로 활성화되어 있습니다. 그러나 프라이머리-세컨더리-중재자(PSA) 아키텍처를 사용하는 세 멤버 복제본 세트에서는 "majority" 읽기 고려를 비활성화할 수 있습니다. 3개 멤버 PSA 아키텍처에 대해 "majority" 읽기 고려를 비활성화하면 캐시 압력이 누적되는 것을 방지할 수 있습니다.

아래의 절차 는 "majority" --enableMajorityReadConcern false포함하여 PSA 아키텍처에 대한 읽기 고려를 비활성화합니다.

참고

"majority" 읽기 고려를 비활성화해도 변경 스트림 가용성에는 영향을 주지 않습니다.

PSA 아키텍처 및 고려 사항 "majority" 에 대한 자세한 내용은 프라이머리-세컨더리-중재자 복제본 세트를 참조하세요.

2} 및mongod mongos MongoDB localhost 바이너리는 기본적으로 에 바인딩됩니다.

WiredTiger 스토리지 엔진의 경우, Linux에서는 데이터 저장 노드에 XFS를 사용하는 것이 좋습니다. 자세한 내용은 커널 및 파일 시스템을 참조하세요.

WiredTiger로 업그레이드하면 WiredTiger 배포에는 다음과 같은 MMAPv1 전용 제한 사항이 적용되지 않습니다:

MMAPv1 제한 사항
짧은 설명
네임스페이스 수
MMAPv1의 경우 네임스페이스 수는 네임스페이스 파일 크기를 628로 나눈 값으로 제한됩니다.
네임스페이스 파일 크기
MMAPv1의 경우 네임스페이스 파일은 2047메가바이트를 넘지 않아야 합니다.
데이터베이스 크기
MMAPv1 스토리지 엔진은 각 데이터베이스를 16,000개 이하의 데이터 파일로 제한합니다.
데이터 크기
MMAPv1의 경우 단일 mongod 인스턴스는 기본 운영 체제에서 제공하는 최대 가상 메모리 주소 공간을 초과하는 데이터 세트를 관리할 수 없습니다.
데이터베이스의 컬렉션 수
MMAPv1 스토리지 엔진의 경우, 데이터베이스 내 컬렉션의 최대 수는 네임스페이스 파일의 크기와 데이터베이스 내 컬렉션의 인덱스 수에 따라 결정됩니다.

다음 절차는 롤링 방식으로 복제본 세트를 업데이트합니다. 이 절차는 먼저 세컨더리 멤버를 업데이트한 다음 프라이머리 를 강등시키고 물러난 멤버를 업데이트합니다.

멤버를 WiredTiger로 업데이트하려면 멤버의 데이터를 제거하고 WiredTiger로 mongod 를 시작한 다음 초기 동기화를 수행합니다.

세컨더리 멤버를 한 번에 하나씩 업데이트합니다.

1

mongosh 에서 세컨더리를 종료합니다.

use admin
db.shutdownServer()
2

WiredTiger 스토리지 엔진으로 실행할 새 mongod 인스턴스에 대한 데이터 디렉토리를 준비합니다. mongod 에는 이 디렉토리에 대한 읽기 및 쓰기 권한이 있어야 합니다. 중지된 세컨더리 멤버의 현재 데이터 디렉토리 내용을 삭제하거나 새 디렉토리를 완전히 만들 수 있습니다.

mongod WiredTiger를 사용하면 다른 스토리지 엔진으로 생성된 데이터 파일로 시작되지 않습니다.

3

mongod 인스턴스 구성에서 MMAPv1 구성 옵션을 제거합니다.

4

mongod 을(를) 시작하고 wiredTiger 을(를) --storageEngine (으)로 지정하고 준비된 WiredTiger용 데이터 디렉토리를 --dbpath 으)로 지정합니다.

필요에 따라 추가 옵션을 지정합니다(예: --bind_ip).

경고

공개적으로 액세스할 수 있는 IP 주소에 인스턴스를 바인딩하기 전에 무단 액세스로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 보안 검사 목록을 참조하세요. 최소한으로 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려하세요.

--dbpath 에 데이터가 없으므로 mongod 초기 동기화 를 수행합니다. 초기 동기화 프로세스의 길이는 데이터베이스의 크기와 복제본 세트 멤버 간의 네트워크 연결에 따라 달라집니다.

구성 파일에서 옵션을 지정할 수도 있습니다. 스토리지 엔진을 지정하려면 storage.engine 설정을 사용합니다.

나머지 세컨더리 멤버에 대해 이 단계를 반복하여 한 번에 하나씩 업데이트합니다.

중요

복제본 세트의 모든 멤버가 WiredTiger를 사용하도록 업데이트하는 경우, 프라이머리를 업데이트하기 전에 먼저 모든 세컨더리 멤버가 업데이트되었는지 확인합니다.

모든 세컨더리 멤버가 WiredTiger로 업그레이드되면 mongosh 를 프라이머리에 연결하고 rs.stepDown() 를 사용하여 프라이머리를 물러나고 새 프라이머리를 선택합니다.

rs.stepDown()

프라이머리가 물러나 세컨더리가 되면 이전과 같이 WiredTiger를 사용하도록 세컨더리를 업데이트합니다.

1

mongosh 에서 세컨더리를 종료합니다.

use admin
db.shutdownServer()
2

WiredTiger 스토리지 엔진으로 실행할 새 mongod 인스턴스에 대한 데이터 디렉토리를 준비합니다. mongod 에는 이 디렉토리에 대한 읽기 및 쓰기 권한이 있어야 합니다. 중지된 세컨더리 멤버의 현재 데이터 디렉토리 내용을 삭제하거나 새 디렉토리를 완전히 만들 수 있습니다.

mongod WiredTiger를 사용하면 다른 스토리지 엔진으로 생성된 데이터 파일로 시작되지 않습니다.

3

mongod 인스턴스 구성에서 MMAPv1 구성 옵션을 제거합니다.

4

mongod 을(를) 시작하고 wiredTiger 을(를) --storageEngine (으)로 지정하고 준비된 WiredTiger용 데이터 디렉토리를 --dbpath 으)로 지정합니다.

필요에 따라 추가 옵션을 지정합니다(예: --bind_ip).

경고

공개적으로 액세스할 수 있는 IP 주소에 인스턴스를 바인딩하기 전에 무단 액세스로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 보안 검사 목록을 참조하세요. 최소한으로 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려하세요.

--dbpath 에 데이터가 없으므로 mongod 초기 동기화 를 수행합니다. 초기 동기화 프로세스의 길이는 데이터베이스의 크기와 복제본 세트 멤버 간의 네트워크 연결에 따라 달라집니다.

구성 파일에서 옵션을 지정할 수도 있습니다. 스토리지 엔진을 지정하려면 storage.engine 설정을 사용합니다.

← 독립형에서 유선 타이거로 변경