Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: Mur466 on 27 08 2018, 16:25:57

Title: Помогите восстановить профиль
Post by: Mur466 on 27 08 2018, 16:25:57
Сегодня ни с того, ни с сего посреди дня перестала загружаться Miranda NG. Утром работала. Потом обновления windows потребовали перезапуск. После него Miranda ругается на "профиль в неизвестном формате".

Стояла раньше стабильная версия 0.95.8.1
Поставил альфу 0.95.9 , не помогло
В папке профиля лежит сегодняшний crashlog, прилагаю
Title: Re: Помогите восстановить профиль
Post by: ghazan on 27 08 2018, 17:00:04
а на альфе что говорит? там нет этого DebugBreak

бэкап есть?
Title: Re: Помогите восстановить профиль
Post by: Mur466 on 27 08 2018, 17:10:11
Свежего бекапа нет
В папке профиля лежит файл с тем же именем .dat.bak от 1 июня. Но он тоже не открывается. Пробовал его импортировать, но импорт просто падает (прекращена работа программы)
И как-то они не похожи друг на друга в hex-редакторе. Видимо разные форматы, или актуальный профиль совсем испорчен. См. вложения.
Пробовал открыть их оба с помощью содержимого папки "C:\Program Files\Miranda NG\Plugin Updates\Backups" , скопировав их поверх. Тоже не открывает.

Title: Re: Помогите восстановить профиль
Post by: Mur466 on 27 08 2018, 17:25:05
При импорте через альфу, бекап от июня импортируется (ура, хоть что-то!). При импорте актуального профиля пишет "Ошибка загрузки исходного файла, выход"
При попытке войти через альфу в бекап, предлагает сконвертировать в новый формат и успешно это делает. При входе в актуальный профиль пишет  "профиль в неизвестном формате".

Title: Re: Помогите восстановить профиль
Post by: Mur466 on 28 08 2018, 09:48:49
Есть надежда восстановить актуальный профиль с историей сообщений?
Если да, могу его переслать
Title: Re: Помогите восстановить профиль
Post by: ghazan on 28 08 2018, 15:13:12
Есть надежда восстановить актуальный профиль с историей сообщений?
вероятность примерно процентов 20, что можно (например, когда побилась страница ключа, а не сама таблица).
проще переехать на альфу, на самом деле.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 28 08 2018, 18:49:16
Quote
Свежего бекапа нет
@ghazan, нам бы добавить в стаблю автобекапер...
Сейчас он у нас только в ночнике, но ведь положить его в архив с ядром - пара пустяков.
Title: Re: Помогите восстановить профиль
Post by: lokapal on 07 09 2018, 15:09:21
Эм, дорогие разрабочики, может лучше про реактор вернуть режим совместимости со старой базой? Я пользуюсь мирандой (в том числе NG), с, по крайней мере, 2002 года (да, спасибо, я знаю, что столько не живут 8) И всё работает, за это время не было ни одного краха базы (которая чудесно пережила обычную миранду, потом миранду unicode, потом miranda-ng 32, сейчас miranda-ng 64). Это уже очень не первое сообщение о крахе базы по тем или иным причинам. База - по сути единственное, что держит многих на miranda. Я, конечно, отчётливо понимал, что после переезда на новую базу будет ужас-ужас-ужас. Но может, правильнее откатиться назад, не?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 07 09 2018, 15:10:23
Старый формат не предоставляет некоторых функций, требуемых облачным протоколам. Это будет тупик (то есть, Skype, Steam, Facebook и прочие протоколы никогда не смогут работать нормально, потому что им требуется идентификатор сообщений в базе, всегда будут дубли сообщений, потери и т.п., то, что и было на mmap, и от чего мы ушли). Прикрутить это к mmap нельзя.
Кроме того, драйвер базы в 0.95.9 стал существенно стабильнее. Все известные проблемы с базой касаются именно 0.95.8, которая уже в прошлом.
Ну и наконец: теперь у всех установлен автобекапер.

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

Делайте бекапы любой информации, которую вам жалко потерять. Это относится не только к Миранде. Пропадания питания, зависания операционной системы, умершие накопители - никто от этого не застрахован. Очень весело бывает обнаружить, что побился системный том Bitlocker, когда при зависании ОС не успела скинуть кэш на SSD.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 09 09 2018, 11:50:53
А в новом формате можно сделать ту же неубиваемость, которая была в старом?
У меня база с 1998 года. Сегодня Миранда запорола базу в первый раз. Хорошо, ежедневный бэкап есть...
И почему база внезапно так раздулась? Недавно было 118М, а сейчас 332М!

"Сжать базу" убивает ее в ноль. Бекапилка не работает вообще.
Как проверить базу на ошибки и дупы? В этой версии это возможно вообще?
Title: Re: Помогите восстановить профиль
Post by: dartraiden 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, которая намного "прочнее".
Title: Re: Помогите восстановить профиль
Post by: lokapal on 09 09 2018, 21:58:06
Короче, всё ясно, остаёмся на 0.95.7 на ближайший год (или на несколько, пока SkypeWeb старый работает), можно расходиться  8)
Title: Re: Помогите восстановить профиль
Post by: Fornit on 09 09 2018, 22:00:18
Бекапер, как и сжатие, перетряхивает базу полностью, поэтому обнаруживает повреждение и отказывается работать.

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

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

P.P.S. И вот еще такая идея. FF хранит почти всю важную инфу в .sqlite - может, стоит и вам перейти на этот формат?
Он достаточно вылизан, стандартен, его понимает куча прог и он у меня еще ни разу не убивался.
Title: Re: Помогите восстановить профиль
Post by: unsane on 10 09 2018, 10:35:15
P.P.S. И вот еще такая идея. FF хранит почти всю важную инфу в .sqlite - может, стоит и вам перейти на этот формат?
Он достаточно вылизан, стандартен, его понимает куча прог и он у меня еще ни разу не убивался.
И невероятно медленный. Я на выходных набросал драйвер бд на sqlite на основе плагина dbrw из miranda im, тормозит он сильно. Если получится допиннать его до более-менее приемлемых результатов, то залью в мастер.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 10 09 2018, 11:17:13
Он, вместо того чтобы выдать ошибку с соотв. сообщением, просто убивает базу.
Насчёт сообщения надо подумать.

Quote
А почему файл базы стал нечитабельным?
Потому что попытка дёрнуть базу из-под запущенной Миранды заведомо провальна. В libmdbx есть специальные функции, которые гарантируют, что при их вызове база будет готова для копирования.
Есть бекапер, он обучен правильно дёргать базу, он делает бекапы, бекапы можно копировать куда угодно и чем угодно.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 10 09 2018, 11:20:15
Code: [Select]
sqliteЭто рассматривалось при выборе нового формата. Не вариант, очень медленно, профили с сотнями контактов просто встают колом. Одним из требований к новому формату было не ухудшить скорость работы на огромных профилях.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 09:50:18
Спасибо за ответы. Будем посмотреть.

Сделал импорт как вы сказали.
При выборе в диалоге при импорте import.dll - все виснет и дохнет.
Если ничего не выбрать или выбрать CrashDumper.dll - все импортируется нормально. Это что?

Дупы все-таки есть, в ВК.
https://i.imgur.com/AeixgLq.png
https://i.imgur.com/HsHjRsI.png

Размер базы стал нормальный.
167M --> 311M --> 160M

При конверсии пишет, что удалил кучу дупов.
https://i.imgur.com/wIbFkxa.png
Кстати, ошибка GUI - нет скролла по горизонтали и не переносятся длинные строчки, также нельзя скопировать текст рапорта в clipboard и сохранить в файл.

Как устанавливать имя файла для бэкапа?
Допустим, меня
main.dat_2018.10.14@13-27-41_FORNIT-PC.zip
Не устраивает, я хочу, например, backup_001.zip?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 20:32:38
Quote
При выборе в диалоге при импорте import.dll - все виснет и дохнет.
Если ничего не выбрать или выбрать CrashDump.dll - все импортируется нормально. Это что?
Выбор dll доступен только в сервисном режиме? Вы в сервисном режиме запускали импорт?
Достаточно куда-нибудь переместить всю папку профиля и запустить Миранду штатно. Не найдя профиль она предложит создать новый. После создания Миранда запускается с этим профилем (т.е, появляется окно списка контактов), тут всплывает импорт и предлагает импортировать. Сервисный режим и выбор dll не требуется.

Кстати, теперь есть ещё один способ (https://wiki.miranda-ng.org/index.php?title=Plugin:Dbx_mdbx/ru) восстановления повреждённых баз.


Quote
Как устанавливать имя файла для бэкапа?
Это пока не предусмотрено.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 20:39:17
Я просто удалил файл профиля и запустил миранду. Она предлагает такой выбор.
https://i.imgur.com/EU2S1KD.png

И запускается Мастер Импортирования.
https://i.imgur.com/kSUSmo8.png

И жопа:
https://i.imgur.com/Coz6vfl.png
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 20:40:36
А, вот оно где. Там не должно быть выбрано ничего. Если что-то выбрано, то это запуск в сервисном режиме, который в этом случае не нужен.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 20:41:41
Ну вот, когда я выбрал CrashDumper.dll или ничего, все потом нормально.
А зачем нужен этот диалог и почему при этом импорт виснет?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 20:43:01
Он нужен для запуска Миранды в сервисном режиме. Для случаев, например, когда надо запустить только ядро и редактор базы (чтобы что-то поменять до загрузки плагинов), и всё, никакие другие плагины в сервисном режиме не будут загружены.

Возможно стоит этот диалог переделать, например, добавив галку вместо использования пустой строки.

Импорт виснет... а кто его знает. Погоняю его, спасибо, что напомнили.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 20:50:12
А дупы сообщений в ВК?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 20:52:37
Старая "повреждённая" база ещё сохранилась?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 21:02:32
Если сохранилась и VK-контактов не очень много, тогда можно взять, скажем, текущую стабильную версию в отдельной папке, запустить её с "повреждённой" базой, установить плагин Msg_Export и экспортировать поконтактно историю VK-контактов в формат JSON.

Эти файлы легко открываются текстовым редактором и поиском какой-нибудь строки типа "ебусь с Мирандой" можно удостовериться, что дублей там нет.

Если их и правда нет, то дальше текущую стабильную версию запустить уже с "починенной" базой, которую вы получили и описали выше, и для каждого VK-контакта почистить историю и импортировать её из JSON-файла (ПКМ по контакту - Импорт (и галку "проверять дубликаты" поставить на всякий случай)).

Всё это лучше делать на стабильной версии 0.95.9.1, поскольку в девелоперской сейчас идёт внедрение идентификаторов сообщений и лучше держать мух и котлеты отдельно (в смысле, чтобы на существующую проблему с дубликатами не накладывались ещё возможные глюки девелоперской версии).
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 21:12:30
Либо сделать проще, выполнив в папке с последней стабильной версией

mdbx_dump.exe -n -a -f "1.tmp" "полный/путь/к/повреждённой/базе.dat"
mdbx_load.exe -n -f "1.tmp" "new.dat"
del 1.tmp

И заценить базу new.dat, если она устраивает (всё перенеслось и нет дублей VK) - то её и использовать. mdbx_dump пытается вытащить из повреждённой базы максимум возможного во временный файл, а mdbx_load из этого контента делает новую базу.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 21:18:00
Кстати, теперь есть и драйвер базы dbx_sqlite, правда, экспериментальный и медленный. Стабильность-то придёт со временем, а вот скорость - нет. Но если кто-то хочет терпеть по 20 секунд, пока подгрузятся 100 тысяч событий истории... пожалуйста.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 21:20:10
А куда Миранда копирует временный бэкап базы, перед тем как сохранить ее в zip?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 21:29:39
В %TEMP%, вроде как.
Там появляется временный файл, который после упаковки тут же стирается.

Завёл тикеты по всем обнаруженным проблемам и хотелкам

https://github.com/miranda-ng/miranda-ng/issues/1620
https://github.com/miranda-ng/miranda-ng/issues/1621
https://github.com/miranda-ng/miranda-ng/issues/1622
https://github.com/miranda-ng/miranda-ng/issues/1623
https://github.com/miranda-ng/miranda-ng/issues/1624
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 21:57:30
Ага, вижу. Только они нифига не стерлись почему-то.
У меня вся переписка - почта, база аськи и т.д. - хранится на шифрованном диске, а тут такая дыра в безопасности.  >:(
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 22:01:10
Ну, хоть что-то у нас в безопасности (с)

Можно попробовать зашифровать базу (я, правда, не знаю, в каком она там виде скидывается во временный файл)

Хотя, есть мнение, что для mdbx нужно переделывать процедуру шифрования (повторное спасибо за то, что этот топик заставил меня вспомнить про этот комментарий, иначе бы я про него никогда не вспомнил)
https://github.com/miranda-ng/miranda-ng/issues/1230#issuecomment-381980042
с другой стороны, я совершенно не хочу видеть в Миранде ещё и затирание свободного места на диске (вероятно, это должно отдаваться на откуп пользователю)
Title: Re: Помогите восстановить профиль
Post by: Fornit on 14 10 2018, 22:10:53
Ага, при бэкапе временный файл трется, а те файлы, которые я только что удалил, были видимо результаты сбойных конверсий.

А можно сделать так, чтобы Миранда делала этот файл не в %TEMP%, а в том каталоге, куда она складывает бэкапы?
И можно сделать так, чтобы бэкап делался ежедневно в определенное время?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 14 10 2018, 22:52:11
Пока нет.

Единственный вариант сделать так, чтобы в %TEMP% ничего не лезло - отключить сжатие в zip

Quote
И можно сделать так, чтобы бэкап делался ежедневно в определенное время?
В качестве костыля можно добавить в планировщик перезапуск Миранды в нужное время и включить авторезервирование при запуске.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 15 10 2018, 03:38:20
Эх... Надеюсь что бэкапер доделают.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 18 10 2018, 12:38:54
Сделали поддержку переменных в бекапере. Доступны все общепринятые переменные (предоставляемые ядром) + две специфические.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 19 10 2018, 14:41:03
Импорт обзавёлся возможностью изменения размера окна (чтобы строки не обрезались), копирования текста из лога и отдельной галкой для запуска сервисного режима.
Title: Re: Помогите восстановить профиль
Post by: Leshiy on 01 11 2018, 11:30:52
Здравствуйте. Вчера Миранда внезапно отказалась загружать профиль. Ошибок не выдаёт, но профиль видит как совершенно пустой - ни истории, ни контактов, ни настроек. Пробовал загрузить два автобэкапа за день и за два - результат тот же, оба испорчены :( Пытался создать пустой профиль и импортировать туда хоть что-то из этих испорченных баз - на двух ничего внутри не видит, на одном выдаёт "Error loading source file, exiting." Инструменты для восстановления mdbx_dump и mdbx_load тоже не помогли - на одном "восстанавливает" практически пустую базу (180 кб вместо 110 Мб) без контактов, на двух других выдаёт ошибку. Уважаемые разработчики, подскажите - можно с этими файлами хоть что-то сделать, хотя бы частично восстановить? История сообщений за много лет, более ранних бэкапов нет... Версия на момент ошибки была 0.95.10 alpha build #20729, пробовал обновить до build #20879 - результат нулевой.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 05 11 2018, 10:04:20
Бэкапер создает архив main.dat_2018.11.04@17-24-12_FORNIT-PC.zip
Но внутри него файл main.dat имеет время и дату 05/11/18 01:24
Что за фигня?
Title: Re: Помогите восстановить профиль
Post by: ghazan on 05 11 2018, 11:22:48
Fornit, zip запоминает UTC, к нему надо таймзону добавить
Title: Re: Помогите восстановить профиль
Post by: ghazan on 05 11 2018, 11:25:15
Leshiy, можно выложить эти автобэкапы куда-то, ссылку мне мылом на ghazan собака miranda точка im
Title: Re: Помогите восстановить профиль
Post by: Fornit on 06 11 2018, 10:45:28
Fornit, zip запоминает UTC, к нему надо таймзону добавить
И как это сделать практически? У меня распаковывает с кривым временем.

Бэкапилка глючит! У меня в AutoBackups 12 архивов с бэкапами базы, делает каждый день. Все бэкапы 161М (в распакованном виде), а вчерашний - 128М.
Title: Re: Помогите восстановить профиль
Post by: ghazan on 16 11 2018, 12:56:26
Fornit,
И как это сделать практически? У меня распаковывает с кривым временем.
юзать какой-нибудь архиватор с поддержкой UTC? у меня вроде в фар правильно время показывает.

Все бэкапы 161М (в распакованном виде), а вчерашний - 128М.
если есть подозрение на битость, можно засунуть это в fixme.bat и посмотреть, что будет с размером
Title: Re: Помогите восстановить профиль
Post by: Fornit on 17 11 2018, 13:33:28
WinRAR 5.50 - поддерживает UTC и сам хранит в нем.
Видит и соответственно распаковывает кривое время.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 19 11 2018, 10:31:55
В качестве костыля можно добавить в планировщик перезапуск Миранды в нужное время и включить авторезервирование при запуске.

Все гораздо проще. Достаточно один раз запустить Миранду в нужное время - и она сама будет делать ежедневный бекап в это время.
Конечно, включить авто резервирование при запуске.

P.S. Вместо перезапуска Миранды просто ткнул кнопку "Сохранить СЕЙЧАС". Посмотрим, сработает ли.
Однако, стоит сделать бэкап в указанное пользователем время. Если раз в день.
Если раз в неделю - в указанный день недели и время. Если раз в месяц - в указанный день месяца и время...
Ну вы понимаете...

P.S. Сработало. То есть использование этой фичи обнуляет таймер.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 24 11 2018, 12:08:08
WinRAR 5.50 - поддерживает UTC и сам хранит в нем.
Видит и соответственно распаковывает кривое время.
Попробуйте на последнем ночнике — https://github.com/miranda-ng/miranda-ng/commit/0859890fad590ab9be7ec10e594fe17927a7b3f8
Title: Re: Помогите восстановить профиль
Post by: Fornit on 24 11 2018, 23:11:19
А как бинарник найти?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 24 11 2018, 23:12:18
Рекомендуется обновляться через PluginUpdater (https://wiki.miranda-ng.org/Plugin:PluginUpdater/ru) (всю Миранду), потому что каждый билд плагинов гарантированно совместим лишь с ядром от того же билда.

Подсовывание нового бинарника плагина к более старому ядру совершенно не тестируется и, строго говоря, в ряде случаев плагин вообще может не заработать.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 24 11 2018, 23:17:01
OK, сделаем, спасибо.

Вроде работает как надо! Время файла внутри архива совпадает с временем архива.

P.S. А что за main.dat-lck появился?
Title: Re: Помогите восстановить профиль
Post by: Apollo2k4 on 25 11 2018, 13:16:57
А что за main.dat-lck появился?
Это файл «блокировки» базы, побочное от библиотеки которая используется как основа драйвера базы. Его можно удалять, но при каждом запуске он будет появляться.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 26 11 2018, 08:23:03
Его нельзя удалить, он даже не читается.
Кстати, файл main.dat раздуло с 163 577 856 до 313 524 224. За несколько часов. WTF???
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 26 11 2018, 19:33:37
При выключенной Миранде удалить, разумеется.
Title: Re: Помогите восстановить профиль
Post by: ghazan on 26 11 2018, 19:35:27
Fornit,
обычно это результат экспериментов с шифрацией базы. лечится прогоном через fixme.bat (также при выключенной миранде)
Title: Re: Помогите восстановить профиль
Post by: Apollo2k4 on 26 11 2018, 21:29:38
Его нельзя удалить, он даже не читается.
Странно, при выключенной миранде у меня всё удаляется без проблем, если у вас не так возможно стоить проверить раздел chkdsk?
Title: Re: Помогите восстановить профиль
Post by: Fornit on 26 11 2018, 23:49:17
Не, с томом все в порядке, это Миранда держит.  ;D
И я ничего с базой не делал, никакой шифрации не устраивал, она итак находится на зашифрованном томе TrueCrypt.

P.S. Но в бекапе она все равно 163 577 856 bytes.
Title: Re: Помогите восстановить профиль
Post by: lokapal on 04 12 2018, 20:15:52
Джентельмены, боюсь, что я вам ничего нового не скажу, конечно, но на каких движках баз работают другие мультипротольные десктопные менеджеры? pidgin? Adium? А библиотека от Гугла https://github.com/google/leveldb (https://github.com/google/leveldb) чем-то плоха? Потом, я подозреваю, что гуглить вы все умеете уж всяко не хуже меня, и этот список https://bigdata-madesimple.com/a-deep-dive-into-nosql-a-complete-list-of-nosql-databases/ (https://bigdata-madesimple.com/a-deep-dive-into-nosql-a-complete-list-of-nosql-databases/) тоже видели? Я так понимаю, миранде нужен раздел "Key Value / Tuple Store databases". Может, взять готовое оперсорсное решение от крупной конторы типа Google/Amazon или совсем открытое типа BDB от Berkley? Или потом дьявол в деталях реализации? Очень хочется, конечно, иметь внешние проверенные инструменты починки базы.
Title: Re: Помогите восстановить профиль
Post by: ghazan on 09 12 2018, 19:38:38
lokapal,
некоторые вообще на текстовых файлах работают, это не показатель :-)
список видели. к сожалению, из-за некоторых особенностей апи миранды требуется очень быстрая база, иначе всё умирает нахрен, ну т.е. доступ становится совсем медленным. пока ничего, кроме libmdbx, близко по скорости к старому драйверу не лежало, как минимум втрое медленнее
Title: Re: Помогите восстановить профиль
Post by: Fornit on 10 12 2018, 21:45:34
Fornit,
обычно это результат экспериментов с шифрацией базы. лечится прогоном через fixme.bat (также при выключенной миранде)

Не работает. Выдает кучу ошибок.

Code: [Select]
S:\Miranda NG>fixme.cmd

Using profile directory
Backing up ...
mdbx_env_open failed, error 53 The network path was not found.

The filename, directory name, or volume label syntax is incorrect.
The filename, directory name, or volume label syntax is incorrect.
The filename, directory name, or volume label syntax is incorrect.
Operation succeeded

И одно всплывающее окошко с ошибкой 0xc000007b.

(https://i.imgur.com/Y5Yf37h.png)

P.S. Попытался лечить убитый профиль импортом. Нифига - пустой профиль!
P.P.S. pu_stub.exe - что это и зачем?
Title: Re: Помогите восстановить профиль
Post by: Fornit on 10 12 2018, 21:47:00
lokapal,
некоторые вообще на текстовых файлах работают, это не показатель :-)
список видели. к сожалению, из-за некоторых особенностей апи миранды требуется очень быстрая база, иначе всё умирает нахрен, ну т.е. доступ становится совсем медленным. пока ничего, кроме libmdbx, близко по скорости к старому драйверу не лежало, как минимум втрое медленнее

А старый и новый драйвера по скорости одинаковы?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 11 12 2018, 10:00:45
У нас есть sqlite driver для нелюбителей mdbx. Но он пока очень экспериментальный и, возможно, таким и останется.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 11 12 2018, 11:05:55
Я заметил в меню импорта - предлагали два драйвера, один SQLite. Надо было попробовать, наверное.
Title: Re: Помогите восстановить профиль
Post by: Apollo2k4 on 12 12 2018, 09:02:51
P.P.S. pu_stub.exe - что это и зачем?
Для повышения привилегий UAC если допустим миранда установлена в Program Files, а ей нужно обновиться.
Надо было попробовать, наверное
Пробуйте, но имейте ввиду, что у меня миранда очень часто с этим драйвером падала, плюс при выходе процесс миранды остаётся висеть в памяти, после чего новый инстанс миранды ругается на недоступность профиля.
Плюс импорт не сможет из SQLite обратно импортировать сообщения.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 12 12 2018, 22:07:17
А как работать с fixme.cmd, кто-нибудь подскажет?
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 12 12 2018, 22:20:22
Создать рядом с ним папку Profiles, в которую положить папку профиля (внутри которой лежит .dat)
Title: Re: Помогите восстановить профиль
Post by: Fornit on 12 12 2018, 22:37:42
У меня все так - не работает, я уже писал выше.
Title: Re: Помогите восстановить профиль
Post by: dartraiden on 13 12 2018, 12:05:46
А если вручную?

mdbx_dump.exe -n -a -f "%TEMP%\corrupted.tmp" "путь\к\повреждённому.dat"
mdbx_load.exe -n -f "%TEMP%\corrupted.tmp" "путь\куда\сохранить\исправленный.dat"

командный файл делает то же самое, так что, если какая-то из утилит обламывается, он не виноват.
Title: Re: Помогите восстановить профиль
Post by: Fornit on 16 12 2018, 08:44:59
mdbx_load.exe тут же вылетает с ошибкой, я выше написал.
Причем с такой ошибкой, кроме этой, вылетает только одна прога - игра Frostpunk.

P.S.
Попробовал
mdbx_dump.exe -n -a -f "%TEMP%\corrupted.tmp" "путь\к\повреждённому.dat"
Получается фигня.
Исходный файл Main_bad.dat 304 336 896 b
Получился corrupted.tmp 134 587 b