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


Ошибка формата файла журнала регистрации
по причине:
sqlite3_step failed: database disk image is malformed
db: C:Program Files1cv8srvinfo
eg_154134eda2fe-bcf4-485e-ab47-4f302319f59a1Cv8Log1Cv8.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 Files1cv8srvinfo
eg_154134eda2fe-bcf4-485e-ab47-4f302319f59a1Cv8Log1Cv8.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 Files1cv8srvinfo
eg_154134eda2fe-bcf4-485e-ab47-4f302319f59a1Cv8Log1Cv8.lgd

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

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

sqlite3 1Cv8.lgd «.dump» > 1.txt

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

sqlite3 new.db «.read 1.txt»

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

Stay backuped

 

29 Comments

  1. asved.ru

    При описанном порядке импорт выполняется крайне медленно.

    Решение:

    sqlite3 <ИмяФайлаДатабазы>
    > pragma mmap_size=1073741824;
    > pragma cache_size=32768;
    > pragma journal_mode=OFF;
    > pragma synchronous=OFF;
    > .read D:\db\file.sql
    Reply
  2. Tavalik

    Спасибо за статью.

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

    • Чем теперь можно прочитать базу из файла new.db?
    • Как вернуть исправленный файл журнала в информационную базу (Как из new.db теперь сделать файл 1Cv8.lgd)?
    Reply
  3. mrWatson

    (2) Tavalik,

    для поиска просмотра можно использовать SQLite Database Browser

    я дописал в основной статье http://1csoft.com/content/oshibka-formata-fajla-zhurnala-registratsii-database-disk-image-malformed

    а если хотите вернуть на место, то аккуратно останавливаете сервер 1С, переименовываете new.db в 1cv8.lgd и записываете поверх старого.

    Reply
  4. pit201201

    Не статья, а спасательный круг!

    Reply
  5. pila86

    Спасибо, помогло.

    Reply
  6. rail21111991

    (3) а как записать поверх старого 1cv8.lgd новый файл new.db?Просто переименованием не помогло…

    Reply
  7. mrWatson

    (6) rail21111991,

    вы остановили сервер приложений и т.д.? я, честно говоря, не пробовал такое делать.

    какие проблемы возникли? файл открывается в конфигураторе на просмотр(с расширением lgd)?

    Reply
  8. vde69

    при работе через дамп (как в сабже) у меня получились кракозябры в колонках «данные» и «представление»

    а вот

    sqlite3 1Cv8.lgd «.clone new.db»

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

    но все равно автору спасибо!!!

    Reply
  9. djam_arttek

    (8) vde69, спасибо, это работает

    Reply
  10. bandru

    http://its.1c.ru/db/metod8dev#content:5867:hdoc на ИТС неплохо описано

    Reply
  11. tdml

    (10) Тоже прочитал ИТС инструкцию, но при выполнении второй команды «sqlite3 1Cv8.lgd < backup.sql» всё делалось ужасно долго. Автор данной статьи как раз правильно написал команду «sqlite3 new.db «.read 1.txt»», т.е. не в тот же файл восстанавливать, а в новый. У меня в журнале примерно +100 млн. записей, за сутки отработало примерно 22 млн, если делать по ИТС инструкции. Эти тормоза, я так понял, из-за вывода ошибок на экран — из инструкции:»При этом могут выводиться ошибки. Это нормально.». Прервал вывод и сделал вывод как автор указал, типа «sqlite3 1Cv8_new.lgd < backup.sql», отработало где-то минут за 45-50. Потом также подложил журнал на прежнее место и запустил службу сервера 1С, вроде всё заработало.

    Reply
  12. makfromkz

    Спасибо!

    Статья помогла зафиксить ошибку

    Reply
  13. project_21

    Доброго времени суток!

    На сервере 1С несколько баз.

    Не подскажите, как определить, какой лог-файл к какой базе относиться?

    Reply
  14. Andrey92

    (13)

    в папке 1cv8srvinfo
    eg_1541 есть файл 1CV8Clst.lst, там расписано

    Reply
  15. project_21

    Спасибо.

    Reply
  16. fktrc171

    Спасибо! Помогло, но почему-то новый файл с длиной 0

    Reply
  17. mrWatson

    (16) уверены, что помогло? может вы похерили журнал часом?

    Reply
  18. fktrc171

    (17) помогло в смысле , что заработало. А журнал почему-то да , почистился , но все делала , как рекомендовано и ошибок нигде не было.

    Reply
  19. user779544

    У меня почему-то не получается, выдает ошибку Error: near «sqlite3»: syntax error Подскажите как исправить.

    Reply
  20. 27272

    Подскажите, а если выходит ошибка : Ошибка формата файла журнала регистрации

    по причине:

    sqlite3_exec failed: database disk image is malformed

    db: D:1CBaseБГУ21Cv8Log1Cv8.lgd

    sql: PRAGMA journal_mode = delete

    И база файловая. Что делать?

    Reply
  21. djam_arttek

    (20) Не зависимо от того какой вариант базы 1С, файл журнала регистрации 1С в формате sqlite3.

    По всей видимости файл побит. Необходимо его восстановить

    Reply
  22. VadimG83

    Огромное спасибо! Спасли! Всем спасибо и еще раз. Спасибо не только за статью, но и за обсуждение данной проблемы!

    Reply
  23. Johnson1987

    Делал на файловой базе, платформа 8.3

    ввод команд из статьи:

    sqlite3 1Cv8.lgd «.dump» > 1.txt

    sqlite3 new.db «.read 1.txt»

    — вернул new.db с размером 0

    помогла команда

    sqlite3 1Cv8.lgd «.clone new.db»

    Журнал восстановлен, всем спасибо

    Reply
  24. user875140

    Сначала, нужно понять — а нужен ли Вам вообще это файл журнала регистрации!!!

    Как я понял в нем хранятся информация кто из пользователей что и когда делал (проводил/удалял и т.д.) мне он вообще не нужен! — 1 ПК, ИП, конфигурация УНФ. Я просто его удалил, предварительно на всякий случай сохранив конечно. При первом запуске базы пустой файл был создан ей автоматически. Ошибка исчезла. Все данные в базе остались)).

    p.s. у меня эта ошибка вылезла после обновления тех. платформы.

    Reply
  25. user949635

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

    Reply
  26. Созинов

    (24) Даже при монопольном доступе к базе может понадобится журнал регистрации. Если в базе работает несколько пользователей, то тем более нужен. Бывает нужно посмотреть кто обращался к документу (историю объектов накладно по всем объектам хранить) или ошибки выполнения. До инцидента он действительно не нужен, хотя иногда может понадобится для анализа. На крупных проектах желательно и технологический журнал настраивать нормально.

    Reply
  27. user940969

    Журнал размером в 16 Гб восстановлен и отправлен в архив. Спасибо за статью!

    Reply
  28. komanch75

    У меня вообще реакции ноль. Эта консоль во время работы должна как то показывать что она работает?

    Reply
  29. user600004_kloleg

    (28)

    я вообще реакции ноль. Эта консоль во время ра

    файл 1.txt растет?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *