현재 Oplog 사이즈 확인 방법
Mongo Shell에서 확인
db.getReplicationInfo()
예시 출력:
{
logSizeMB: 1024,
usedMB: 23.45,
timeDiff: 14400,
timeDiffHours: 4,
tFirst: ISODate("2025-04-18T03:00:00Z"),
tLast: ISODate("2025-04-18T07:00:00Z"),
now: ISODate("2025-04-18T07:00:01Z")
}
logSizeMB | 전체 Oplog 크기 (MB) |
usedMB | 현재 사용 중인 용량 (MB) |
timeDiff | Oplog에 저장된 첫 번째 ~ 마지막 기록 사이의 시간 간격 (초) |
timeDiffHours | 위 시간의 시간 단위 버전 |
tFirst | Oplog에서 가장 오래된 기록의 시간 |
tLast | 가장 최근의 Oplog 기록 시간 |
컬렉션 직접 확인 (local.oplog.rs)
# MB 단위로 변환
use local
db.oplog.rs.stats().maxSize / 1024 / 1024
※ Oplog 컬렉션 자체의 maxSize 확인 가능하지만, db.getReplicationInfo()에서 확인이 편함
수동으로 oplog 크기 변경하는 법
MongoDB는 실행 중에는 oplog 크기를 직접 변경할 수 없고, 아래와 같이 수동으로 변경은 가능합니다.
- 복제 중단 (노드 내리기)
- 기존 oplog.rs 삭제
- 새 크기로 다시 초기화
# Step 1: oplog 크기를 1GB 또는 1,000MB로 변경
db.adminCommand({replSetResizeOplog: 1, size: Double(1000)})
{
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1757909833, i: 4 }),
signature: {
hash: Binary.createFromBase64('WQoxvJly1czSa+b566JiZl/R5co=', 0),
keyId: Long('7488279118413299717')
}
},
operationTime: Timestamp({ t: 1757909833, i: 4 })
}
# Step 2: 변경 확인
db.getReplicationInfo();
{
configuredLogSizeMB: 1000,
logSizeMB: 1000,
usedMB: 995.64,
timeDiff: 5427204,
timeDiffHours: 1507.56,
tFirst: 'Mon Jul 14 2025 08:44:13 GMT+0000 (Coordinated Universal Time)',
tLast: 'Mon Sep 15 2025 04:17:37 GMT+0000 (Coordinated Universal Time)',
now: 'Mon Sep 15 2025 04:17:38 GMT+0000 (Coordinated Universal Time)'
}
모든 노드 수행해야되며 primary인 경우 rs.stepDown() 수행 후 변경 진행
⚠️ Secondary 노드에서만 수행하며, 변경 시 신중하게 진행해주시기 바랍니다.
'NoSQL > MongoDB' 카테고리의 다른 글
[MongoDB] RDBMS DBA 관점에서의 MongoDB 커리큘럼 (0) | 2025.04.25 |
---|---|
[MongoDB] 성능 튜닝 실전편: 인덱스 전략과 Aggregation Pipeline 최적화 (0) | 2025.04.21 |
[MongoDB] MongoDB 운영 중 자주 발생하는 문제와 실전 대응법 (0) | 2025.04.20 |
[MongoDB] MongoDB DBA가 꼭 챙겨야 할 관리 포인트 정리 (0) | 2025.04.19 |
[MongoDB] MongoDB 기본기, RDBMS와 비교하며 쉽게 이해하기 (0) | 2025.04.18 |