В практике обслуживания 1С нередко возникает ситуация, когда боевой сервер предприятия обладает слабой производительностью или сильно перегружен текущими задачами. Регламентное ночное окно ограничено, а установка масштабного релиза конфигурации с последующим выполнением обработчиков обновления занимает десятки часов. В таких условиях логичным решением выглядит временный перенос информационной базы на мощный локальный компьютер или выделенный производительный сервер для проведения всех этапов обновления с последующим возвратом данных. Разберем по шагам, как правильно организовать этот процесс, какие опасности таит перенос через файл выгрузки .dt, что произойдет с журналом регистрации и почему процедуры послеобновления могут выполняться медленно.
Выгрузка информационной базы в файл .dt через меню Конфигуратора Администрирование > Выгрузить информационную базу является самым доступным способом для разработчика, не требующим прямого доступа к консоли управления СУБД. Однако этот способ имеет ряд важных технических особенностей, которые необходимо учитывать:
.dt не предназначен для регулярного резервного копирования баз средних и крупных объемов. Если база данных занимает более нескольких десятков гигабайт, в процессе формирования или загрузки .dt может произойти аварийное завершение процесса из-за исчерпания оперативной памяти..dt. Их необходимо переносить отдельно на уровне файловой системы..dt на целевой сервер СУБД все таблицы и индексы создаются заново. После загрузки обновленной базы на боевой сервер база не содержит актуальной статистики распределения данных. Обязательно выполните регламентные процедуры СУБД — обновление статистики и реиндексацию, иначе запросы пользователей после запуска начнут существенно зависеть от неоптимальных планов выполнения.Проанализируем более надежный и профессиональный метод — перенос базы средствами СУБД (например, создание резервной копии .bak в Microsoft SQL Server или дампа в PostgreSQL). Этот способ полностью сохраняет структуру данных, исключает ошибки конвертации платформы и отрабатывает в разы быстрее, чем упаковка данных в архив .dt.
Главный подводный камень при работе с бэкапами СУБД — совместимость версий. Рассмотрим правила переноса на примере MS SQL Server:
Если узким местом является не дисковая подсистема сервера баз данных, а слабый процессор и нехватка памяти для рабочих процессов rphost, существует альтернативный способ. Разберем его суть:
Выясним причину частых вопросов о сохранности истории событий. Журнал регистрации 1С хранится отдельно от таблиц СУБД — в файловой структуре каталога кластера серверов (в папке srvinfo). На современных версиях платформы он по умолчанию ведется в формате SQLite (файл 1Cv8.lgd).
Рассмотрим, как ведет себя журнал регистрации при различных манипуляциях:
.dt не содержит в себе журнал регистрации. Ни старый текстовый формат (.lgf), ни новый SQLite-формат (.lgd) не выгружаются в архив..dt в существующую базу на боевом сервере привязка к старому файлу журнала обычно сохраняется, так как идентификатор базы в кластере не меняется. Однако существует риск повреждения или перезаписи файла журнала. Перед загрузкой обязательно сохраните копию файла 1Cv8.lgd из каталога соответствующей базы в srvinfo.При выполнении дополнительных процедур обработки данных (механизмы БСП / отложенное обновление) часто наблюдается парадоксальная картина: процессор загружен слабо, диск не испытывает пикового потока чтения/записи, но сам процесс длится часами. Проанализируем причины такого поведения:
.dt, предварительно убедившись в наличии свободного места и скопировав каталог 1Cv8.lgd)..cfu/.cf.