Как исправить ошибку «sqlite3_exec failed: disk I/O error» файла журнала регистрации 1Cv8.lgd в 1С?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с платформой 1С:Предприятие или при попытке выполнить обновление конфигурации многие пользователи сталкиваются с критической ошибкой: Ошибка формата файла журнала регистрации по причине: sqlite3_exec failed: disk I/O error db: C:\...\1Cv8.lgd sql: PRAGMA journal_mode = delete. Разберем эту ситуацию по шагам, выясним причину ее возникновения и рассмотрим подробнее эффективные способы ее решения.

Выясним причины возникновения ошибки

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

  1. Внезапное отключение питания: Если в момент записи логов в базу сервере пропадает электричество (как упоминалось в теме), структура файла 1Cv8.lgd может повредиться.
  2. Высокая нагрузка: SQLite плохо переносит высоконагруженные системы с большим количеством пользователей (от 100 и более). Одновременная запись блокирует базу и вызывает ошибки ввода-вывода.
  3. Сетевые сбои: Если база лежит на сетевом диске, малейшая нестабильность сети в момент транзакции приведет к появлению ошибки disk I/O error.
  4. Антивирусное ПО: Иногда сторонние программы или жесткие политики безопасности блокируют доступ к файлу.

Рассмотрим решение 1: Удаление файла журнала (Быстрый метод)

Если история действий пользователей за предыдущие периоды для вас не критична, самым простым и быстрым способом восстановить работоспособность базы является удаление поврежденного файла. При следующем запуске платформа 1С автоматически создаст новый, чистый файл 1Cv8.lgd.

Разберем по шагам, как это сделать правильно, поскольку пользователи часто жалуются, что файл "не удаляется" или "появляется заново при очистке":

  1. Остановите работу пользователей: Файл блокируется фоновыми процессами платформы. Необходимо, чтобы все пользователи вышли из базы.
  2. Остановите службу сервера 1С: Если у вас клиент-серверный вариант работы, обязательно зайдите в службы Windows и остановите службу Агент сервера 1С:Предприятия.
  3. Удалите файл напрямую: Файл журнала регистрации часто разрастается до огромных размеров (десятки гигабайт) и не помещается в Корзину. Используйте комбинацию клавиш Shift + Delete для безвозвратного удаления файла 1Cv8.lgd. Как альтернатива — вырежьте файл и переместите его в другую директорию на диске.
  4. Проверьте права: Убедитесь, что у пользователя операционной системы, под которым запускается служба 1С (обычно USR1CV8), есть полные права на папку с базой.
  5. Запустите службу: Включите Агент сервера 1С и запустите программу. База должна открыться без ошибок.

Рассмотрим решение 2: Восстановление журнала регистрации (Без потери данных)

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

  1. Остановите службы 1С и скопируйте поврежденный файл 1Cv8.lgd в отдельную резервную папку.
  2. Скачайте и поместите в эту же папку утилиту sqlite3.exe.
  3. Откройте командную строку Windows (cmd) и перейдите в папку с файлами.
  4. Выполните команду для снятия дампа базы и формирования нового файла:

sqlite3.exe 1Cv8.lgd ".dump" >> backup.sql
sqlite3.exe new_1Cv8.lgd < backup.sql

После завершения процесса (что может занять несколько часов для больших баз), переименуйте new_1Cv8.lgd в 1Cv8.lgd и поместите обратно в папку 1Cv8Log. Запустите сервер 1С.

Рассмотрим решение 3: Предотвращение проблемы (Возврат к формату .lgf)

Многие системные администраторы приходят к выводу, что новый формат нестабилен для их условий. Чтобы ошибка больше не появлялась, можно принудительно перевести базу на старый текстовый формат ведения логов. Разберем, как это сделать:

  1. Остановите работу сервера 1С:Предприятие.
  2. Перейдите в папку информационной базы, в каталог 1Cv8Log.
  3. Удалите все содержимое этой папки (или переместите в архив).
  4. Создайте в этой папке пустой текстовый файл и назовите его 1Cv8.lgf. Обязательно убедитесь, что у файла расширение именно .lgf, а не .lgf.txt.

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

Дополнительные рекомендации: обслуживание журнала

Если вы решили остаться на формате .lgd, мы настоятельно рекомендуем выполнять следующие процедуры по обслуживанию:

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

← На главную