При активной эксплуатации информационных баз 1С — например, конфигурации «Управление торговлей», редакция 10.3 — размер общего файла базы данных 1Cv8.1CD может быстро достигать критических значений в несколько гигабайт. В этот момент у администраторов и разработчиков возникает логичный вопрос: какие именно таблицы занимают максимум места на диске и не превышены ли критические лимиты платформы 1С?
Рассмотрим подробно, как оценить размер внутренних таблиц файловой базы, какие утилиты для этого используются и как предотвратить сбои в работе системы при увеличении объема данных.
Проанализируем структуру файловой базы 1С. Штатные средства платформы в режиме «Предприятие» или «Конфигуратор» не предоставляют детализированного отчета по занимаемому объему каждой конкретной таблицы. Для решения этой задачи применяется сторонний специализированный инструмент — Tool_1CD.
Эта утилита предназначенa для прямого чтения файла 1Cv8.1CD без необходимости запуска платформы 1С. Процесс анализа выглядит следующим образом:
1Cv8.1CD.С помощью данного инструмента легко определить таблицы-лидеры по занимаемому дисковому пространству. Часто ими оказываются таблицы двоичных данных, хранящие прикрепленные файлы, или таблицы регистров накопления и сведений.
Выясним причину, почему базы размером от 4 до 8 ГБ вызывают опасения. Каждая таблица внутри файла 1Cv8.1CD физически состоит из четырех внутренних составляющих:
.cdx внутри хранилища).Важно понимать: классическое ограничение файлового режима 1С в 4 ГБ относится не ко всему файлу 1Cv8.1CD целиком, а к каждому из четырех внутренних файлов конкретной таблицы по отдельности. Например, если сама таблица данных занимает 2 ГБ, но файл ее индексов или неограниченных длин разрастается до 4 ГБ, база данных прекращает работу с ошибкой превышения допустимого размера.
Начиная с версии платформы 1С:Предприятие 8.3.8, формат файловых баз был модернизирован. При использовании нового формата с увеличенным размером страницы (8, 16, 32 или 64 Кб) максимальный предел каждого внутреннего файла таблицы возрастает до 6 ГБ, а общий потенциальный объем базы данных может достигать нескольких терабайт.
Если файловая база приближается к критическому размеру, а перевод на клиент-серверный режим пока не запланирован, выполним конвертацию формата базы данных. В каталоге установки платформы 1С (папка bin) находится штатная утилита cnvdbfl.exe.
Посмотрим на пример команды для конвертации базы данных в формат 8.3.8 с максимальным размером страницы 64 Кб:
cnvdbfl.exe -c -f 8.3.8 -p 64k "C:\Bases\UT103\1Cv8.1CD"
Разберем параметры запуска данной команды:
-c — запуск режима конвертации файла.-f 8.3.8 — целевой формат базы данных.-p 64k — установка размера страницы 64 килобайта (обеспечивает максимальную емкость таблиц).1Cv8.1CD.Обратите внимание: перед выполнением конвертации обязательно сделайте резервную копию файла базы путем простого копирования каталога с базой данных.
Частой причиной необоснованного разрастания файла 1Cv8.1CD является физическая фрагментация. При удалении документов или очистке регистров освободившееся место внутри файла не возвращается операционной системе автоматически, образуя незанятые блоки («дыры»).
Для оптимизации физической структуры базы выполним последовательные шаги:
bin платформы 1С найдем и запустим утилиту chdbfl.exe. Проведем физическую проверку файла базы для выявления и исправления поврежденных блоков.1Cv8.1CD и физически удаляет очищенные записи, существенно уменьшая размер базы на диске.Проанализируем риски, с которыми можно столкнуться при эксплуатации файловой базы объемом более 7–8 ГБ:
.dt предназначен для переноса конфигурации и данных, но не подходит для роли единственного средства бэкапа. При восстановлении крупных баз из .dt 32-разрядный клиент 1С часто завершает работу с ошибкой нехватки памяти (Out of Memory). Основным надежным способом бэкапа файловой базы является прямое копирование файла 1Cv8.1CD при остановленных службах и сеансах.1Cv8.1CD превысить размер 4 ГБ на уровне операционной системы.Если база данных стабильно растет и превышает объем 10 ГБ, наиболее правильным инженерным решением является переход на клиент-серверный режим работы (использование сервера 1С:Предприятие и СУБД, например, PostgreSQL), либо проведение процедуры свертки информационной базы с переносом входящих остатков на начало текущего года.