«Ошибка СУБД» в 1С 8.3: как найти причину и исправить
Система управления базой данных вернула ошибку при выполнении запроса 1С. Само сообщение лишь общий заголовок: причина всегда указана в продолжении текста, часто на английском языке.
Текст ошибки
Причины
- Повреждение файла файловой базы
- Нехватка места на диске сервера СУБД или переполнение журнала транзакций
- Потеря соединения с сервером СУБД или его перезапуск
- Недостаточно прав у пользователя, под которым сервер 1С подключается к СУБД
- Ошибки в данных или нарушение логической целостности таблиц
- Несовместимая или неправильно настроенная версия СУБД
Читайте продолжение сообщения
После слов «Ошибка СУБД» идёт текст от самой СУБД. Он и определяет решение:
- Файловая база: «Файл базы данных поврежден», «Ошибка формата потока» и подобные. Это повреждение данных в файле 1Cv8.1CD, его лечат утилитой chdbfl.exe и тестированием базы.
- Microsoft SQL Server: сообщения провайдера, например
Microsoft SQL Server Native Client 11.0илиMicrosoft OLE DB Driver for SQL Server, с текстом ошибки SQL Server. - PostgreSQL: сообщения вида
ERROR: ...илиFATAL: ....
Порядок действий
- Скопируйте полный текст ошибки из подробностей или журнала регистрации.
- Сделайте резервную копию базы, прежде чем что-то исправлять.
- Проверьте свободное место на дисках сервера СУБД, в том числе на диске с журналами транзакций и временной базой tempdb (для MS SQL).
- Проверьте, что служба СУБД работает и доступна с сервера 1С.
- Выполните тестирование и исправление информационной базы в конфигураторе: «Администрирование» → «Тестирование и исправление».
Частые ситуации на MS SQL Server
- Переполнен журнал транзакций. В тексте будет сообщение о заполнении transaction log. Если база в полной модели восстановления, настройте регулярное резервное копирование журнала или переведите базу в простую модель, если восстановление на точку во времени не требуется.
- Нет места в tempdb. Освободите место на диске и проверьте автоувеличение файлов.
- Ошибка входа (Login failed). Проверьте пользователя и пароль СУБД в свойствах базы в консоли кластера.
- Проверка целостности. Выполните
DBCC CHECKDBдля базы, чтобы найти повреждения на уровне СУБД.
Частые ситуации на PostgreSQL
- Используйте сборку PostgreSQL, рекомендованную для работы с 1С: стандартная сборка без доработок не поддерживается платформой.
- Ошибки о нехватке памяти или разделяемых буферов указывают на настройки
postgresql.conf. - Регулярно выполняйте VACUUM ANALYZE, иначе запросы деградируют и чаще приводят к таймаутам.
Для пользователя
Если ошибка появилась один раз и не повторяется, продолжайте работу. Если повторяется на одной операции или во всей базе, остановите работу и сообщите администратору: продолжение работы с повреждённой базой может усугубить проблему.
Частые вопросы
Ошибка СУБД в файловой базе — это всегда повреждение?
Чаще всего да, но бывает и нехватка места на диске или проблемы с сетевой папкой. Сначала сделайте копию базы и проверьте её утилитой chdbfl.exe.
Можно ли исправлять базу 1С прямо в SQL?
Изменять данные таблиц 1С средствами SQL не стоит: это нарушает целостность и лицензионные условия. Средствами СУБД выполняют только обслуживание: резервное копирование, индексы, статистику, проверку целостности.