Sqlite3 exec failed database disk image is malformed db ошибка 1с
Проблема : На торговой точке при попытке запуска 1С появляется страшная и пугающая ошибка:
Ошибка : "sqlite3_exec failed: database disk image is malformed
db: C:\Bases\Main\1Cv8Log\1Cv8.lgd
sql: PRAGMA journal_mode = delete"
Решение проблемы : Чисто теоретически можно получить данные, нажав на "Показать информацию для технической поддержки". Но скорее всего там вы в дополнение к уже известным сведениям на незнакомом английском языке получите нечто в стиле: "Невосстановимая ошибка. Ошибка при выполнении запроса POST к ресурсу /e1cib/login" .
Вообще я уже заметил по своему опыту работы, что если продавцы или работники магазина ошибки на русском более-менее могут озвучить, то английский - это просто полный караул. Вот тут и появляется демонстрация того, что учителя иностранного в школах не дорабатывают! (шутка, конечно, учителя - не злитесь, если вдруг читаете).
В общем, что тут есть. База данных 1С имеет свой каталог. В котором и хранится. В частности, на торговой точке база данных хранится в каталоге: C:\Bases\Main\ и имеет наименование 1Cv8.1CD . Но все сведения и действия с базой данных сохраняются программой в другом файле. то так называемая "история". То есть если вдруг захочется посмотреть, что делал конкретный пользователь с базой данных (это если вдруг какой-то косяк или кто-то злонамеренно "нахимичил" - тогда очень полезная штука). Хранится данный файл в другом месте. C:\Bases\Main\1Cv8Log\ и называется как раз 1Cv8.lgd . 1С сама создаёт файл во внутренней дирректории. Если нет папки, то создаст и папку.
Ошибка, что появилась при запуске, говорит о том, что по какой-то причине (чаще всего - внезапное отключение питания, скачок электроэнергии) была нарушена работа жёсткого диска. И получились сбойные сектора (либо же при отключении записывалась информация в БД истории). И потому теперь 1С не может даже прочитать информацию о том, про каких пользователей забита информация.
Конечно, можно попробовать проверить файл. В частности, может помочь видоизменённая утилита chdbfl.exe. Изначально просто она проверяет только файл-базы данных 1CD. Однако в этим, как мне кажется, не стоит сильно заморачиваться. Я в подобных ситуациях просто удаляю файл истории. К сожалению, данные о том, кто что делал за все предыдущее время работы, не сохранятся. Но они далеко не всегда и нужны.
То есть: нужно зайти непосредственно через проводник и удалить C:\Bases\Main\1Cv8Log\1Cv8.lgd
Описание ошибки:
Ошибка формата файла журнала регистрации по причине: sqlite3_step failed: database disk image is malformed db: \\192.168.1.111\FileServer\ \1Cv8Log\1Cv8.lgd Ошибка формата файла журнала регистрации в 1С: Предприятие 8. Может возникнуть в любой конфигурации, на любом релизе платформы.
Ошибка может возникнуть в любой момент, для любой операции в базе данных. Из-за ошибки станет не возможным открыть список журнала в режиме 1С:Предприятие. Каждая попытка будет заканчиваться одной и той же ошибкой.
Второй вариант проще и быстрее, но не значит, что он лучше. У каждого из вариантов свои плюсы и минусы. Так вот у второго варианта из плюсов - это его быстрота и простота, а из минусов - данные журнала регистрации будут утрачены. Но, кто-то из специалистов допускает данные вариант в силу его быстроты, когда необходимо вернуть работоспособность базы, если ошибка возникает не только в процессе попытки доступа к журналу регистрации. Надо понимать, какие данные хранятся в журнале регистрации, чтобы оценить критичность их потери в текущей ситуации. В общем случае журнал содержит информацию о базовых действиях пользователей базы: когда пользователь запускал/завершал сеансы работы с базой, основные действия с справочниками и документами базы (создание, изменение, сохранение, проведение, пометка на удаление и т.п.). Если можно отметить, что данные журнала регистрации для отслеживания активности пользователей и оценки их действий практически не используются, то и содержимым журнала с данными до текущего момента можно пожертвовать. Тем более, что после данной операции журнал будет пополняться новыми записями в рабочем режиме, будет создана его новый файл.
Итак, чтобы удалить файл журнала регистрации, необходимо перейти к каталогу, где он содержится. Текст ошибки может подсказать местонахождение файла журнала регистрации 1Cv8.lgd.
В текущем примере демонстрируется работа по удалению файла журнала регистрации файловой базы. Переходим в проводнике к содержимому каталога.
Удаляем файл журнала регистрации 1Cv8.lgd.
Остается дать окончательное согласие на удаление файла.
Если с базой работают пользователи, то небходимо завершить их работу, т.к. даже поврежденный файл журнала регистрации 1Cv8.lgd невозможно будет удалить.
Информация о произошедших событиях хранится в информационной базе 1С Предприятия (ИБ). Ошибки, фоновые, регламентные задания, действия пользователей записываются в журнал регистрации 1С 8.3 (ЖР). С течением времени количество записей в журнал регистрации 1С 8.3 растет, т.к. в него записывается каждая произведенная операция (чем больше база, количество пользователей, регламентных заданий, тем быстрее будет расти журнал регистрации 1С 8.3).
Перед любыми манипуляциями с журналом регистрации обязательно нужно сохранить файл, в котором он хранится.
ЖР хранится вне информационной базы и имеет два вида: старый и новый. В случае использования нового формата *.lgd нужно удалять файл 1С полностью и потерять записи ЖР, так как все данные хранятся в одном документе. Рекомендуется использовать старый формат *.lgf – для контроля, разделения по периодам и своевременного удаления устаревших данных.
В некоторых случаях антивирусные программы влияют на ошибки при открытии журнала регистрации, поэтому их необходимо отключить.
2. Очистка временных файлов и подключение команды ClearCache
Следующим шагом будет очистка временных файлов в папке temp, и включение команды ClearCache в настройках подключения базы.
Если база файловая и расположена на локальном диске, то стоит проверить управление квотами и увеличить место для записей.
3. Причины ошибки в журнале регистрации 1С 8.3 при открытии
Если возникла ошибка в журнале регистрации при открытии (или другие ошибки, связанные с sqlite):
sqlite3_step failed: database disk image is malformed
…то ее причиной могут быть повреждения данных в файле ЖР.
17:14.504002-0,EXCP,0,process=rmngr,Exception=EventLogException,Descr='sqlite3_exec failed: database disk image is malformed
Для ее устранения необходимо скачать утилиту командной строки sqlite. В первую очередь нужно остановить службу "Агент сервера 1С" (предварительно попросить всех пользователей завершить работу, т.к. сеансы автоматически завершатся, и может произойти потеря данных).
Далее копируем поврежденный файл 1Cv8.lgd в отдельную папку (например, «C:\Log») и распаковываем в нее скачанный архив с утилитой командной строки sqlite.
В командной строке переходим в «C:\Log» и выполняем команду: sqlite3 1Cv8.lgd .dump >> backup.sql .
Далее выполняем команду: sqlite3 1Cv8.lgd < backup.sql.
Открываем ранее скопированный файл «1Сv8.lgd» в конфигураторе новой чистой файловой базы, проверяем целостность ЖР.
На последнем этапе заменяем оригинальный файл скопированным в исходной папке.
Информация о произошедших событиях хранится в информационной базе 1С Предприятия (ИБ). Ошибки, фоновые, регламентные задания, действия пользователей записываются в журнал регистрации 1С 8.3 (ЖР). С течением времени количество записей в журнал регистрации 1С 8.3 растет, т.к. в него записывается каждая произведенная операция (чем больше база, количество пользователей, регламентных заданий, тем быстрее будет расти журнал регистрации 1С 8.3).
Перед любыми манипуляциями с журналом регистрации обязательно нужно сохранить файл, в котором он хранится.
ЖР хранится вне информационной базы и имеет два вида: старый и новый. В случае использования нового формата *.lgd нужно удалять файл 1С полностью и потерять записи ЖР, так как все данные хранятся в одном документе. Рекомендуется использовать старый формат *.lgf – для контроля, разделения по периодам и своевременного удаления устаревших данных.
В некоторых случаях антивирусные программы влияют на ошибки при открытии журнала регистрации, поэтому их необходимо отключить.
2. Очистка временных файлов и подключение команды ClearCache
Следующим шагом будет очистка временных файлов в папке temp, и включение команды ClearCache в настройках подключения базы.
Если база файловая и расположена на локальном диске, то стоит проверить управление квотами и увеличить место для записей.
3. Причины ошибки в журнале регистрации 1С 8.3 при открытии
Если возникла ошибка в журнале регистрации при открытии (или другие ошибки, связанные с sqlite):
sqlite3_step failed: database disk image is malformed
…то ее причиной могут быть повреждения данных в файле ЖР.
17:14.504002-0,EXCP,0,process=rmngr,Exception=EventLogException,Descr='sqlite3_exec failed: database disk image is malformed
Для ее устранения необходимо скачать утилиту командной строки sqlite. В первую очередь нужно остановить службу "Агент сервера 1С" (предварительно попросить всех пользователей завершить работу, т.к. сеансы автоматически завершатся, и может произойти потеря данных).
Далее копируем поврежденный файл 1Cv8.lgd в отдельную папку (например, «C:\Log») и распаковываем в нее скачанный архив с утилитой командной строки sqlite.
В командной строке переходим в «C:\Log» и выполняем команду: sqlite3 1Cv8.lgd .dump >> backup.sql .
Далее выполняем команду: sqlite3 1Cv8.lgd < backup.sql.
Открываем ранее скопированный файл «1Сv8.lgd» в конфигураторе новой чистой файловой базы, проверяем целостность ЖР.
На последнем этапе заменяем оригинальный файл скопированным в исходной папке.
Читайте также: