gifts2017

Ошибка формата файла журнала регистрации, database disk image is malformed

Опубликовал Алексей Мутовкин (mrWatson) в раздел Администрирование - Журнал регистрации

Ошибка формата файла журнала регистрации
по причине:
sqlite3_step failed: database disk image is malformed
db: C:\Program Files\1cv8\srvinfo\reg_1541\34eda2fe-bcf4-485e-ab47-4f302319f59a\1Cv8Log\1Cv8.lgd
sql: SELECT severity, date, connectID, session, transactionStatus, transactionDate, transactionID, userCode,
computerCode, appCode, eventCode, comment, metadataCodes, sessionDataSplitCode, dataType, data, dataPresentation,
workServerCode, primaryPortCode, secondaryPortCode FROM EventLog WHERE date<3155378867999999 AND eventCode IN (1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42) ORDER BY date DESC
 
 

Разберемся с

Ошибка формата файла журнала регистрации

database disk image is malformed

Текст сообщения :


Ошибка формата файла журнала регистрации
по причине:
sqlite3_step failed: database disk image is malformed
db: C:\Program Files\1cv8\srvinfo\reg_1541\34eda2fe-bcf4-485e-ab47-4f302319f59a\1Cv8Log\1Cv8.lgd
sql: SELECT severity, date, connectID, session, transactionStatus, transactionDate, transactionID, userCode,
computerCode, appCode, eventCode, comment, metadataCodes, sessionDataSplitCode, dataType, data, dataPresentation,
workServerCode, primaryPortCode, secondaryPortCode FROM EventLog WHERE date<3155378867999999 AND eventCode IN (1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42) ORDER BY date DESC

Всё печально. Журнал регистрации убит каким-то системным сбоем.

Узнаем, что начиная с версии платформы 8.3.5.1068 журнал регистрации хранится в одном файле базы данных SQLite. Этот файл имеет расширение lgd. (Подробнее http://v8.1c.ru/o7/201310log/index.htm )

На форумах пишут, что надо выгрузить и загрузить базу данных SQLite, чтоб восстановить её работоспособоность, правда с возможными потерями данных.

Качаем и распаковываем отсюда https://www.sqlite.org/download.html последнюю версию утилиты для вашей ОС.
Мне подошла:
Precompiled Binaries for Windows sqlite-shell-win32-x86-3081101.zip (313.47 KiB)
The command-line shell program (version 3.8.11.1). (sha1: 1640b3608784a36a113d4fcf69681503e4e9cdc3)

Берем наш журнал, путь к нему можно взять из текста сообщения

C:\Program Files\1cv8\srvinfo\reg_1541\34eda2fe-bcf4-485e-ab47-4f302319f59a\1Cv8Log\1Cv8.lgd

и копируем в папку с утилитой.

Выполняем команду в командной строке

sqlite3 1Cv8.lgd ".dump" > 1.txt

т.е. делаем дамп базы данных в текстовый файл.
Дождавшись завершения, делаем восстановление командой

sqlite3 new.db ".read 1.txt"

По окончании получаем работоспособную базу журнала в файле new.db
Теперь ее можно положить себе в архив и начать новый журнал регистрации.
Или попробовать вернуть на место испорченного журнала.

Stay backuped

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антон Стеклов (asved.ru) 30.09.15 09:43
При описанном порядке импорт выполняется крайне медленно.

Решение:

sqlite3 <ИмяФайлаДатабазы>
> pragma mmap_size=1073741824;
> pragma cache_size=32768;
> pragma journal_mode=OFF;
> pragma synchronous=OFF;
> .read D:\\db\\file.sql
...Показать Скрыть


2. Виталий Онянов (Tavalik) 30.09.15 11:41
Спасибо за статью.

Но, скажите, пожалуйста:

  • Чем теперь можно прочитать базу из файла new.db?
  • Как вернуть исправленный файл журнала в информационную базу (Как из new.db теперь сделать файл 1Cv8.lgd)?
3. Алексей Мутовкин (mrWatson) 30.09.15 14:00
(2) Tavalik,
для поиска просмотра можно использовать SQLite Database Browser
я дописал в основной статье http://1csoft.com/content/oshibka-formata-fajla-zhurnala-registratsii-database-disk-image-malformed

а если хотите вернуть на место, то аккуратно останавливаете сервер 1С, переименовываете new.db в 1cv8.lgd и записываете поверх старого.
4. Дмитрий Ивакин (pit201201) 10.11.15 16:20
Не статья, а спасательный круг!
5. pila86 pila86 (pila86) 25.11.15 08:34
6. Иван Иванов (rail21111991) 19.12.15 18:43
(3) mrWatson, а как записать поверх старого 1cv8.lgd новый файл new.db?Просто переименованием не помогло...
7. Алексей Мутовкин (mrWatson) 21.12.15 10:11
(6) rail21111991,
вы остановили сервер приложений и т.д.? я, честно говоря, не пробовал такое делать.
какие проблемы возникли? файл открывается в конфигураторе на просмотр(с расширением lgd)?
8. Дмитрий Воробьев (vde69) 12.01.16 19:41
при работе через дамп (как в сабже) у меня получились кракозябры в колонках "данные" и "представление"

а вот

sqlite3 1Cv8.lgd ".clone new.db"


сработало как надо (и быстрее и меньше места нужно, 2 гига примерно 1 минуту делал).

но все равно автору спасибо!!!
Lem0n; Enyel; Sley; Sherlock_kmw; teflon; invertercant; djam_arttek; vasilnikol; +8 Ответить 1
9. Сергей Жемойтель (djam_arttek) 15.01.16 06:38
(8) vde69, спасибо, это работает
10. Андрей Б (bandru) 12.02.16 10:27
11. Дмитрий Тихонов (tdml) 23.03.16 04:59
(10) Тоже прочитал ИТС инструкцию, но при выполнении второй команды "sqlite3 1Cv8.lgd < backup.sql" всё делалось ужасно долго. Автор данной статьи как раз правильно написал команду "sqlite3 new.db ".read 1.txt"", т.е. не в тот же файл восстанавливать, а в новый. У меня в журнале примерно +100 млн. записей, за сутки отработало примерно 22 млн, если делать по ИТС инструкции. Эти тормоза, я так понял, из-за вывода ошибок на экран - из инструкции:"При этом могут выводиться ошибки. Это нормально.". Прервал вывод и сделал вывод как автор указал, типа "sqlite3 1Cv8_new.lgd < backup.sql", отработало где-то минут за 45-50. Потом также подложил журнал на прежнее место и запустил службу сервера 1С, вроде всё заработало.
12. Мухтар (makfromkz) 29.06.16 07:03
Спасибо!
Статья помогла зафиксить ошибку
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа