Сразу скажем – это классическая неисправность данного продукта, а именно SQLite, которая при высокой нагрузке перестает справляться с потоком ввода-вывода, что приводит к повреждению структуры СУБД.
Несмотря на грозное предупреждение, сам физический диск обычно исправен, но все равно выполните его проверку, чтобы исключить возможного виновника, также сразу убедитесь, что на диске достаточно места.
Начнем от простого к сложному, во многих случаях достаточно просто сделать сжатие базы, а дальше SQLite сам исправит ошибки.
Открываем терминал RouterOS и выполняем в нем следующие команды:
/dude set enabled=no
/dude vacuum-db
/dude set enabled=yes
Если The Dude запустился и работает, то вам повезло, если нет, то переходим к тяжелой артиллерии. Останавливаем службу The Dude:
/dude set enabled=no
И скачиваем файл базы данных dude.db на ПК, также нам понадобится утилита sqlite3.exe, которую можно скачать на официальном сайте.
Теперь выгрузим дамп поврежденной базы:
sqlite3.exe dude.db ".recover" > repair.sql
И соберем из дампа новую исправную базу:
sqlite3.exe dude_new.db < repair.sql
Если все прошло без ошибок, то переименовываем dude_new.db в dude.db и копируем обратно на роутер. Также обратите внимание на размер новой базы, она должна быть примерно такого же размера, как и старая.
После чего уже в RouterOS включаем службу The Dude:
/dude set enabled=yes
В большинстве случаев этого достаточно для восстановления, в противном – придется восстанавливать систему из резервной копии, но даже после восстановления выполните выгрузку – загрузку базы через дамп, чтобы исключить накопившиеся ошибки в СУБД.
