oplog 온라인 크기 조정 (replSetResizeOplog)
MongoDBReplica Set명령어
// Current oplog size (MB):
db.getSiblingDB("local").oplog.rs.stats().maxSize / 1024 / 1024
// Resize the oplog to 50 GB (in MB; run on each member separately, secondaries first):
db.adminCommand({ replSetResizeOplog: 1, size: 51200 })
// Minimum retention period (hours), independent of size:
db.adminCommand({ replSetResizeOplog: 1, minRetentionHours: 48 })
// Verify the result:
rs.printReplicationInfo()하는 일
실행 중인 멤버의 oplog를 재시작 없이 늘리거나 줄인다. minRetentionHours는 크기 한도를 넘더라도 최소 기간 동안 oplog 항목을 유지한다.
사용 시점
oplog window가 유지보수나 초기 동기화 시간을 감당하지 못하거나, 대량 쓰기 작업이 window를 줄일 때.
주의
명령은 실행한 멤버에만 적용되며 복제되지 않으므로 모든 멤버에 적용한다. sync source 역할을 하는 멤버에서도 window가 충분해야 한다. 축소해도 디스크 공간이 OS에 즉시 반환되지 않으며 이를 위해서는 oplog.rs에 compact가 필요하다. minRetentionHours를 쓰면 쓰기량에 따라 oplog가 size를 넘어 커질 수 있으므로 디스크를 그에 맞게 계획한다.