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

0 Members and 3 Guests are viewing this topic.

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #15 on: 10 09 2018, 11:20:15 »
Code: [Select]
sqliteЭто рассматривалось при выборе нового формата. Не вариант, очень медленно, профили с сотнями контактов просто встают колом. Одним из требований к новому формату было не ухудшить скорость работы на огромных профилях.
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #16 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?
« Last Edit: 14 10 2018, 20:33:14 by Fornit »
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #17 on: 14 10 2018, 20:32:38 »
Quote
При выборе в диалоге при импорте import.dll - все виснет и дохнет.
Если ничего не выбрать или выбрать CrashDump.dll - все импортируется нормально. Это что?
Выбор dll доступен только в сервисном режиме? Вы в сервисном режиме запускали импорт?
Достаточно куда-нибудь переместить всю папку профиля и запустить Миранду штатно. Не найдя профиль она предложит создать новый. После создания Миранда запускается с этим профилем (т.е, появляется окно списка контактов), тут всплывает импорт и предлагает импортировать. Сервисный режим и выбор dll не требуется.

Кстати, теперь есть ещё один способ восстановления повреждённых баз.


Quote
Как устанавливать имя файла для бэкапа?
Это пока не предусмотрено.
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #18 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
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #19 on: 14 10 2018, 20:40:36 »
А, вот оно где. Там не должно быть выбрано ничего. Если что-то выбрано, то это запуск в сервисном режиме, который в этом случае не нужен.
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #20 on: 14 10 2018, 20:41:41 »
Ну вот, когда я выбрал CrashDumper.dll или ничего, все потом нормально.
А зачем нужен этот диалог и почему при этом импорт виснет?
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #21 on: 14 10 2018, 20:43:01 »
Он нужен для запуска Миранды в сервисном режиме. Для случаев, например, когда надо запустить только ядро и редактор базы (чтобы что-то поменять до загрузки плагинов), и всё, никакие другие плагины в сервисном режиме не будут загружены.

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

Импорт виснет... а кто его знает. Погоняю его, спасибо, что напомнили.
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #22 on: 14 10 2018, 20:50:12 »
А дупы сообщений в ВК?
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #23 on: 14 10 2018, 20:52:37 »
Старая "повреждённая" база ещё сохранилась?
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #24 on: 14 10 2018, 21:02:32 »
Если сохранилась и VK-контактов не очень много, тогда можно взять, скажем, текущую стабильную версию в отдельной папке, запустить её с "повреждённой" базой, установить плагин Msg_Export и экспортировать поконтактно историю VK-контактов в формат JSON.

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

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

Всё это лучше делать на стабильной версии 0.95.9.1, поскольку в девелоперской сейчас идёт внедрение идентификаторов сообщений и лучше держать мух и котлеты отдельно (в смысле, чтобы на существующую проблему с дубликатами не накладывались ещё возможные глюки девелоперской версии).
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #25 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 из этого контента делает новую базу.
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #26 on: 14 10 2018, 21:18:00 »
Кстати, теперь есть и драйвер базы dbx_sqlite, правда, экспериментальный и медленный. Стабильность-то придёт со временем, а вот скорость - нет. Но если кто-то хочет терпеть по 20 секунд, пока подгрузятся 100 тысяч событий истории... пожалуйста.
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #27 on: 14 10 2018, 21:20:10 »
А куда Миранда копирует временный бэкап базы, перед тем как сохранить ее в zip?
 

Offline dartraiden

Re: Помогите восстановить профиль
« Reply #28 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
 

Offline Fornit

Re: Помогите восстановить профиль
« Reply #29 on: 14 10 2018, 21:57:30 »
Ага, вижу. Только они нифига не стерлись почему-то.
У меня вся переписка - почта, база аськи и т.д. - хранится на шифрованном диске, а тут такая дыра в безопасности.  >:(