Миграция Marzban: замена SQLite на MySQL для стабильности

Переход с SQLite на MySQL обусловлен частыми повреждениями файлов базы данных SQLite, приводящими к невозможности восстановления. Проблема возникает из-за многопоточной работы Marzban, которая, игнорируя механизмы защиты SQLite, может вызывать повреждения.
Миграция Marzban: замена SQLite на MySQL для стабильности
Изображение носит иллюстративный характер

Для миграции необходимо установить MySQL, создать пользователя и базу данных, а затем изменить настройки для доступа извне. После этого следует установить sqlite3, снять дамп текущей базы, предварительно обработав его для совместимости с MySQL. В файле конфигурации.env нужно заменить строку подключения к базе данных, указав параметры для MySQL.

Для восстановления данных, после применения миграций к пустой базе MySQL, импортируется дамп, учитывая, что процесс может быть медленным из-за использования команды REPLACE вместо INSERT. Для больших баз с историей пользовательского трафика необходимо подготовить сервисы к миграции.

Миграция включает в себя остановку бота и панели Marzban, снятие и конвертацию бэкапа, с последующим переключением на MySQL в.env файле. Импорт данных завершается перезапуском панели, а также синхронизацией изменений. Рекомендуется сразу настроить регулярное резервное копирование базы данных на сторонний сервер.


Новое на сайте