MongoDB/RealMongoDB Study

[MongoDB][ADMIN]WiredTiger 데이터 파일 구조 필수 개념

DBA_JSH 2021. 6. 6. 18:47

WiredTiger.lock 

다른 MongoDB 서버 인스턴스가 동시에 사용하지 못하도록 잠금 역할을 하기 위한 파일이다.

이 파일은 MongoDB의 WiredTiger 스토리지 엔진이 정상적으로 셧다운 됐는지 판단하는 데 참조되는 파일이다.  MongoDB가 재시작되면서 초기화될 때 해당 파일이 남아 있으면 비정상적으로 종료됐다고 판단하고 복구 모드를 시작한다. 

LogMessage : Recovering data from the last clean checkpoint 

파일을 강제로 삭제해버리면 복구 모드를 실행하지 않아서 데이터가 손실될 수 있다. 

 

WiredTiger.turtle

스토리지 엔진의 설정 내용을 담고 있다. 

 

WiredTiger.wt

스토리지 엔진의 메타 데이터를 저장하는 컬렉션의 데이터 파일이다. 

컬렉션과 인덱스에 대해서 별도의 데이터 파일을 할당하도록 구현됐다. 데이터베이스나 컬렉션을 통째로 삭제하지 않고, 개별 인덱스를 삭제해도 해당 인덱스가 사용하던 디스크 공간을 운영체제로 반납해서 다른 용도로 활용할 수 있게 한 것이다.

인덱스의 이름과 무관하게 파일명을 부여하기 때문에 파악하기 어렵다. 따라서 아래와 같이 조회해보면 확인할 수 있다. 

ex ) db.order.stats({indexDetails:true})

 

WiredTigerLAS(Look Aside Table).wt(MySQL TmpTable과 유사)

스토리지 엔진의 캐시에서 재활용할 수 있는 공간이 부족하면 WiredTiger 스토리지 엔진의 이빅션 서버는 필요한 만큼의 여유 공간을 만들어야 사용자 요청 쿼리를 원활하게 처리할 수 있다. 

캐시에서 제거해야 하는 데이터 페이지들이 더티 페이지 상태여서 디스크에 기록해야 필요하다면 임시로 WiredTigerLAS.wt 데이터 파일을 사용하게 된다. 

 

diagnostic.data(62 ~ 66p)

내부 정보를 1초에 한번씩 모아서 별도의 파일로 기록한다. 

  - 운영체제의 상태 정보(/proc/stats. /proc/meminfo, /sys/block/* /stat)

  - serverStatus

  - replSetGetStatus

  - local.oplog.rs.stats 컬렉션의 collStas

  - buildInfo 

  - getCmdLineOpts

  - hostInfo 

일정 용량을 초과하면 새로운 파일로 기록하는 형태로 로테이션 된다. 

수집되는 진단 데이터를 FTDC(Full Time Data Capture)라고 하는데, FTDC 관련된 옵션은 MongoDB 시작 될때 또는 운영 중에 변경 가능하다.