Обновить конфигурацию базы данных на сервере 1с что это
Заметки из Зазеркалья
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Мы разработали новый механизм реструктуризации базы данных, который позволяет ускорить обновление конфигурации в среднем в 3-4 раза, а в отдельных случаях на порядки. Ускорение достигается за счёт минимизации манипуляций над данными и максимального их переноса на уровень системы управления базой данных (СУБД).
Что такое реструктуризация?
Реструктуризация это изменение структуры и состава таблиц базы данных, и перенос имеющихся данных в изменённые таблицы. Обычно реструктуризация выполняется в тот момент, когда вы нажимаете Обновить конфигурацию базы данных в Конфигураторе. Но выполняется она не каждый раз.
Реструктуризация выполняется тогда, когда изменения конфигурации требуют появления новых колонок или таблиц в базе, или когда меняется тип существующей колонки. Например, вы добавили реквизит к справочнику, добавили документ, или изменили тип имеющегося реквизита с Число на Строка. В этих случаях потребуется реструктуризация.
Если рассматривать реструктуризацию с точки зрения манипулирования данными, то существует база данных и схема данных, которая соответствует конфигурации базы данных. После того, как вы обновляете конфигурацию базы данных, создаются новые структуры данных, в которые переносятся старые данные.
«Традиционная» реструктуризация
В процессе реструктуризации последовательно анализируются все объекты конфигурации. Не углубляясь в подробности можно сказать, что для каждого объекта выполняется:
Из этих трёх шагов перенос данных занимает наибольшее количество времени. При этом сами операции переноса данных могут быть простыми и сложными.
Например, к простым и быстрым операциям относятся те, которые вызваны добавлением или удалением столбцов таблицы. В этом случае отдельным запросом создаётся новая таблица (с изменённой структурой) и данные переносятся в неё.
Все остальные операции являются сложными, могут занимать длительное время, и для их выполнения требуется участие Конфигуратора (или серверной части платформы, если обновление выполняется на сервере). Потому что процесс переноса данных может сопровождаться различными вспомогательными действиями, обусловленными спецификой 1С:Предприятия.
Например, может потребоваться удаление ссылок на несуществующие объекты, изменение предопределённых данных, предварительная фильтрация данных (для удаления движений, соответствующих удаляемым регистраторам), проверка уникальности номеров и кодов, проверка количества уровней вложенности справочника и корректности его иерархии, и другие.
Новый механизм реструктуризации
Главное изменение заключается в том, что оптимизация реструктуризации достигнута не за счёт локальных изменений «традиционного» механизма, а за счёт создания полностью нового механизма реструктуризации.
Это непростая и трудоёмкая задача, потому что механизм реструктуризации должен обеспечивать транзакционность изменений, то есть надежность и целостность базы данных во всех случаях. Механизм должен быть готов к тому, что процесс реструктуризации может прерваться в любой момент (в результате сбоя, например), и при этом система должна остаться в консистентном состоянии. То есть либо в виде старой версии, либо в виде новой версии. Старый механизм для этого создавал новые версии изменённых таблиц, и заполнял их. А потом подменял все старые версии на новые.
Новый механизм тоже обеспечивает транзакционность, но более сложным способом.
Кроме этого новый механизм основан на ряде идей, которые позволили получить значительное ускорение:
На основе этих идей мы достигли максимальной оптимизации на тех изменениях конфигурации, которые приводят к следующим операциям с данными:
В других операциях перенос данных требуется как и раньше, но практически всегда (в большей части операций) он осуществляется на уровне СУБД. Данные переносятся единым запросом. Это может быть INSERT для новых таблиц, или UPDATE существующих таблиц.
Конечно, существуют такие изменения, которые всё равно проходят обработку на сервере с выгрузкой данных построчно. Например, преобразование строки в число, или в дату. Такие операции нецелесообразно делать на уровне СУБД, к тому же они довольно редко встречаются. Но наиболее частые изменения проводятся всё же на уровне СУБД, одним запросом на одну таблицу.
В среднем ускорение достигает 4 раз. Это, конечно, зависит от конкретной конфигурации, от конкретных изменений, и даже конкретных данных. В отдельных случаях ускорение может быть до 20 раз. Такое возможно, например, при удалении реквизита в большой таблице, или если изменения затрагивают маленькие таблицы, но сам объект при этом является довольно большим.
Помимо ускорения есть и другой положительный момент. Во многих случаях не перестраиваются индексы. Это позволяет сохранить их актуальность, сохранить статистику, сократить место, требуемое для реструктуризации.
Мы провели несколько сравнительных экспериментов на реальных информационных базах, и получили следующие результаты:
Особенности текущей реализации
Новый механизм реструктуризации мы планируем включить в версию 8.3.11 в статусе бета. Он реализован только на сервере, причём на сервере должна быть установлена Java 8.
Чтобы использовать новый механизм реструктуризации, вы можете запустить Конфигуратор в пакетном режиме. Кроме этого в файле conf.cfg вы также можете указать необходимость использования нового механизма. Тогда новая реструктуризация будет выполняться при нажатии Конфигурация – Конфигурация базы данных – Обновить конфигурацию базы данных на сервере. Если никаких специальных действий не предпринимать (просто установить новую платформу), то стандартно будет использоваться старый механизм.
Пока поддерживаются только две СУБД: MS SQL Server и PostgreSQL.
На текущий момент мы оптимизировали реструктуризацию не всех объектов конфигурации, а только основных:
Для перечисленных объектов (кроме регистров) оптимизированы любые их изменения. Для регистров мы оптимизировали реструктуризацию движений и реструктуризацию таблиц регистрации изменений. Операции пересчёта итогов и пересчёта срезов для регистра сведений мы пока не оптимизировали. Однако, несмотря на это, использование нового механизма уже даёт существенное ускорение всего обновления регистров в целом.
Мы рассматриваем возможность увеличения охвата операций и расширения состава объектов конфигурации, реструктуризация которых оптимизирована в новом механизме.
Автоматическое обновление конфигурации информационной базы
Внимание! Данная статья описывает механизм получения обновления версий конфигурации, которые не используют Библиотеку интернет-поддержки пользователей.
Механизм загрузки исправлений (патчей) реализован в Библиотеке интернет-поддержки пользователей.
Демонстрационная конфигурация «Автоматическое обновление конфигурации информационной базы» предназначена для иллюстрации технологии обновления конфигурации «1С:Предприятия 8» в автоматическом режиме. Конфигурация не является законченным (с предметной точки зрения) прикладным решением, но представляет собой универсальный компонент, готовый для использования в других прикладных решениях.
Методические решения, предложенные в конфигурации, могут использоваться в дальнейших разработках фирмы «1С» в том же или несколько модифицированном виде.
Технология автоматического обновления
Назначение
Механизм автоматического обновления конфигурации информационной базы (далее механизм обновления) рассчитан как на неподготовленных пользователей, так и на администраторов внедрений. Сценарий работы неподготовленного пользователя подразумевает получение и установку обновлений за минимальное количество нажатий кнопок мыши и требует от пользователя минимального набора специальных знаний в области IT. Сценарий работы администратора внедрения предполагает гибкую настройку параметров обновления, включая «отложенную» установку обновлений в указанное время.
Обзор функциональности
Ключевые свойства механизма обновления:
* Настраивается в конкретной прикладной конфигурации и зависит от имеющихся в ней средств отправки сообщений электронной почты. Для повышения оперативности доставки отчетов можно воспользоваться сторонними средствами для интеграции электронной почты с sms-сервисами сотовых операторов.
Получение обновлений через Интернет
ПРИМЕЧАНИЕ
В некоторых организациях для соединения с Интернетом требуется дополнительно указать имя пользователя и пароль для доступа на прокси-сервер. Информацию об использовании прокси-сервера можно получить у администратора локальной сети.
Если веб-сайт поставщика обновлений требует авторизацию, то помощник запросит пользователя указать код и пароль. После нажатия кнопки Далее помощник устанавливает соединение с веб-сайтом, используя указанные код пользователя и пароль, и получает файлы обновления локально на компьютер. Получение файлов обновления с пользовательского сайта может занять продолжительное время, в зависимости от объема конкретного файла и скорости подключения к Интернету.
Установка обновлений
После того как обновление было получено локально на компьютер, помощник предлагает его установить. Установка обновления выполняется от имени текущего пользователя. Поэтому помощник может запросить ввести пароль, если для доступа к информационной базе необходима авторизация. В случае клиент-серверного варианта развертывания системы также может потребоваться ввести имя и пароль администратора кластера серверов.
ПРИМЕЧАНИЕ
В файловом варианте развертывания системы перед началом обновления необходимо завершить работу пользователей, подключенных к информационной базе. В клиент-серверном варианте завершение активных и блокировка новых соединений выполняются автоматически.
При нажатии кнопки Далее помощник выполнит интерактивную установку обновления конфигурации. Процесс обновления конфигурации может занять продолжительное время, в зависимости от производительности компьютера и объема информационной базы. После завершения обновления конфигурации «1С:Предприятие» будет автоматически перезапущено, и система будет готова к дальнейшей работе.
Планирование установки обновлений
В случае клиент-серверного варианта развертывания системы также возможно задавать отложенное по времени обновление. В указанную дату и время механизм автоматически запустит установку обновлений в фоновом режиме. «Отложенный» режим позволяет планировать установку обновлений на время минимальной активности работы с информационной базой, например, на ночь или на выходные.
Для планирования и запуска установки обновлений используется задание Планировщика Windows (Task Scheduler) на локальной машине. Задание планировщика автоматически удаляется после выполнения обновления.
Диагностика нештатных ситуаций
Внедрение в конфигурацию
Поставка
Демонстрационная конфигурация механизма обновления распространяется в виде файла поставки, что позволяет поставить любую прикладную конфигурацию к ней на поддержку. В то же время файл поставки может использоваться для сравнения и объединения с прикладной конфигурацией и без постановки на поддержку. В обоих случаях его можно рассматривать как универсальный компонент, готовый для использования в других прикладных решениях, или «библиотеку».
Требования к веб-сайту поставщика обновлений
Механизм проверки и получения обновлений через Интернет взаимодействует с веб-сайтом поставщика обновлений, к которому предъявляется ряд требований. «Открытая» часть веб-сайта (например, http://downloads.1c.ru/) предоставляет анонимный доступ к информации о доступных обновлениях, в то время как непосредственное получение файлов обновления с «закрытой» части сайта может быть ограничено авторизацией по имени и паролю.
«Открытая» часть сайта содержит файлы с информацией об обновлении в определенном формате:
Имя файла или каталога | Описание |
---|---|
| |
| Документ «что нового» в обновлении |
| Файл с информацией об обновлении конфигурации |
| ZIP-архив с файлом списка всех обновлений конфигурации ( v8cscdsc.xml ) |
«Закрытая» часть сайта (например: http://downloads.v8.1c.ru/tmplts/ ) содержит файлы обновлений:
Имя файла или каталога | Описание |
---|---|
| |
| Название поставщика. Например: 1C. Задается в файле со списком обновлений конфигурации v8cscdsc.xml |
| Название конфигурации. Например: Accounting. Задается в файле со списком обновлений конфигурации v8cscdsc.xml |
| Строка версии конфигурации. Например: 2_1_1_2. Задается в файле со списком обновлений конфигурации v8cscdsc.xml |
| Файл архива поставки обновления конфигурации. Например: 1cv8.zip. Задается в файле со списком обновлений конфигурации v8cscdsc.xml |
| Файл архива c рекламой (опционально) |
Для 1С:Предприятие 8.1 – значение user-agent содержит подстроку «1C+Enterprise/8.1»
Для 1С:Предприятие 8.2 – значение user-agent содержит подстроку «1C+Enterprise/8.2”
Формат файлов обновления
Файл с информацией об обновлении конфигурации UpdInfo.txt содержит параметры:
Файл списка обновлений конфигурации v8cscdsc.xml содержит перечень всех доступных обновлений данной конфигурации в формате:
Файл архива рекламы index.zip содержит обязательный HTML-документ index.htm и произвольный набор вспомогательных файлов. Реклама показывается пользователю во время интерактивной установки обновлений.
Демонстрационный набор файлов для веб-сайта поставщика обновлений
Для получения и установки обновлений через Интернет в демонстрационной конфигурации «Автоматическое обновление конфигурации информационной базы» необходимо:
Требования к компонентам операционной системы Windows
Механизм обновления использует следующие компоненты ОС Windows:
п/п | Наименование компонента и минимальная версия | Комментарии |
---|---|---|
1. | WMI CORE 1.5 | Используется для работы с планировщиком заданий Windows (Task Scheduler). Компонент может отсутствовать в ОС Windows 95, 98 и NT 4.0. В этом случае помощник обновления предлагает пользователю его скачать |
2. | Internet Explorer 5.0 | Необходим для отображения заставки интерактивного обновления конфигурации средствами HTML Application (HTA) |
3. | Microsoft Windows Script Host 5.6 | Необходим для работы скрипта обновления конфигурации в «отложенном» режиме. Компонент может отсутствовать в ОС Windows 95 и NT 4.0 |
Инструкция по внедрению
Рекомендуется проводить внедрение библиотеки в прикладную конфигурацию в три последовательных этапа:
При этом первый шаг следует выполнять только при первом внедрении библиотеки. При обновлении очередной версии библиотеки в прикладной конфигурации все необходимые предусловия, скорее всего, уже будут выполнены.
Этап 1. Обеспечение предусловий и требований к конфигурации
На первом этапе необходимо убедиться, что в конфигурации присутствуют обязательные объекты метаданных и связи между ними. Для проверки предусловий следует руководствоваться общим правилом:
Заменяемость
Если в конфигурации отсутствует указанный модуль, то допускается использовать любой другой глобальный модуль.
Содержит процедуры и функции подсистемы первоначального заполнения и обновления данных информационной базы после изменения версии конфигурации. Экспортируемая процедура ВыполнитьОбновлениеИнформационнойБазы является «точкой входа» в подсистему.
Следует убедиться, что код общего модуля поддерживает выполнение в режиме Внешнего соединения, и при необходимости «обернуть» вызовы клиентских функций в проверки вида «#Если Клиент Тогда…»
Этап 2. Перенос объектов метаданных из библиотеки
На втором этапе выполняется перенос объектов метаданных из библиотеки в конфигурацию «как есть» (если не указано иное):
В модуле определены только декларации (определения) процедур и функций, реализация которых должна выполняться в конкретной конфигурации для интеграции с имеющимися в ней подсистемами или внешними подсистемами:
Общий модуль в библиотеке содержит пример реализации, рассчитанный на совместное использование с модулем УправлениеЭлектроннойПочтой и обработкой Обозреватель
Этап 3. Проверка правильности внедрения
На третьем этапе выполняется сохранение измененной конфигурации и «дымовое» функциональное тестирование. Этап считается выполненным, если не возникает ошибок, связанных с отсутствующими объектами и «дымовое» тестирование завершено успешно. В случае возникновения ошибок, связанных с отсутствующими объектами, необходимо перенести их из библиотеки и повторить третий этап.
Обязательные сценарии «дымового» тестирования:
Для диагностики ошибок при «дымовом» тестировании следует использовать средства, указанные в разделе «Диагностика нештатных ситуаций».
См. также
Поставка демонстрационной конфигурации
Дистрибутив конфигурации находится в каталоге \1CITS\EXE\DemoAutoUpdate82.
После установки файл поставки библиотеки (.cf-файл) автоматически скопируется в каталог шаблонов.
Обновление конфигурации базы 1С
Актуальные обновления конфигураций 1С автоматически загружаются на наши сервера, поэтому нет необходимости подключать поддержку ИТС для выполнения обновлений. Вы можете установить новейшие версии конфигурации двумя способами
При обновлении конфигурации Бухгалтерия предприятия 2.0 до версии 2.0.66.1 и следующие, необходимо изменить версию платформы на 8.3, так как поддержка платформы 8.2 для данной конфигурации закончилась.
Если Ваша база находиться на SQL-сервере, обратитесь в Техническую поддержку для смены платформы.
Обновление через Конфигуратор
Перед обновлением базы необходимо завершить активные сеансы работы с базой и сделать резервную копию базы.
1. Откройте Вашу базу через конфигуратор
Для выбора корректного файла обновления необходимо знать текущую версию конфигурации. Посмотреть текущую версию можно после нажатия на иконку «О программе» или в пункте меню Справка выбрать пункт «О программе».
Выберите: Меню «Конфигурация»- «Открыть конфигурацию»
Укажите источник обновлений «Выбор файла обновлений»
Соглашаемся с принятием обновления.
Процесс обновления считается завершенным при появлении сообщения в левом углу: “Для получения подсказки нажмите F1”
Когда при выполнения обновления появятся диалоговые окна, подтвердите внесение изменений в конфигурацию.
В случае, если процесс обновления был прерван, при запуске 1С появится сообщение Конфигурация базы данных не соответствует сохраненной выполните действия, описанные в инструкции.
Рекомендуем после каждого обновления релиза запустить базу в режиме 1С:Предприятие для последнего принятия обновления и проверки работоспособности базы.
Уже более 10 000 компаний работают
в облачной 1С от 42Clouds
— Консультация по 1С Бесплатно!
— Поддержка 24/7 по техническим вопросам: в чате, по телефону, по почте
— Все типовые конфигурации онлайн, доступ через RDP, Remote App, Web
Ускорение реструктуризации базы 1с в 4 раза на серверах MS SQL Server и PostgreSQL
При применении обновлений в базе 1с, часто случается ситуации когда необходимо реструктуризировать таблицы хранимые в базе данных, порой это бывает очень долгий процесс. Ниже приведен способ стандартными средствами платформы ускорить реструктуризацию в 4 раза, но при условии что у вас MS SQL Server или PostgreSQL и платформа старше 8.3.11.2867
Что такое реструктуризация?
Реструктуризация это изменение структуры и состава таблиц базы данных, и перенос имеющихся данных в изменённые таблицы. Обычно реструктуризация выполняется в тот момент, когда вы нажимаете Обновить конфигурацию базы данных в Конфигураторе. Но выполняется она не каждый раз.
Реструктуризация выполняется тогда, когда изменения конфигурации требуют появления новых колонок или таблиц в базе, или когда меняется тип существующей колонки. Например, вы добавили реквизит к справочнику, добавили документ, или изменили тип имеющегося реквизита с Число на Строка. В этих случаях потребуется реструктуризация.
Если рассматривать реструктуризацию с точки зрения манипулирования данными, то существует база данных и схема данных, которая соответствует конфигурации базы данных. После того, как вы обновляете конфигурацию базы данных, создаются новые структуры данных, в которые переносятся старые данные.
После того, как вы обновляете конфигурацию базы данных, создаются новые структуры данных, в которые переносятся старые данные.
Более подробно про техническую часть и теорию можно почитать на заметках из зазеркалья.
Как перейти на новый механизм реструктуризации данных
Далее что бы обновиться в режиме v2, “Конфигуратор – конфигурация БД – обновить конфигурацию БД на сервере”.
Обновить конфигурацию базы данных на сервере