dbtrail - 모든 행 변경을 기억하고 되돌리기 가능한 MySQL용 타임머신
요약
dbtrail은 MySQL의 바이너리 로그를 활용하여 모든 데이터 변경 이력을 추적하고 특정 시점으로 복구할 수 있는 타임머신 도구입니다. 행 단위의 변경 전후 비교, 정밀한 Undo SQL 생성, Cascade 삭제 복구 기능을 제공합니다.
핵심 포인트
- 바이너리 로그 기반의 Point-in-time recovery 지원
- 행 단위의 Before/After 변경 사항 및 Diff 조회 가능
- Cascade delete 및 FK 복구 기능 포함
- Claude 등 MCP 클라이언트를 위한 MCP 서버 제공
- MySQL, RDS, Aurora 등 다양한 MySQL 환경 지원
- MySQL의
바이너리 로그(binary log) 를 tail 하여 모든 행 변경을 완전한 before/after 이미지와 함께 검색 가능한 인덱스로 보관 - Lock/스키마 변경/복원 대기 없이 특정 시점으로 되돌리는
point-in-time recovery 지원
모든 변경 조회 가능: 어떤 행이 언제 무엇으로 바뀌었는지 before → after diff로 확인
정밀 Undo: 손상된 행만 골라 정확한 역방향(reversal) SQL 생성
Cascade delete 복구:ON DELETE CASCADE
로 삭제된 자식 행을 재구성하고, ON DELETE SET NULL
로 지워진 FK를 복원
- InnoDB가 binlog 아래 단계에서 제거해 대부분의 도구가 감지하지 못하는 변경까지 포함
Time-travel: 웹 콘솔 또는 reconstruct
CLI로 임의 시점의 행·테이블 상태 조회
- 라이브 SQL
AS OF
인터페이스는 추가로 ProxySQL 필요
누가 바꿨지?: 특정 변경이 어떤 데이터베이스 사용자·호스트·클라이언트 프로그램에서 비롯됐는지 식별(attribute)하며, audit plugin 유무에 따라 증명 가능 범위를 구분
안전망 검증: bintrail verify
가 오프라인/drift 없이 복구가 원본을 재현하는지 검사, bintrail status
가 캡처 스트림의 누락 구간 표시
웹 콘솔: 변경 탐색, 복구, 모니터링 서버 추가를 UI에서 처리
MCP 서버 제공: Claude 또는 모든 MCP 클라이언트가 이력을 검색하고 복구안 초안 작성 가능
-
지원 대상:
MySQL, Percona Server for MySQL, Amazon RDS for MySQL, Amazon Aurora MySQL, Google Cloud SQL for MySQL -
복제 프로토콜로 연결되어 디스크상의 binlog 파일 불필요
-
요구 사항: MySQL 8.0 이상,
binlog_format=ROW
, binlog_row_image=FULL
(bintrail doctor
가 점검 후 수정 방법 알려줌)
- 아파치 2.0 라이선스 (상업용/프로덕션 포함 자유 사용)
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기