Author Topic: Помогите восстановить профиль  (Read 25523 times)

0 Members and 5 Guests are viewing this topic.

Offline Mur466

  • Newbie
  • *
  • Posts: 5
Сегодня ни с того, ни с сего посреди дня перестала загружаться Miranda NG. Утром работала. Потом обновления windows потребовали перезапуск. После него Miranda ругается на "профиль в неизвестном формате".

Стояла раньше стабильная версия 0.95.8.1
Поставил альфу 0.95.9 , не помогло
В папке профиля лежит сегодняшний crashlog, прилагаю
 

Offline ghazan

Re: Помогите восстановить профиль
« Reply #1 on: 27 08 2018, 17:00:04 »
а на альфе что говорит? там нет этого DebugBreak

бэкап есть?
 

Offline Mur466

  • Newbie
  • *
  • Posts: 5
Re: Помогите восстановить профиль
« Reply #2 on: 27 08 2018, 17:10:11 »
Свежего бекапа нет
В папке профиля лежит файл с тем же именем .dat.bak от 1 июня. Но он тоже не открывается. Пробовал его импортировать, но импорт просто падает (прекращена работа программы)
И как-то они не похожи друг на друга в hex-редакторе. Видимо разные форматы, или актуальный профиль совсем испорчен. См. вложения.
Пробовал открыть их оба с помощью содержимого папки "C:\Program Files\Miranda NG\Plugin Updates\Backups" , скопировав их поверх. Тоже не открывает.

 

Offline Mur466

  • Newbie
  • *
  • Posts: 5
Re: Помогите восстановить профиль
« Reply #3 on: 27 08 2018, 17:25:05 »
При импорте через альфу, бекап от июня импортируется (ура, хоть что-то!). При импорте актуального профиля пишет "Ошибка загрузки исходного файла, выход"
При попытке войти через альфу в бекап, предлагает сконвертировать в новый формат и успешно это делает. При входе в актуальный профиль пишет  "профиль в неизвестном формате".

 

Offline Mur466

  • Newbie
  • *
  • Posts: 5
Re: Помогите восстановить профиль
« Reply #4 on: 28 08 2018, 09:48:49 »
Есть надежда восстановить актуальный профиль с историей сообщений?
Если да, могу его переслать
 

Offline ghazan

Re: Помогите восстановить профиль
« Reply #5 on: 28 08 2018, 15:13:12 »
Есть надежда восстановить актуальный профиль с историей сообщений?
вероятность примерно процентов 20, что можно (например, когда побилась страница ключа, а не сама таблица).
проще переехать на альфу, на самом деле.
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #6 on: 28 08 2018, 18:49:16 »
Quote
Свежего бекапа нет
@ghazan, нам бы добавить в стаблю автобекапер...
Сейчас он у нас только в ночнике, но ведь положить его в архив с ядром - пара пустяков.
 

Offline lokapal

Re: Помогите восстановить профиль
« Reply #7 on: 07 09 2018, 15:09:21 »
Эм, дорогие разрабочики, может лучше про реактор вернуть режим совместимости со старой базой? Я пользуюсь мирандой (в том числе NG), с, по крайней мере, 2002 года (да, спасибо, я знаю, что столько не живут 8) И всё работает, за это время не было ни одного краха базы (которая чудесно пережила обычную миранду, потом миранду unicode, потом miranda-ng 32, сейчас miranda-ng 64). Это уже очень не первое сообщение о крахе базы по тем или иным причинам. База - по сути единственное, что держит многих на miranda. Я, конечно, отчётливо понимал, что после переезда на новую базу будет ужас-ужас-ужас. Но может, правильнее откатиться назад, не?
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #8 on: 07 09 2018, 15:10:23 »
Старый формат не предоставляет некоторых функций, требуемых облачным протоколам. Это будет тупик (то есть, Skype, Steam, Facebook и прочие протоколы никогда не смогут работать нормально, потому что им требуется идентификатор сообщений в базе, всегда будут дубли сообщений, потери и т.п., то, что и было на mmap, и от чего мы ушли). Прикрутить это к mmap нельзя.
Кроме того, драйвер базы в 0.95.9 стал существенно стабильнее. Все известные проблемы с базой касаются именно 0.95.8, которая уже в прошлом.
Ну и наконец: теперь у всех установлен автобекапер.

Сейчас кончатся последние страдальцы с повреждёнными базами (последняя волна: те, у кого база была повреждена, но кое-как работала и они этого не замечали, пока не прилетел автобекапер и не обнаружил, что база представляет собой ходячего мертвеца) и всё будет хорошо.

Делайте бекапы любой информации, которую вам жалко потерять. Это относится не только к Миранде. Пропадания питания, зависания операционной системы, умершие накопители - никто от этого не застрахован. Очень весело бывает обнаружить, что побился системный том Bitlocker, когда при зависании ОС не успела скинуть кэш на SSD.
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #9 on: 09 09 2018, 11:50:53 »
А в новом формате можно сделать ту же неубиваемость, которая была в старом?
У меня база с 1998 года. Сегодня Миранда запорола базу в первый раз. Хорошо, ежедневный бэкап есть...
И почему база внезапно так раздулась? Недавно было 118М, а сейчас 332М!

"Сжать базу" убивает ее в ноль. Бекапилка не работает вообще.
Как проверить базу на ошибки и дупы? В этой версии это возможно вообще?
« Last Edit: 09 09 2018, 12:57:45 by Fornit »
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #10 on: 09 09 2018, 16:11:57 »
А в новом формате можно сделать ту же неубиваемость, которая была в старом?
Можно, но 10 с лишним лет, в течениме которых вылизывался старый драйвер, повторить за год невозможно. Впрочем, по сравнению с 0.95.8, в 0.95.9 ни у одного пользователя ещё не было проблем с базой.

Quote
"Сжать базу" убивает ее в ноль. Бекапилка не работает вообще.
С большой вероятностью база повреждена в 0.95.8 (хоть и открывается в Миранде, но внутри она не в порядке (это не касается истории и т.п, речь о структуре базы)), попробуйте создать чистую базу и импортировать туда всё со старой. Импорт автоматически предлагается при старте с чистым профилем. Если импорт упадёт (а, скорее всего, не упадёт), то, пожалуйста, на чистой базе сначала обновитесь до стабильной версии с символами, повторите падение и опубликуйте крашлог, потому что нормального крашлога единственный столкнувшийся с падением импорта пользователь не прислал :( У остальных пользователей всё импортируется без проблем.

Бекапер, как и сжатие, перетряхивает базу полностью, поэтому обнаруживает повреждение и отказывается работать.

Quote
Как проверить базу на ошибки и дупы? В этой версии это возможно вообще?
Нет, это невозможно, да и проверять там попросту нечего, к тому же, в следующей версии появятся идентификаторы у всех событий в базе, что сделает появление дупов невозможным. На текущий момент, все проблемы, с которыми сталкиваются пользователи - из-за 0.95.8. Это следствие того, что в прошлой стабле использовалась libmdbx 0.9, а в ней были кое-какие проблемы. В новой стабле используется libmdbx 1.0, которая намного "прочнее".
 

Offline lokapal

Re: Помогите восстановить профиль
« Reply #11 on: 09 09 2018, 21:58:06 »
Короче, всё ясно, остаёмся на 0.95.7 на ближайший год (или на несколько, пока SkypeWeb старый работает), можно расходиться  8)
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #12 on: 09 09 2018, 22:00:18 »
Бекапер, как и сжатие, перетряхивает базу полностью, поэтому обнаруживает повреждение и отказывается работать.

Если бы. Он, вместо того чтобы выдать ошибку с соотв. сообщением, просто убивает базу. В таких случаях надо всегда делать резервную копию, автоматом!

P.S. А почему файл базы стал нечитабельным? У меня из-за этого бекап работать перестал!

P.P.S. И вот еще такая идея. FF хранит почти всю важную инфу в .sqlite - может, стоит и вам перейти на этот формат?
Он достаточно вылизан, стандартен, его понимает куча прог и он у меня еще ни разу не убивался.
« Last Edit: 10 09 2018, 07:37:15 by Fornit »
 

Offline unsane

Re: Помогите восстановить профиль
« Reply #13 on: 10 09 2018, 10:35:15 »
P.P.S. И вот еще такая идея. FF хранит почти всю важную инфу в .sqlite - может, стоит и вам перейти на этот формат?
Он достаточно вылизан, стандартен, его понимает куча прог и он у меня еще ни разу не убивался.
И невероятно медленный. Я на выходных набросал драйвер бд на sqlite на основе плагина dbrw из miranda im, тормозит он сильно. Если получится допиннать его до более-менее приемлемых результатов, то залью в мастер.
Si no estas con nosotros, estas contra nosotros.
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #14 on: 10 09 2018, 11:17:13 »
Он, вместо того чтобы выдать ошибку с соотв. сообщением, просто убивает базу.
Насчёт сообщения надо подумать.

Quote
А почему файл базы стал нечитабельным?
Потому что попытка дёрнуть базу из-под запущенной Миранды заведомо провальна. В libmdbx есть специальные функции, которые гарантируют, что при их вызове база будет готова для копирования.
Есть бекапер, он обучен правильно дёргать базу, он делает бекапы, бекапы можно копировать куда угодно и чем угодно.