Sqlite3 exec failed database disk image is malformed db ошибка 1с

Проекты и консалтинг. Внедрение и доработка. Сопровождение 1С. Обучение.

Содержание:

1.       Где хранится информация о событиях в информационной базе 1С Предприятия?

2.       Очистка временных файлов и подключение команды ClearCache

3.       Причины ошибки в журнале регистрации 1С 8.3 при открытии 

1.    Где хранится информация о событиях в информационной базе 1С Предприятия?

Информация о произошедших событиях хранится в информационной базе 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

db: C:bd1Cv8Log1Cv8.lgd

…то ее причиной могут быть повреждения данных в файле ЖР.

17:14.504002-0,EXCP,0,process=rmngr,Exception=EventLogException,Descr=’sqlite3_exec failed: database disk image is malformed

db: C:Program Files1cv8srvinforeg_154150b80b42-24a3-4f33-8508-5672acb806211Cv8Log1Cv8.lgd sql: PRAGMA journal_mode = OFF’                                                                                                                              

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

Далее копируем поврежденный файл 1Cv8.lgd в отдельную папку (например, «C:Log») и распаковываем в нее скачанный архив с утилитой командной строки sqlite.

В командной строке переходим в «C:Log» и выполняем команду: sqlite3 1Cv8.lgd .dump >> backup.sql .

В текстовом редакторе открываем файл backup.sql и заменяем последнюю строку «ROLLBACK;» на «COMMIT;», переименовываем ранее скопированный файл «1Сv8.lgd» в «1Cv8-orig.lgd».

Далее выполняем команду: sqlite3 1Cv8.lgd < backup.sql.

Открываем ранее скопированный файл «1Сv8.lgd» в конфигураторе новой чистой файловой базы, проверяем целостность ЖР.

На последнем этапе заменяем оригинальный файл скопированным в исходной папке.

Специалист компании ООО «Кодерлайн»

Шашков Дмитрий Геннадьевич

Описание ошибки:
Ошибка формата файла журнала регистрации
по причине:
sqlite3_step failed: database disk image is malformed
db: \192.168.1.111FileServer<каталог>1Cv8Log1Cv8.lgd
Ошибка формата файла журнала регистрации в 1С: Предприятие 8. Может возникнуть в любой конфигурации, на любом релизе платформы.

Найденные решения:

Ошибка может возникнуть в любой момент, для любой операции в базе данных. Из-за ошибки станет не возможным открыть список журнала в режиме 1С:Предприятие. Каждая попытка будет заканчиваться одной и той же ошибкой.

1C 8 Ошибка формата файла журнала регистрации по причине: sqlite3_step failed: database disk image is malformed

В этот момент возникает два варианта развития событий. Первый заключается в том, чтобы восстановить, исправить файл журнала регистрации с помощью соответствующей программы sqlite3. Но этот процесс может оказаться не таким быстрым, как его описывают в соответствующих публикациях. Не будем пересказывать содержание методики, оставив лишь для первого варианта полезные ссылки: Ошибка формата файла журнала регистрации, database disk image is malformed в обсуждении на форуме infostart.ru или Восстановление журнала регистрации на сайте ИТС 1С. Это был первый вариант.

Второй вариант проще и быстрее, но не значит, что он лучше. У каждого из вариантов свои плюсы и минусы. Так вот у второго варианта из плюсов — это его быстрота и простота, а из минусов — данные журнала регистрации будут утрачены. Но, кто-то из специалистов допускает данные вариант в силу его быстроты, когда необходимо вернуть работоспособность базы, если ошибка возникает не только в процессе попытки доступа к журналу регистрации. Надо понимать, какие данные хранятся в журнале регистрации, чтобы оценить критичность их потери в текущей ситуации. В общем случае журнал содержит информацию о базовых действиях пользователей базы: когда пользователь запускал/завершал сеансы работы с базой, основные действия с справочниками и документами базы (создание, изменение, сохранение, проведение, пометка на удаление и т.п.). Если можно отметить, что данные журнала регистрации для отслеживания активности пользователей и оценки их действий практически не используются, то и содержимым журнала с данными до текущего момента можно пожертвовать. Тем более, что после данной операции журнал будет пополняться новыми записями в рабочем режиме, будет создана его новый файл.

Итак, чтобы удалить файл журнала регистрации, необходимо перейти к каталогу, где он содержится. Текст ошибки может подсказать местонахождение файла журнала регистрации 1Cv8.lgd.

1C 8 как удалить файл журнала регистрации 1Cv8.lgd

 В текущем примере демонстрируется работа по удалению файла журнала регистрации файловой базы. Переходим в проводнике к содержимому каталога.

1C 8 пример размещения файла журнала регистрации в папке базы

Удаляем файл журнала регистрации 1Cv8.lgd.

1С 8 как быстро исправить, устранить ошибку Ошибка формата файла журнала регистрации по причине: sqlite3_step failed: database disk image is malformed

Остается дать окончательное согласие на удаление файла.

1С 8 файл журнала регистрации 1Cv8.lgd файловой базы

Если с базой работают пользователи, то небходимо завершить их работу, т.к. даже поврежденный файл журнала регистрации 1Cv8.lgd невозможно будет удалить.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

10-03-2021

Журавлев А.С.
(Сайт azhur-c.ru)

Я
   Lama12

12.10.15 — 13:54

Столкнулись с неприятной «фичей» новой платформы.

При попытке выгрузить журнал регистрации, он в исходном месте так раздулся, что сожрал все место на диске. Естественно работать с базой стало не возможно.

Что сделали.

Перенесли папку с журналом в новое место.

Запустили базу снова.

Начал писать ся новый журнал.

При попытке прочитать старый журнал выдается сообщение:

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

по причине:

sqlite3_exec failed: database disk image is malformed

db: D:Log_devdebreg_2041da905966-250b-4dfc-97df-da05638e3fab1Cv8Log1Cv8.lgd

sql: PRAGMA journal_mode = OFF

Как с этим можно побороться? Ведь все что нажито непосильным трудом… за последние 9 месяцев… так и не родилось… :)

   Лефмихалыч

1 — 12.10.15 — 14:01

подозреваю, что мистец котенку

гуглить «database disk image is malformed » пробовал?

   Lama12

2 — 12.10.15 — 14:03

(1) Пробовал. Есть предложение сделать какой-то дамп. Но все делается под линуксами. Написано что командная строка sqlite 3 нормально под виндой не работает. Свой специалист по линуксам в отпуске. Так что ищу альтернативные варианты.

   Лефмихалыч

3 — 12.10.15 — 14:06

(2) ты попробовал что-то и оно не получилось или ни чего не пробовал?

   Живой Ископаемый

4 — 12.10.15 — 14:09

«Что сделали.

Перенесли папку с журналом в новое место. »

Надо было использовать из СП:

СкопироватьЖурналРегистрации

ОчиститьЖурналРегистрации

   Lama12

5 — 12.10.15 — 14:15

(3) Еще не пробовал. Вот эта статья — http://itsphera.ru/1c/vosstanovlenie-fajla-baz-dannyx-sqlite.html

(4) Все ходы записаны. Сейчас попробую на копии.

   Lama12

6 — 12.10.15 — 14:44

(4) Yt получается. Тоже сообщение.

А вот дамп, вроде делается. Долго… О результатах сообщу. Вдруг кому будет полезно.

  

Lama12

7 — 13.10.15 — 09:10

Все получилось. Лог востановился и работает.

Порядок решения проблемы.

Работа ведется в командной строке.

Установить текущей папкой ту, в которой расположена база данных. Туда же поместить sqlite3 command line.

Выполнить команду sqlite3 main.db .dump>>myDumpSQLite.sql

Где main.db — файл поврежденного лога.

В результате в текущей папке получится файл myDumpSQLite.sql.

В принципе, можно его посмотреть. Это текстовый файл.

После получения файла выполнить команду sqlite3 main-recovered.db <myDumpSQLite.sql

В результате получаем файл main-recovered.db — это и есть восстановленный лог. Переименовываем его для удобства 1С и все. В принципе можно и так читать любым просмоторщиком sqlite.

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Введение

Новый формат журнала регистрации был реализован в платформе «1С:Предприятие 8» в версии 8.3.5.1068. Начиная с этой версии при создании новой информационной базы журнал регистрации будет храниться в одном файле базы данных SQLite с расширением .lgd, который располагается:

  • Для файлового варианта информационной базы — в подкаталоге 1Cv8Log каталога информационной базы.
  • Для клиент‑серверного варианта информационной базы – в подкаталоге 1Cv8Log каталога информационной базы в каталоге служебных файлов кластера. Имя каталога можно определить по файлу реестра данных кластера.

Целью переработки журнала регистрации и перевода его в новый формат было увеличение скорости выполнения запросов к нему и повышение надежности хранения данных. Новость об этом была размещена на официальном ресурсе фирмы 1С. Обновление платформы до версии 8.3.5.1068 и выше не приводит к автоматическому переводу журнала регистрации в новый формат у уже созданных информационных баз. Но при этом имеется возможность смены формата на новый штатными средствами платформы. Для этого следует открыть диалог настройки журнала регистрации (Главное меню –> Администрирование –> Настройка журнала регистрации) и нажать кнопку «Новый формат».

Переключение журнала регистраций_1.png

Проблемы при работе с новым форматом журнала регистрации

При работе с новым форматом журнала регистрации иногда возникает ряд проблем, которые могут оказаться критичными для стабильной работы пользователей в системе. Приведем ниже типичные проблемы, а также сообщения об ошибках и записи технологического журнала, которые возникают при работе с новым форматом журнала регистрации. Причины данных ошибок мы расследовали в ходе работ по поддержке наших клиентов.

Итак, одна из проблем возникает после перезапуска кластера серверов или аварийного завершения работы менеджера кластера. При этом возможно разрушение структуры файла журнала регистрации .lgd. При попытке открыть такой журнал регистрации происходит ошибка:

sqlite3_step failed: database disk image is malformed

Также иногда можно заметить проявление следующей ошибки при попытке в конфигураторе открыть файл журнала регистрации нового формата:

sqlite3_exec failed: attempt to write a readonly database

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

0,EXCP,1,process=rmngr,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Exception=81029657-3fe6-4cd6-80c0-36de78fe6657,Descr=’srcRemoteInterfaceImpl.cpp(963):

81029657-3fe6-4cd6-80c0-36de78fe6657: Передача данных прервана по инициативе принимающей стороны.’

Данная строка ТЖ говорит о том, что процесс rmngr центрального сервера не отвечает, так как занят работой с журналом регистрации. И далее в технологическом журнале можно видеть следующие записи:

0,EXCP,0,process=rmngr,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,Exception=81029657-3fe6-4cd6-80c0-36de78fe6657, Descr=’srcRMngrCalls.cpp(549):

81029657-3fe6-4cd6-80c0-36de78fe6657:server_addr=tcp://[сервер]:[порт] descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=1073 file=srcDataExchangeTcpClientImpl.cpp’

Помимо этого, достаточно часто возникает проблема с высоким потреблением памяти журналом регистрации в новом формате. Данное поведение проявляется, например, если кто‑то из пользователей случайно запустит выборку по ЖР без ограничения по периоду. При этом весь журнал регистрации попадет в память, вытеснит весь кэш и «положит» сервер.

Данные проблемы являются достаточно критичными и при их проявлении рекомендуется перевести журнал регистрации в старый формат.

Перевод журнала регистрации в старый формат

Штатные средства платформы 1С не позволяют перевести журнал регистрации из нового формата в старый. Здесь мы опишем способ, который позволит выполнить данную задачу вручную. Итак, для начала необходимо остановить службу 1С. При этом, необходимо согласовать данное действие с пользователями, так как при этом они не смогут работать с информационными базами, которые находятся в соответствующих кластерах 1С.

Переключение журнала регистраций_2.png

После того как служба 1С остановлена, переходим в каталог файлов информационной базы для которой необходимо изменить формат журнала регистрации. Данный каталог выглядит следующим образом:

…1cv8[каталог служебных файлов службы 1С, обычно srvinfo]reg_ + [номер порта менеджера кластера][UUID информационной базы]

Уникальный идентификатор информационной базы (UUID) можно получить из файла «1CV8Clst.lst», который располагается в каталоге реестра кластера. Для быстрого получения идентификаторов баз и их имен из файла реестра кластера можно воспользоваться следующим регулярным выражением:

{(w{8}-.*w{12}),»(.*?)»,.*[\r]*n+.*»,d+}

Далее в каталоге файлов информационной базы ищем папку «1Cv8Log» и переносим оттуда все файлы в отдельный каталог. Затем в папке «1Cv8Log» создаем пустой файл журнала регистрации в старом формате «1Cv8.lgf».

После того, как все этапы данной процедуры выполнены, запускаем службу 1С. Готово, теперь журнал регистрации переведен в старый формат. Чтобы обратно вернуться к новому формату ЖР воспользуйтесь инструкцией, описанной во введении данной статьи.

Заключение

В статье мы постарались описать возможные проблемы при работе с новым форматом журнала регистрации. Такие проблемы чаще всего возникают на предприятиях с большим числом пользователей 1С. Далее мы описали способ перехода с нового формата на старый. Это может быть полезно, так как на данный момент не существует стандартных средств, предоставляемых платформой 1С, которые бы позволили это сделать.

Надеемся, вы сможете с легкостью выполнить нужную вам задачу и продолжите с удовольствием пользоваться продуктами 1С. Ну а если у вас что‑то не получится, или вы столкнетесь с какими‑то трудностями, обращайтесь к нам, мы обязательно поможем!

Понравилась статья? Поделить с друзьями:
  • Sqlite3 error code
  • Sql syntax error near declare
  • Sqlite3 database error database disk image is malformed
  • Sql syntax error encountered
  • Sqlite как изменить тип данных столбца