Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: effractor on 10 06 2015, 15:17:10

Title: Проблема с базой
Post by: effractor on 10 06 2015, 15:17:10
Ситуация следющая:
Запустил миранду загрузил историю сообщений для нескольких пользователей (VKontakte), потом заметил, что миранда хочет обновиться (ночные сборки) нажал обновить. Теперь при запуске получаю ошибку о том, что база повреждена и я могу пофиксить проблему с помощью плагина DbChecker. Следуя инструкциям, запускаю миранду с параметрами /svc:dbchecker, мирнада предлагает мне выбрать профиль, я выбираю, нажимаю "Далее" и снова вылетает тоже самое окно.

База зашифрована, прошу помощи, подскажите как восстановить базу?
Title: Re: Проблема с базой
Post by: watcher on 10 06 2015, 19:53:50
Не ставить при проверке верхнюю галку:

Spoiler
(https://forum.miranda-ng.org/proxy.php?request=http%3A%2F%2Fi.imgur.com%2FaeFzfLb.png&hash=2a5ed65c9af8734721b706315a6462d30d4e3d8e)
[close]

С ней результаты проверки не пишутся в базу, это самая распространенная ошибка у пользователей при проверке базы. Если это не оно, то пишите, будем думать, что ещё могло пойти не так.
Title: Re: Проблема с базой
Post by: effractor on 11 06 2015, 07:57:10
До галок дело не доходит, я выбираю профиль, нажимаю далее и сразу же получаю ошибку.

Post Merge: 15 06 2015, 17:59:22
watcher, а есть где-нибудь описание структуры базы данных? Пробовал запустить миранду под отладчиком с профилем поломанным и другим (свежесозданным) живым, похоже на то, что в заголовке не корректные ссылки на данные (могу ошибаться, честно говоря, пишу в основном говнокод на perl и пытаюсь JAVA освоить, с Cpp и проектом очень лень разбираться, а базу хотелось бы восстановить, ну или хотябы историю сообщений)


З.Ы. Бэкапы не настроил, думал, что настроены (в Miranda IM были), а как дело дошло до восстановления понял, что облажался
Title: Re: Проблема с базой
Post by: effractor on 16 06 2015, 10:06:27
Восстановил с помощью древнего профиля от MirandaIM.

Ошибку у меня возвращала функция CDb3Mmap::InitModuleNames, на проверке dbmn->signature != DBMODULENAME_SIGNATURE (была повреждена цепочка какого-то списка)
В итоге скопировал блок 0x4c - 0xf6 из древнего профиля в новый и всё запустилось.

Настроил автобэкпы  ;D

Тему можно убить, наверное, она бесполезна.