При переходе на платформу 1С:Предприятие 8.3.26 администраторы и разработчики сталкиваются с непредвиденной проблемой при попытке создать резервную копию базы данных с помощью консольной утилиты ibcmd или стандартной выгрузки в файл выгрузки. Процесс прерывается критическим сбоем: «[FATAL] Выгрузка информационной базы в файл завершена с ошибкой Ошибка хранилища двоичных данных — 'Требуется включение режима блочного хранения двоичных данных в базе данных'».
Попытка быстро откатить платформу на предыдущую стабильную версию (например, 8.3.25 или 8.3.24) также не приводит к успеху: база данных отказывается запускаться на более старых релизах платформы. Проанализируем архитектурные причины возникновения этой ошибки и подробно разберем способы восстановления штатной выгрузки информационной базы.
Выясним причину такого поведения платформы. Начиная с версии 8.3.26, в платформе кардинально переработан механизм работы с бинарными данными. Появилась концепция блочного хранения двоичных данных, предназначенная исключительно для клиент-серверного режима работы (в файловых базах этот механизм не используется). Новая модель оптимизирует операции с большими объемами данных и обеспечивает поддержку внешних объектных хранилищ (включая протокол S3).
В архитектуре платформы заложены следующие правила работы механизма:
Режим использования блочного хранения двоичных данных.Когда база данных открывается и сохраняется на платформе 8.3.26, внутренняя структура метаданных необратимо обновляется. Предыдущие релизы платформы уже не могут прочитать обновленный формат, поэтому простой даунгрейд платформы невозможен. При выгрузке через ibcmd утилита опрашивает контракты платформы версии 8.3.26. Если системная таблица блочного хранения не была инициализирована конфигурацией, операция немедленно завершается фатальной ошибкой.
Рассмотрим основной способ решения, который подходит для конфигураций, находящихся на поддержке с возможностью изменения или снятых с поддержки. Разберем по шагам последовательность действий в Конфигураторе:
Версия 8.3.25 (например, для конфигураций на обычных формах вроде УПП 1.3 часто установлены старые режимы совместимости), временно переключим режим совместимости на значение Версия 8.3.25 или оставим текущий режим, если свойство уже отображается в палитре свойств.Авто или Не использовать.F7 (или выбрав пункт меню Конфигурация — Обновить конфигурацию базы данных).После реструктуризации платформа создаст в базе данных системную таблицу для блочного хранения. Важно отметить: существующие реквизиты объектов с типом ХранилищеЗначения не будут автоматически перенесены в системную таблицу (миграция старых данных не выполняется), однако таблица будет инициализирована, что полностью снимает блокировку утилиты ibcmd.
После сохранения конфигурации базы данных повторим запуск выгрузки через командную строку:
ibcmd infobase export --data-dir="C:\Bases\BaseUPP" --file="C:\Backups\backup.dt"
Выгрузка завершится успешно без фатальных сообщений.
Проанализируем ситуацию, когда типовая конфигурация находится на полной поддержке («на замке»), и снятие конфигурации с поддержки крайне нежелательно. В платформе предусмотрены административные механизмы включения хранилища без редактирования структуры метаданных:
Администрирование — Управление хранилищем двоичных данных. В открывшемся окне включим использование блочного хранилища и подтвердим сохранение параметров.Функции для технического специалиста (или Все функции) и откроем стандартную функцию «Управление хранилищем двоичных данных». Настроим активацию блочного хранения. Параметры, определенные в режиме «1С:Предприятие», обладают наивысшим приоритетом над настройками дерева конфигурации.Если после включения режима выгрузка продолжает завершаться с ошибками или база аварийно завершает работу при обращении к файлам, разберем порядок проверки целостности таблиц хранения:
Администрирование — Тестирование и исправление...).Только тестирование, чтобы определить объем потерянных (неиспользуемых) записей в системных таблицах.Тестирование и исправление — платформа выполнит безопасную физическую очистку «осиротевших» блоков двоичных данных, восстановив целостность хранилища.Посмотрим на альтернативные варианты создания резервных копий. В релизах платформы 8.3.26 зафиксирована ошибка платформы (код 60023075), из-за которой изменение режима блочного хранения может некорректно отрабатывать для регистров сведений, содержащих ресурсы с типом ХранилищеЗначения.
Для промышленных клиент-серверных информационных баз создание выгрузок через ibcmd или выгрузку в файл .dt не является регламентным инструментом создания бэкапов. Чтобы полностью исключить зависимость процесса резервного копирования от системных таблиц блочного хранения и ошибок прикладного уровня 1С, переведем регулярное резервное копирование на средства используемой СУБД:
pg_dump или физических копий кластера через pg_basebackup..bak.Резервные копии на уровне СУБД не зависят от ошибок платформенных утилит выгрузки и гарантируют надежное восстановление продуктивной базы данных.