MongoDB에서 Oplog 사이즈 확인하는 법

MongoDB에서 Oplog 사이즈 확인하는 법

MongoDB의 oplog(Operation Log, 작업 로그)는 MongoDB 복제(replication)에서 사용되는 특별한 컬렉션으로, 변경 사항을 기록하는 역할.

📦 oplog란?

• oplog(rs.oplog)는 MongoDB 복제 세트(replica set)에서 Primary 노드의 데이터 변경 사항을 기록하는 컬렉션입니다.

• Secondary 노드는 Primary의 oplog를 읽고 동일한 작업을 수행하여 데이터를 동기화함.

• 컬렉션 이름: local.oplog.rs

  • Capped Collection(고정 크기 컬렉션)으로 동작하며, 일정 크기가 차면 가장 오래된 데이터부터 삭제!

📦 oplog의 동작 방식

1. Primary 노드에서 변경 발생

• insert, update, delete 작업이 수행될 때, oplog에 기록됨.

2. Secondary 노드가 oplog를 읽음

• Secondary 노드는 Primary의 oplog를 주기적으로 읽어 적용함.

3. 동기화 유지

  • Primary에서 발생한 변경 사항을 Secondary가 동일하게 수행하여 데이터 일관성을 유지.

📦 oplog 확인 방법

MongoDB에서 oplog를 직접 확인하려면 아래 명령을 실행

use local
db.oplog.rs.find().limit(10).pretty()
  • local 데이터베이스에 oplog.rs 컬렉션이 저장.
  • 위 명령을 실행하면 최근 10개의 oplog 항목을 확인가능.

📦 oplog 항목 예시

{
   "ts" : Timestamp(1712432874, 1),
   "t" : NumberLong(2),
   "h" : NumberLong("890273918273918273"),
   "v" : 2,
   "op" : "i",
   "ns" : "mydb.users",
   "o" : {
       "_id" : ObjectId("65f3b69ad2b3e6b5d3a6f6d1"),
       "name" : "Alice",
       "age" : 28
   }
}
  • “op”: 작업 유형 (“i”: insert, “u”: update, “d”: delete)
  • “ns”: 네임스페이스(데이터베이스 및 컬렉션 정보)
  • “o”: 변경된 문서 내용.

📦 oplog의 크기 확인 및 조정

  • oplog의 크기를 확인
db.getReplicationInfo()
  • oplog 크기를 늘리려면 (예: 10GB)
db.adminCommand({ replSetResizeOplog: 1, size: 10240 })

🚀 정리.

  • oplog는 MongoDB 복제(replication)에서 Primary의 변경 사항을 기록하는 로그
  • Secondary 노드는 oplog를 읽고 동일한 작업을 수행하여 데이터 일관성을 유지
  • oplog 크기가 고정되어 있으며, 오래된 로그는 자동으로 삭제

댓글

댓글 남기기