Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

자체 관리 복제본 세트 멤버의 Oplog 크기 변경

이 페이지의 내용

  • A. 복제본 세트 멤버에 연결
  • B. (선택 사항) oplog의 현재 크기 확인
  • C. 복제본 세트 멤버의 oplog 크기 변경
  • D. (선택 사항) oplog.rs를 압축하여 디스크 공간 확보

경고

local.oplog.rs 컬렉션 을 삭제할 수 없습니다. 이 제한에 대한 자세한 내용은 oplog 컬렉션 동작을 참조하세요.

이 절차는 replSetResizeOplog 명령을 사용하여 복제본 세트의 각 멤버에 대한 oplog[1]의 크기를 변경하며, 이때 프라이머리 멤버로 진행하기 전에 세컨더리 멤버부터 시작합니다.

먼저세컨더리 복제본 세트 멤버에 대해 이 단계를 수행합니다. 모든 세컨더리 멤버의 oplog 크기를 변경한 후에는 프라이머리 멤버에 대해 이 단계를 수행합니다.

mongosh를 사용하여 복제본 세트 구성원에 연결합니다.

mongosh --host <hostname>:<port>

참고

복제본 세트에서 인증을 적용하는 경우, clusterManager 또는 clusterAdmin 역할과 같이 local 데이터베이스를 수정할 수 있는 권한이 있는 사용자로 인증해야 합니다.

oplog의 현재 크기를 보려면 local 데이터베이스로 전환하고 oplog.rs 컬렉션에 대해 db.collection.stats()를 실행합니다. stats()는 oplog 크기를 maxSize로 표시합니다.

use local
db.oplog.rs.stats().maxSize

maxSize 필드는 컬렉션 크기를 바이트 단위로 표시합니다.

replSetResizeOplog 명령을 사용하여 oplog의 크기를 조정합니다. size는 double이며 990MB보다 커야 합니다. mongosh에서 oplog size를 명시적으로 캐스팅하려면 Double() 생성자를 사용합니다.

다음 작업은 복제본 세트 멤버의 oplog 크기를 16GB 또는 16,000MB로 변경합니다.

db.adminCommand({replSetResizeOplog: 1, size: Double(16000)})
[1] 2}가 삭제되는 것을 방지하기 위해 oplog가 구성된 크기 제한을 초과하여 커질 수 majority commit point 있습니다.

oplog의 크기를 줄여도 원래 oplog 크기에 할당된 디스크 공간이 자동으로 회수되지는 않습니다 . 디스크 공간을 다시 확보하려면 local 데이터베이스의 oplog.rs 컬렉션에 대해 compact를 실행해야 합니다. oplog 크기를 늘린 후 oplog.rs 컬렉션에서 compact를 실행해도 아무런 이점이 없습니다.

중요

복제본 세트 구성원은 compact 작업이 진행되는 동안 oplog 항목을 복제할 수 있습니다. 그 결과, 압축하는 동안 oplog 복제가 정상적으로 계속될 수 있으므로 더 이상 oplog의 압축 작업을 유지 관리 기간으로 제한할 필요가 없습니다.

프라이머리 복제본 세트 멤버에 대해 compact실행하지 마세요. mongo 셸을 (복제본 세트가 아니라) 프라이머리에 직접 연결하고 rs.stepDown()을 실행합니다. 성공하면 프라이머리가 강등됩니다. mongo 셸에서 이제 세컨더리 멤버가 된 멤버에 대해 compact 명령을 실행합니다.

다음 작업은 oplog.rs 컬렉션에서 compact 명령을 실행합니다.

use local
db.runCommand({ "compact" : "oplog.rs" } )

인증을 적용하는 클러스터의 경우, local 데이터베이스 및 oplog.rs 컬렉션에서 compact 권한 작업을 가진 사용자로 인증해야 합니다. compact 인증 요구 사항에 관한 전체 문서는 compact 필수 권한에서 확인하세요.

돌아가기

유지 관리