Как исправить ошибку блочного хранения двоичных данных при выгрузке базы через ibcmd на платформе 8.3.26

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

При переходе на платформу 1С:Предприятие 8.3.26 администраторы и разработчики сталкиваются с непредвиденной проблемой при попытке создать резервную копию базы данных с помощью консольной утилиты ibcmd или стандартной выгрузки в файл выгрузки. Процесс прерывается критическим сбоем: «[FATAL] Выгрузка информационной базы в файл завершена с ошибкой Ошибка хранилища двоичных данных — 'Требуется включение режима блочного хранения двоичных данных в базе данных'».

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

Причины сбоя и механизм блочного хранения в платформе 8.3.26

Выясним причину такого поведения платформы. Начиная с версии 8.3.26, в платформе кардинально переработан механизм работы с бинарными данными. Появилась концепция блочного хранения двоичных данных, предназначенная исключительно для клиент-серверного режима работы (в файловых базах этот механизм не используется). Новая модель оптимизирует операции с большими объемами данных и обеспечивает поддержку внешних объектных хранилищ (включая протокол S3).

В архитектуре платформы заложены следующие правила работы механизма:

  1. Режим совместимости 8.3.26 и выше (или «Не использовать»): для хранения двоичных данных всегда создается и применяется специальная системная таблица СУБД. Это единственный и обязательный режим работы для новых конфигураций.
  2. Режим совместимости ниже 8.3.26 (8.3.25, 8.3.24 и предшествующие): механизм не включается принудительно, но в свойствах конфигурации активируется специальное свойство Режим использования блочного хранения двоичных данных.

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

Решение 1: Включение режима блочного хранения в свойствах конфигурации

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

  1. Откроем информационную базу в режиме Конфигуратор под учетной записью с правами администратора.
  2. Откроем дерево метаданных и перейдем в свойства корневого элемента конфигурации (нажав правой кнопкой мыши по имени конфигурации и выбрав Свойства).
  3. Проверим свойство Режим совместимости: если в конфигурации установлено значение ниже Версия 8.3.25 (например, для конфигураций на обычных формах вроде УПП 1.3 часто установлены старые режимы совместимости), временно переключим режим совместимости на значение Версия 8.3.25 или оставим текущий режим, если свойство уже отображается в палитре свойств.
  4. Найдем свойство Режим использования блочного хранения двоичных данных. По умолчанию оно может находиться в значении Авто или Не использовать.
  5. Установим для свойства Режим использования блочного хранения двоичных данных значение Использовать.
  6. Применим изменения к базе данных, нажав клавишу F7 (или выбрав пункт меню Конфигурация — Обновить конфигурацию базы данных).

После реструктуризации платформа создаст в базе данных системную таблицу для блочного хранения. Важно отметить: существующие реквизиты объектов с типом ХранилищеЗначения не будут автоматически перенесены в системную таблицу (миграция старых данных не выполняется), однако таблица будет инициализирована, что полностью снимает блокировку утилиты ibcmd.

После сохранения конфигурации базы данных повторим запуск выгрузки через командную строку:


ibcmd infobase export --data-dir="C:\Bases\BaseUPP" --file="C:\Backups\backup.dt"

Выгрузка завершится успешно без фатальных сообщений.

Решение 2: Включение режима без изменения метаданных конфигурации

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

  1. Через меню Конфигуратора: перейдем в главное меню Администрирование — Управление хранилищем двоичных данных. В открывшемся окне включим использование блочного хранилища и подтвердим сохранение параметров.
  2. В режиме предприятия: запустим базу в режиме «1С:Предприятие», перейдем в меню Функции для технического специалиста (или Все функции) и откроем стандартную функцию «Управление хранилищем двоичных данных». Настроим активацию блочного хранения. Параметры, определенные в режиме «1С:Предприятие», обладают наивысшим приоритетом над настройками дерева конфигурации.

Диагностика и устранение проблем целостности двоичных данных

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

  1. Запустим режим Тестирование и исправление информационной базы (меню Администрирование — Тестирование и исправление...).
  2. Обратим внимание на пункт «Проверка блочного хранения двоичных данных» (он становится доступен в списке только при включенном режиме блочного хранения).
  3. На первом этапе запустим режим в положении переключателя Только тестирование, чтобы определить объем потерянных (неиспользуемых) записей в системных таблицах.
  4. При обнаружении битых ссылок запустим тестирование в режиме Тестирование и исправление — платформа выполнит безопасную физическую очистку «осиротевших» блоков двоичных данных, восстановив целостность хранилища.

Ограничения платформы и резервное копирование средствами СУБД

Посмотрим на альтернативные варианты создания резервных копий. В релизах платформы 8.3.26 зафиксирована ошибка платформы (код 60023075), из-за которой изменение режима блочного хранения может некорректно отрабатывать для регистров сведений, содержащих ресурсы с типом ХранилищеЗначения.

Для промышленных клиент-серверных информационных баз создание выгрузок через ibcmd или выгрузку в файл .dt не является регламентным инструментом создания бэкапов. Чтобы полностью исключить зависимость процесса резервного копирования от системных таблиц блочного хранения и ошибок прикладного уровня 1С, переведем регулярное резервное копирование на средства используемой СУБД:

  1. Для PostgreSQL настроим автоматическое создание дампов утилитой pg_dump или физических копий кластера через pg_basebackup.
  2. Для Microsoft SQL Server настроим планы обслуживания (Maintenance Plans) с созданием файлов .bak.

Резервные копии на уровне СУБД не зависят от ошибок платформенных утилит выгрузки и гарантируют надежное восстановление продуктивной базы данных.

← На главную