DBTrail CLI
DBTrail читает бинлог MySQL, держит копию в Parquet для запросов в DuckDB и дает MCP-доступ на чтение для Claude Desktop
- 68 ★ репозитория
- Последний коммит
- Apache-2.0
Широкий доступ
Почему такой уровень
- Читает бинарный журнал рабочей базы MySQL и копирует каждое изменение строк, в том числе персональные данные, в Parquet
- Для подключения создается пользователь репликации, а установка идет скриптом через curl и sh
- Генерирует SQL, который меняет данные при запуске, поэтому его надо проверять перед выполнением
Установка
- Работает в
Ручная установка
curl -fsSL https://raw.githubusercontent.com/dbtrail/dbtrail/main/install.sh | shНужны Docker с Compose и DuckDB для запросов. Скрипт запускает стек и печатает следующие шаги; вход в веб-интерфейс на 127.0.0.1:8090.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Читает бинарный журнал рабочей базы MySQL и копирует каждое изменение строк, в том числе персональные данные, в Parquet
- Для подключения создается пользователь репликации, а установка идет скриптом через curl и sh
- Генерирует SQL, который меняет данные при запуске, поэтому его надо проверять перед выполнением
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
DBTrail подключается к MySQL по протоколу репликации, как обычная реплика, и по бинарному журналу складывает таблицы в файлы Parquet в вашей папке или корзине S3. Копия отстает на минуты, расписание обновления задается от пяти минут до суток. Запросы к ней идут в DuckDB через сгенерированный views.sql, поэтому тяжелые отчеты не нагружают рабочую базу. Работает с MySQL 8.0 и 8.4, Percona, Amazon RDS и Aurora, MariaDB; для PostgreSQL есть разовая копия. Тот же поток изменений хранит каждую версию каждой строки. Можно посмотреть таблицу на прошлый момент через веб-интерфейс или команду reconstruct и получить SQL, который отменяет только поврежденные строки: DBTrail пишет SQL, а вы проверяете и запускаете его сами. Команда bintrail verify проверяет без доступа к источнику, что восстановление дало бы нужный результат. В веб-интерфейсе можно добавить серверы, настроить снимки и смотреть изменения. К Claude Desktop или любому MCP-клиенту DBTrail подключается через MCP-сервер, все его инструменты только читают.
Для кого. Администраторам и аналитикам MySQL, которым нужны отчеты без нагрузки на рабочую базу и откат испорченных строк, а запросы к данным хочется отдавать ассистенту.
Подходит, если
- Отчеты на рабочей базе вымывают рабочий набор из буферного пула, и аналитику нужна отдельная копия
- Кто-то удалил или испортил строки, и надо получить SQL отката только для них
- Требуется узнать, как выглядела строка или таблица неделю назад, и что изменилось между двумя моментами
- База стоит в Amazon RDS или Aurora, где нет доступа к файлам бинарного журнала
- Вопросы к данным хочется задавать Claude Desktop обычным языком, но только на чтение
Не подходит, если
- Нужна высокая доступность или резервная копия: DBTrail их не обеспечивает, и история начинается с дня установки
- Приложение должно ходить в копию: она отстает на минуты и не принимает записи
- Нужна задержка в секунды по умолчанию: свежий режим включается отдельно на каждый сервер
- Нет Docker с Compose и DuckDB на машине для запросов
Пример запроса к агенту
Покажи через MCP, как выглядела строка заказа с идентификатором 4217 вчера в 18:00 и что изменилось с тех порОграничения
- Нужен бинарный журнал в формате ROW с полными образами строк: binlog_format=ROW и binlog_row_image=FULL; проверка и подсказка по исправлению есть в bintrail doctor.
- Изменение схемы таблицы, TRUNCATE, DROP или RENAME приостанавливают обновления до полного чтения базы, самое частое раз в сутки, с короткой блокировкой.
- Без корзины S3 история строк хранится 48 часов, на диске остаются три новейших снимка каждой таблицы.
- Сервера MySQL для отчетов здесь нет: отчеты идут в DuckDB, а необязательный порт MySQL (бета, без TLS) отвечает только на вопросы «как выглядело».
Как отключить. Остановите стек Docker Compose, который поставил скрипт установки, и удалите созданного для DBTrail пользователя репликации в MySQL. Файлы Parquet в папке или корзине S3 остаются у вас.
Частые вопросы
Как установить DBTrail?
Выполните curl -fsSL https://raw.githubusercontent.com/dbtrail/dbtrail/main/install.sh | sh. Нужен Docker с Compose, а DuckDB потребуется там, где вы выполняете запросы. Скрипт скачивает стек Docker Compose, запускает его и печатает следующие шаги. Веб-интерфейс откроется на http://127.0.0.1:8090.
Нагружает ли DBTrail рабочую базу?
Мало: после первого чтения таблиц DBTrail получает только бинарный журнал по протоколу репликации, без плагинов, агентов и триггеров на сервере БД. Полное чтение повторяется при изменении схемы таблицы, не чаще раза в сутки.
Может ли ассистент изменить данные через MCP?
Нет, все инструменты MCP-сервера только читают. SQL для отмены изменений DBTrail тоже только пишет, а проверяете и запускаете его вы. Настройка подключения Claude Desktop описана в docs/connect-ai.md репозитория.
Какие базы поддерживаются?
MySQL 8.0 и 8.4, Percona Server, Amazon RDS и Aurora для MySQL, MariaDB 10.11 и новее. Для Google Cloud SQL заявлено, что должно работать. PostgreSQL 14 и новее получает разовую копию, а история строк там в бете.
Заменяет ли DBTrail резервное копирование?
Нет. История начинается в день установки, поэтому физические бэкапы нужно сохранять. DBTrail не обеспечивает и высокую доступность: приложение к копии не подключается, переключения на нее нет.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыДесктопное рабочее место для SQL с встроенным MCP-сервером: агент читает схему и выполняет запросы в том же клиенте, где работаете вы
DuckDB / MotherDuck MCP Server
DuckDB / MotherDuck Local MCP Server
MCP-сервер для SQL-аналитики на DuckDB: локальные файлы, база в памяти, базы на S3 и MotherDuck
Экономный по токенам MCP-сервер для PostgreSQL, MySQL, MariaDB, SQL Server и SQLite с режимом только для чтения
Временная песочница на DuckDB: агент загружает CSV и запрашивает данные по MCP или REST, не трогая боевую базу
Легкое рабочее место для баз данных с MCP-сервером: агент читает схему, выполняет запросы и разбирает данные в PostgreSQL, MySQL и других
Плагин DuckDB для Claude Code: SQL по CSV, Parquet и базам, чтение файлов из S3, поиск в документации и в логах сессий
Коротко о README
README показывает запрос к копии в DuckDB, объясняет, зачем нужна копия, и в четыре шага описывает работу: первое чтение, бинарный журнал, обновление по расписанию и запросы. Приведены замеры на наборе TPC-C, возможности копии и истории строк, ограничения, таблица поддерживаемых баз, установка с первым запуском и ссылки на документацию.