Блочное хранение двоичных данных в 1С:Предприятие 8.3 - это способ, при котором вложения, картинки и файлы лежат блоками в служебных таблицах СУБД. Сообщение «Режим использования блочного хранения двоичных данных был изменён» в большинстве случаев информационное: платформа зафиксировала, что фактическое размещение данных не совпало с сохранённым значением параметра. Тревожный сигнал появляется тогда, когда рядом в журнале регистрации стоят ошибки чтения или записи блоков.
Что делать при ошибке: зафиксировать точный текст сообщения и время, открыть журнал регистрации, включить технологический журнал, проверить рабочие процессы кластера серверов и состояние СУБД. Любые правки режима хранения проводите только после резервной копии и проверки на тестовом контуре.
Статья разбирает устройство режима, расшифровку типовых сообщений, пошаговую диагностику и три сценария исправления без остановки рабочей базы. Отдельные блоки посвящены производительности, бэкапу и профилактике.
Что такое блочное хранение двоичных данных в 1С и когда оно используется
Двоичные данные в 1С:Предприятие 8.3 - это всё, что пользователи прикрепляют к объектам учёта: сканы договоров, фотографии номенклатуры, PDF-инструкции, шаблоны печати, архивы, внешние обработки. Платформа складывает их в поля типа «Хранилище значения». В клиент-серверном варианте такие поля живут в одном из двух мест: в служебных таблицах СУБД или в отдельных файлах-томах на диске сервера 1С.
Блочный режим разбивает файл на части и пишет их в служебные таблицы базы. Транзакционность сохраняется: вложение записывается в одной транзакции с документом или справочником. Удаление объекта убирает и его блоки, осиротевших файлов на диске не остаётся. Обратная сторона - рост базы и дополнительная нагрузка на СУБД при каждом открытии вложения.
В блочном хранилище чаще всего лежат вложения справочников и документов, картинки номенклатуры, файлы задач и бизнес-процессов, шаблоны договоров, данные в регистрах сведений и настройках. Объём растёт быстро: сканы и фото добавляют десятки гигабайт за год работы.
Режим использования блочного хранения: что означает этот параметр
Параметр «Режим использования блочного хранения двоичных данных» задаёт, куда платформа пишет двоичные данные. Два значения: «Использовать» - блоки в СУБД, «Не использовать» - тома, то есть отдельные файлы в каталоге данных информационной базы на сервере 1С. В клиент-серверных базах версий до 8.3.11 альтернативы не было: данные всегда лежали в СУБД. Начиная с 8.3.11 платформа умеет выносить их в тома.
Посмотреть значение можно в свойствах информационной базы в консоли администрирования серверов 1С:Предприятие, а также через утилиту rac командой infobase info. Параметр хранится в свойствах ИБ в кластере, а не внутри самой базы. При переносе базы через выгрузку .dt или восстановлении дампа СУБД в новую информационную базу значение выставляйте заново, иначе после запуска платформа зафиксирует смену режима в журнале регистрации.
Чем блочный режим отличается от файлового и режима томов
Три варианта размещения данных часто путают между собой, а от выбора зависит стратегия бэкапа и требования к дискам.
| Режим | Где лежат данные | Плюсы | Минусы | Когда выбирать |
|---|---|---|---|---|
| Блочный | Служебные таблицы СУБД | Транзакционность, единый бэкап базы, простое сопровождение | Растёт размер базы, нагрузка на СУБД, тяжёлый бэкап | Вложений немного (ориентир: до 10-20 ГБ) или важна строгая согласованность данных |
| Тома | Отдельные файлы в каталоге данных ИБ, доступны с 8.3.11 | Компактная база, ниже нагрузка на СУБД, быстрее бэкап СУБД | Нужно копировать базу и тома согласованно, отдельно следить за местом и правами | Десятки гигабайт вложений, активная работа с файлами |
| Файловый вариант ИБ | Один файл 1CD и служебные каталоги | Простота, сервер СУБД не нужен | Ограничения по объёму и числу одновременных пользователей, отдельные тома не используются | Небольшие базы на несколько пользователей |
Смена режима на рабочей базе запускает миграцию хранилища: платформа переносит двоичные данные в новое место, и какое-то время они занимают дисковое пространство дважды. Без свежего бэкапа и запаса места такую операцию не проводят.
Типовые ошибки блочного хранения и что они означают
Сообщения делятся на три группы, и реакция на них разная. Информационные события говорят о смене режима, ошибки доступа связаны с местом и правами, ошибки данных указывают на повреждение блоков. Группу определяют по тексту в журнале регистрации.
Сообщение о смене режима хранения: предупреждение или ошибка
Запись «Режим использования блочного хранения двоичных данных был изменён» платформа добавляет, когда фактическое размещение данных перестало совпадать с сохранённым значением параметра. Нормальные причины: администратор переключил режим, базу перенесли на другой сервер или восстановили из дампа, платформу обновили, база переехала с файлового варианта на клиент-серверный.
Тревожные признаки другие: сообщение повторяется при каждом старте базы, на разных узлах кластера выставлены разные значения, рядом лежат ошибки чтения или записи, часть вложений не открывается. В первых двух случаях сверьте настройки информационной базы на всех серверах кластера и права на каталог томов. Если вложения недоступны, переходите к диагностике данных.
Ошибки чтения и записи блоков: причины и последствия
Типовые формулировки: «Ошибка при записи двоичных данных», «Не удалось прочитать блок двоичных данных из хранилища», «Ошибка сохранения файла в хранилище значений». Причины: закончилось место на диске СУБД или в каталоге томов, повреждены страницы базы, рабочий процесс упал в момент записи, оборвалось соединение с СУБД, сработали таймауты и блокировки на таблицах хранилища.
Для пользователей это выглядит так: вложения не открываются, документы с файлами не проводятся, задачи зависают, печатные формы с шаблонами выдают ошибку. Разовая ошибка на пике нагрузки обычно лечится повтором операции. Если она повторяется на одних и тех же объектах, данные повреждены или лежат в недоступном томе.
Пошаговая диагностика ошибки блочного хранения
Порядок проверок идёт от фиксации симптома к инфраструктуре и данным. Настройки до конца диагностики не меняйте.
- Запишите точный текст сообщения, время, имя пользователя и рабочий процесс.
- Откройте журнал регистрации и отфильтруйте события по уровню «Ошибка» за нужный период.
- Включите технологический журнал и соберите события EXCP, DBMSSQL, SDBL, TLOCK, TTIMEOUT.
- Проверьте состояние рабочих процессов кластера и распределение сеансов.
- Проверьте свободное место на дисках СУБД, сервера 1С и в каталоге томов.
- Сверьте значение режима хранения в свойствах информационной базы.
- Соберите логи для поддержки 1С, если подтвердилось повреждение данных.
Обычно диагностика занимает от 15 до 40 минут. Дольше всего идёт проверка целостности базы на больших объёмах.
Какие журналы смотреть в первую очередь
Журнал регистрации доступен из конфигуратора и из консоли кластера. Фильтр: период, уровень «Ошибка», поиск по словам «двоичн», «блочн», «хранилищ», «том». Точная формулировка отделяет информационное предупреждение от сбоя записи, а привязка к пользователю показывает, с каким объектом работали в момент ошибки.
Технологический журнал настраивается через logcfg.xml в каталоге conf сервера 1С. Для этой задачи хватает событий EXCP (исключения), DBMSSQL (обращения к Microsoft SQL Server), SDBL (запросы), TLOCK (ожидания на блокировках) и TTIMEOUT (таймауты). Запись всех свойств даёт контекст: текст исключения, длительность вызова, идентификатор процесса и сеанса.
Журналы кластера лежат в каталогах рабочих процессов. Ищите записи о падениях, перезапусках и потере связи с СУБД за время инцидента.
Проверка состояния кластера и рабочих процессов
Список процессов показывает команда rac process list, активные сеансы - rac session list. В консоли администрирования видны загрузка, память и число соединений по каждому процессу. Признаки проблемы: процесс не отвечает, память растёт и не освобождается, процесс перезапускается, в технологическом журнале по нему идёт серия EXCP.
Если базу обслуживают несколько рабочих процессов, ошибка может воспроизводиться только на одном. Сравните логи по процессам и проверьте, нет ли перекоса сеансов. Расчёт количества процессов и диагностику узких мест через технологический журнал разбираем в руководстве по настройке кластера 1С 8.3 и диагностике узких мест.
Диагностика на стороне СУБД
Для Microsoft SQL Server проверьте размер и рост таблиц хранилища, свободное место в файловой группе, настройки автоматического роста файлов, ошибки в ERRORLOG и результат DBCC CHECKDB. Оценить объём базы и отдельных таблиц помогает sp_spaceused. Проверку целостности запускайте на копии базы: на продуктивном сервере она создаёт серьёзную нагрузку. Для PostgreSQL смотрите логи, bloat, долгие транзакции, ошибки ввода-вывода и размер WAL. Журнал транзакций интересует в первую очередь: запись крупных вложений резко увеличивает его объём.
Если проверка целостности нашла ошибки в таблицах хранилища, готовьте восстановление из резервной копии. Как индексы и схема влияют на скорость, разбираем в материале о том, как схема базы и индексы влияют на производительность.
Настройки памяти, tempdb и индексов для 1С описаны в руководстве по ускорению Microsoft SQL Server для 1С.
Как исправить ошибку блочного хранения без остановки рабочей среды
Три сценария ниже закрывают почти все ситуации. Полная остановка базы нужна только при смене режима, в остальных случаях достаточно перезапуска процесса или точечного восстановления. Подготовка обязательна в любом сценарии.
Подготовка: бэкап, тестовый контур, регламентное окно
- Полная выгрузка ИБ в .dt через конфигуратор или консоль кластера.
- Полный бэкап СУБД и отдельный бэкап каталога томов, если режим томов включён.
- Проверка восстановления на тестовом контуре: копия должна стартовать, а вложения открываться.
- Регламентное окно на 30-60 минут, согласованное с бизнесом, и предупреждение пользователей.
- Зафиксированное текущее значение режима хранения и путь к каталогу томов.
Тестовый контур удобно поднять в облаке, например на Timeweb Cloud: сервер под копию базы разворачивается за несколько минут и не мешает продуктивной среде. Без проверенного бэкапа режим хранения не меняют: неверный параметр делает вложения недоступными.
Сценарий 1: возврат корректного режима хранения
- Остановите работу пользователей с базой: завершите сеансы через консоль кластера или заблокируйте соединения.
- Откройте свойства информационной базы в консоли администрирования и выставьте корректное значение параметра «Режим использования блочного хранения двоичных данных».
- Перезапустите рабочие процессы, обслуживающие базу.
- Проверьте журнал регистрации: сообщение о смене режима появилось, ошибок нет.
- Откройте 3-5 документов с вложениями и сохраните тестовый файл. Новые данные должны попасть в нужное хранилище.
- Верните доступ пользователям.
При переключении на тома платформа запускает миграцию двоичных данных. Следите за свободным местом: пока миграция не завершена, данные занимают место в старом и новом хранилищах. Не останавливайте рабочие процессы и не перезагружайте сервер до окончания переноса.
Сценарий 2: восстановление повреждённых блоков данных
Сценарий нужен, когда ошибки чтения повторяются на конкретных объектах, а логи СУБД подтверждают повреждение. Действия:
- Составьте список пострадавших объектов по журналу регистрации и жалобам: номера документов, названия справочников, имена файлов.
- Разверните свежий бэкап на отдельном сервере или в отдельной базе.
- Перенесите вложения из копии: выгрузкой объектов, обменом или повторной загрузкой файлов через интерфейс.
- Если бэкапа нет, обратитесь в поддержку 1С. Подготовьте технологический журнал, точное время ошибки и примеры объектов. Часть вложений может быть потеряна безвозвратно.
Правка BLOB-полей напрямую в СУБД без согласования с вендором приводит к вторичным повреждениям и усложняет восстановление.
Сценарий 3: перезапуск рабочего процесса кластера
- Определите проблемный процесс по технологическому журналу и списку рабочих процессов.
- Предупредите пользователей: сеансы на этом процессе прервутся.
- Остановите процесс в консоли администрирования и запустите его снова.
- Проверьте журнал регистрации и открытие вложений.
- Если ошибки появляются на нескольких процессах, перезапускайте их по одному: кластер продолжит обслуживать остальных.
Перезапуск убирает зависшие процессы и разовые сбои записи. Повреждённые данные он не лечит.
Влияние режима блочного хранения на производительность и бэкап
Производительность: когда блочный режим тормозит
Признаки деградации: вложения открываются по 2-5 секунд, при сохранении файлов растут очереди на дисках СУБД, увеличивается журнал транзакций, появляются блокировки на таблицах хранилища, полный бэкап растёт быстрее самой базы. Большие BLOB фрагментируют таблицы, а чтение вложений конкурирует с обычными запросами.
Что помогает без смены режима: вынести таблицы хранилища в отдельную файловую группу на быстрых дисках, следить за индексами и статистикой, ограничить максимальный размер вложений средствами конфигурации, развести по дискам данные, журналы и tempdb. Порядок поиска причин описан в материале о том, почему снижается производительность автоматизированных систем, а методика проверки ресурсов - в руководстве о том, как найти узкое место в системе.
Особенности резервного копирования при блочном хранении
В блочном режиме бэкап СУБД включает двоичные данные. Полная копия растёт вместе с вложениями, дифференциальные копии тоже захватывают изменённые BLOB, а окно копирования удлиняется. Планируйте место на диске копий и регулярно проверяйте восстановление: бэкап без проверки ничего не гарантирует.
В режиме томов копировать нужно и базу, и каталог томов. Рассинхронизация копий даёт битые ссылки или потерянные вложения. Используйте согласованные точки: остановку записи на время снятия снапшота либо штатную выгрузку информационной базы, которая включает оба хранилища. Проверка восстановления на тестовом контуре раз в квартал показывает реальное состояние бэкапов.
Профилактика: как не допустить повторения ошибки
Что мониторить в первую очередь
- Свободное место на дисках СУБД, сервера 1С, каталога томов и диска бэкапов. Порог алерта: остаток меньше 20%.
- События журнала регистрации уровня «Ошибка» с фильтром по хранилищу значений, с выгрузкой в систему мониторинга.
- Всплески EXCP и DBMSSQL в технологическом журнале по конкретным рабочим процессам.
- Перезапуски рабочих процессов и рост потребления памяти.
- Размер и скорость роста таблиц хранилища или каталога томов, длительность бэкапов.
Регламент обновления и миграции
- Перед обновлением платформы читайте release notes: изменения в работе с хранилищем значений ломают совместимость чаще остальных.
- Прогоняйте обновление на тестовом контуре с реальным объёмом вложений.
- Перед миграцией фиксируйте текущий режим хранения в документации.
- После переноса базы любым способом сверяйте режим хранения и открывайте контрольные вложения.
- Записывайте, где лежат тома, кто и когда менял параметр: это экономит часы при следующем инциденте.
Минимальный набор действий на сегодня: проверить значение режима в свойствах информационной базы, настроить алерт на свободное место и протестировать восстановление из последнего бэкапа.