Miranda NG русскоязычный форум > Разработка

Порча базы в результате аварийного завершения Миранды

(1/1)

Erjo Loksn:
В настоящее время аварийное завершение Миранды (например, через диспетчер задач или в результате отключения электроэнергии) приводит к очень серьёзной порче базы Миранды, к тому, что Миранда не может снова запуститься. Приходится доставать из бэкапа целую копию базы. Но так было не всегда. Например, вплоть до версии включительно v0.95.12 alpha build #22889 (5402e71b92) ничего подобного не было. Можно было сколько угодно аварийно снимать Миранду - база от этого не страдала. Явно кто-то что-то изменил в коде, что теперь стало вот так. Нельзя ли вернуть обратно? Учтите, версия указана ориентировочно, я провожу обновления вручную и раз в несколько месяцев.

dartraiden:
Возможно, проблема появилась после очередного обновления libmdbx.
Мы планируем переходить на SQLite, поэтому проще дождаться этого момента, чем искать проблему в коде, который станет неактуальным уже в этом году.

Если нужно завершать Миранду не штатно через интерфейс, существуют такие варианты как CmdLine, через который можно отдавать команду завершения работы или банальный "taskkill /im", который на моей машине никогда не приводил к повреждению, а пользуюсь им я очень часто.

Завершение через диспетчер, вероятно, эквивалентно вызову taskkill с ключом /f (принудительное прихлопывание без шанса дать программе какое-то время на приведение дел в порядок), что не рекомендуется и приводит к известным проблемам (например, NewStory не успевает подчистить временный контакт, если открыты его настройки).

ANDRAON:

--- Quote from: ANDRAON on 19 05 2021, 22:08:06 ---самое время заняться починкой базы
--- End quote ---
Опять сломалась база и скин миранды, восстановление импортом не помогает. Может кому пригодится.
Нашёл 100% рабочий (ручной) способ починки любой базы:
Условие: должна быть рабочая (во всех "смыслах") резервная копия для импорта через Miranda;
1) Закрыть Miranda NG;
2) Зайти в папку профиля с резервной копией ...\Miranda NG\Profiles\"ВАШ_ПРОФИЛЬ"\AutoBackups;
3) Сделать копию рабочего профиля (обычно записан старым числом в названии) и переименовать его как "ВАШ_ПРОФИЛЬ".dat;
4) Скопировать "ВАШ_ПРОФИЛЬ".dat в папку профиля ...\Miranda NG\Profiles\"ВАШ_ПРОФИЛЬ" с заменой базы (ответив да);
Пояснение: "ВАШ_ПРОФИЛЬ" - название вашего профиля в Miranda (так как вы его назвали изначально при работе с Miranda).

Navigation

[0] Message Index

There was an error while thanking
Thanking...
Go to full version