dbtrail - 모든 행 변경을 기억하고 되돌리기 가능한 MySQL용 타임머신
(github.com/dbtrail)- 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: 웹 콘솔 또는
reconstructCLI로 임의 시점의 행·테이블 상태 조회- 라이브 SQL
AS OF인터페이스는 추가로 ProxySQL 필요
- 라이브 SQL
- 누가 바꿨지?: 특정 변경이 어떤 데이터베이스 사용자·호스트·클라이언트 프로그램에서 비롯됐는지 식별(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 라이선스 (상업용/프로덕션 포함 자유 사용)