Обновление версии экземпляра ПО в Windows
Введение
Здесь представлены инструкции по обновлению версии экземпляра ПО Comindware Platform на одном и том же сервере с остановкой экземпляра.
Инструкции даны для обновления с версий 4.7.2 до версий 4.7.3–5.0 в ОС Windows.
Совет
Этот способ можно использовать, если ПО Comindware Platform развёрнуто на одной машине и нет возможности развернуть новую машину для экземпляра ПО новой версии.
Порядок обновления версии экземпляра ПО
-
Подготовьте экземпляр ПО к обновлению:
- Создайте резервную копию экземпляра ПО.
- Сохраните конфигурацию экземпляра ПО и вспомогательных служб.
- Остановите экземпляр ПО и вспомогательные службы.
- Удалите компоненты старой версии ПО.
- Переместите директорию с базой данных экземпляра ПО в резервную директорию.
-
Обновите версию экземпляра ПО:
- Скачайте и распакуйте два дистрибутива: вспомогательного ПО и новой версии ПО.
- Убедитесь, что установлены все необходимые компоненты вспомогательного ПО.
- Установите новую версию ПО.
- Удалите экземпляр ПО старой версии
- Создайте экземпляр ПО новой версии.
- Обновите конфигурацию экземпляра ПО и вспомогательных служб.
- Перезапустите экземпляр ПО и вспомогательные службы.
- Инициализируйте экземпляр ПО.
- Остановите экземпляр ПО.
- Скопируйте в экземпляр ПО ранее перемещённую директорию с базой данных.
- Запустите экземпляр ПО.
- Обновите структуру данных до новой версии.
- Снова перезапустите экземпляр ПО.
Примечания по установке
Пути к файлам и директориям
Используемые по умолчанию пути к файлам ПО Comindware Platform см. в статье «Пути и содержимое директорий экземпляра ПО».
В вашей конфигурации могут использоваться другие пути, поэтому внимательно подставляйте фактические пути в команды при выполнении инструкций.
Вызов справки для скриптов
Ключ -h
позволяет просмотреть справку по ключам и назначению любого скрипта для развёртывания Comindware Platform.
Используйте его без других ключей, например:
.\version_install.ps1 -h
Обязательные ключи для скриптов
Если не указать обязательный ключ, скрипт запросит его после запуска.
Условные обозначения
Значения, которые вы должны подставить согласно своей конфигурации, заключены в угловые скобки:
<instanceName>
— имя экземпляра ПО;<portNumber>
— номер порта;<versionNumber>
— номер версии ПО видаX.X.XXXX.X
(например:5.0.1234.0
);<prerequisitesDistPath>
— путь к распакованному дистрибутиву вспомогательного ПО;-
<distPath>
— путь к распакованному дистрибутиву ПО Comindware Platform. -
<config_backup_path>
— путь к папке для сохранения резервных копий файлов конфигурации (например,X:\backups\config_tmp
). <iis-config-backup>
— имя резервной копии конфигурации IIS.<ГГГГ-ММ-ДД>
— текущая дата.
Политика выполнения PowerShell
В зависимости от конфигурации вашей системы для выполнения скриптов из дистрибутива Comindware Platform может потребоваться установить неограниченную политику выполнения PowerShell. Для этого может выполните указанные ниже действия.
- Запустите PowerShell.
-
Определите текущую политику выполнения PowerShell:
Get-ExecutionPolicy
-
Если политика отличается от
Unrestricted
, установите неограниченную политику выполнения PowerShell:Set-ExecutionPolicy Unrestricted
-
В запросе на изменение политики выберите вариант «Да для всех», введя букву A.
Внимание!
По окончании работы с дистрибутивом Comindware Platform верните исходную политику выполнения PowerShell.
Подготовка экземпляра ПО к обновлению
Внимание!
Выполните подготовительные действия отдельно для каждого экземпляра ПО, версию которого требуется обновить.
- Создайте и перенесите во внешнее хранилище резервную копию базы данных экземпляра ПО. См. «Настройка конфигураций и запуск резервного копирования».
- Запустите PowerShell от имени администратора.
-
Сохраните резервную копию конфигурации экземпляра ПО и вспомогательных служб:
-
Создайте директорию для резервных копий файлов конфигурации:
New-Item -Path "<config_backup_path>" -ItemType "Directory"
-
Скопируйте все файлы
.yml
и.config
в директорию<config_backup_path>
:Copy-Item -Path "C:\ProgramData\сomindware\Instances\<instanceName>\сonfig\*" -Destination "<config_backup_path>" -Recurse -Include "*.yml", "*.config"
-
Сохраните резервную копию файла конфигурации экземпляра ПО
<instanceName>.yml
:Copy-Item -Path "C:\ProgramData\comindware\configs\instance\<instanceName>.yml" -Destination "<config_backup_path>"
-
Создайте резервную копию конфигурации IIS:
cd c:\Windows\system32\inetsrv
appcmd add backup "<iis-config-backup>"
Удостоверьтесь, что после выполнения этой команды в папке
c:\Windows\system32\inetsrv\backup
появилась папка<iis-config-backup>
. -
Сохраните резервную копию конфигурации Java из следующих переменных среды (например, скопируйте их в текстовый файл):
JAVA_HOME
— путь к исполняемым файлам Open JDK.JAVA_HOME_DLL
— путь к DLL-файлу Open JDK.JAVA_OPTS
— начальный и максимальный объёмы памяти, выделенные для Java.JVM_OPTS
— конфигурация запуска виртуальной машины Java
-
-
Остановите экземпляр ПО и вспомогательные службы и удостоверьтесь, что они остановлены
-
Перейдите в директорию со скриптами для развёртывания ПО Comindware Platform:
cd "<distPath>\CMW_Windows<versionNumber>\scripts"
-
Остановите экземпляр ПО, службу
adapterhost
и службуapigateway
:.\instance_stop.ps1 -name <instanceName>
.\adapterhost_stop.ps1 <instanceName>
.\apigateway_stop.ps1 <instanceName>
-
-
Проверьте статус экземпляра ПО в IIS:
Запустите Диспетчер служб IIS (Internet Information Services (IIS) Manager):
- В левой древовидной панели «Подключения» (Connections), разверните меню с названием своего сервера.
- Выберите «Пулы приложений» (Application Pools).
- Убедитесь, что напротив служб
Comindware <instanceName>
,Comindware <instanceName>_adapterhost
,Comindware <instanceName>_apigateway
стоит статус «Остановлено» (Stopped).
-
Удалите (или переместите в резервное хранилище) неиспользуемые предыдущие дистрибутивы ПО (
<distPath>
— путь к директории с дистрибутивом,<versionNumber>
— версия ПО):Remove-Item <distPath>\CMW_Windows<versionNumber> -Recurse
-
Сохраните резервную копию директории с базой данных экземпляра ПО:
Copy-Item -Path "C:\ProgramData\сomindware\Instances\<instanceName>\Database" -Destination "<config_backup_path>" -Recurse
Обновление версии ПО для экземпляра
Внимание!
Если при обновлении на шаге 28 будут обнаружены ошибки, не продолжайте обновление, установите старую версию ПО, восстановите экземпляр ПО из резервной копии и обратитесь в службу поддержки Comindware.
Обновление нескольких экземпляров ПО
Выполните приведённые ниже шаги 9–21 для каждого экземпляра ПО, версию которого требуется обновить, так как скрипт обновления выполняется отдельно для указанного экземпляра ПО.
После обновления всех экземпляров ПО для экономии места старую версию ПО можно удалить согласно инструкции «Удаление версии ПО».
- Скачайте и распакуйте дистрибутив с новой версией вспомогательного ПО для Comindware Platform.
- Запустите PowerShell от имени администратора.
- При необходимости установите неограниченную политику выполнения PowerShell. См. «Политика выполнения PowerShell».
-
Перейдите в директорию со скриптами для развёртывания вспомогательного ПО:
cd "<prerequisitesDistPath>\CMW_Windows<versionNumber>\scripts"
Здесь
<prerequisitesDistPath>
— путь к распакованному дистрибутиву вспомогательного ПО (например,<distPath>\X.X-release-ru-<versionNumber>.prerequisites.windows
). -
Разблокируйте доступ к скачанным из интернета установочным файлам:
.\files_unblock.ps1
-
Проверьте, что установлены все компоненты вспомогательного ПО:
.\prerequisites_list.ps1
Внимание!
Важно, чтобы были установлены все компоненты вспомогательного ПО.
Если каких-либо компонентов не хватает, то установите вспомогательное ПО:
.\prerequisites_install.ps1
-
Скачайте и распакуйте архив с дистрибутивом новой версией ПО.
- В запросе на изменение политики выберите вариант «Да для всех», введя букву A.
-
Перейдите в директорию со скриптами для развёртывания ПО Comindware Platform:
cd "<distPath>\CMW_Windows<versionNumber>\scripts"
Здесь:
<distPath>
— путь к распакованному дистрибутиву ПО Comindware Platform (например,<distPath>\X.X-release-ru-<versionNumber>.windows
). -
Разблокируйте доступ к скачанным из нтернета установочным файлам:
.\files_unblock.ps1
-
Установите новую версию ПО:
.\version_install.ps1
-
Удостоверьтесь, что ПО установлено, вызвав список установленных версий ПО:
.\version_list.ps1
Пример списка установленных версий ПО:
Running script version_list.ps1.
====================================================================
Source folder: C:\Program Files\Comindware\CBAP
====================================================================
Version
====================================================================
5.0.13286.0
5.0.13334.0
####################################################################
Command executed.
Complete script version_list.ps1.
####################################################################
Status: Completed
-
Удалите экземпляр ПО старой версии:
.\instance_delete.ps1 -name <instanceName> -clear
Ключи:
-name
— имя экземпляра.-clear
— удалить следующие объекты:- все файлы, папки, базу данных и пользовательские файлы экземпляра ПО;
- директорию экземпляра ПО вида
C:\ProgramData\Comindware\Instances\<instanceName>
; - все службы экземпляра ПО;
- сайт и пул приложения из IIS.
-
Создайте экземпляр ПО новой версии:
.\instance_create.ps1 -name <instanceName> -port <portNumber> -version <versionNumber>
Ключи:
-name
— имя экземпляра;-version
— номер версии ПО;-port
(необязательно) — порт для экземпляра ПО (по умолчанию: 80).
-
По окончании создания скрипт выведет информацию о компонентах экземпляра ПО. Удостоверьтесь, что компоненты успешно установлены.
Если какая-либо из служб имеет статус
FAILED
, перезапустите её. Например:.\instance_stop.ps1 -name <instanceName>
.\adapterhost_stop.ps1 <instanceName>
.\apigateway_stop.ps1 <instanceName>
.\instance_start.ps1 -name <instanceName>
.\adapterhost_start.ps1 <instanceName>
.\apigateway_start.ps1 <instanceName>
-
Восстановите конфигурацию IIS для экземпляра ПО из резервной копии:
cd c:\Windows\system32\inetsrv\
appcmd restore backup "<iis-config-backup>"
-
Перезапустите службу IIS для применения изменений:
Restart-WebAppPool -Name <instanceAppPool>
Здесь
<instanceAppPool>
— имя пула приложений для экземпляра ПО. -
Отредактируйте файлы конфигурации экземпляра ПО и вспомогательных служб в соответствии с резервными копиями, сохранёнными ранее:
C:\ProgramData\сomindware\Instances\<instanceName>\сonfig\adapterhost.yml
C:\ProgramData\сomindware\Instances\<instanceName>\сonfig\apigateway.yml
C:\ProgramData\сomindware\Instances\<instanceName>\сonfig\Ignite.config
C:\ProgramData\сomindware\configs\instance\<instanceName>.yml
-
Восстановите локальные переменные среды согласно сохранённым резервным копиям:
rundll32 sysdm.cpl,EditEnvironmentVariables
-
Перезапустите службы, настройки которых были изменены, например:
cd "<distPath>\CMW_Windows<versionNumber>\scripts"
.\instance_stop.ps1 -name <instanceName>
.\apigateway_stop.ps1 -name <instanceName>
.\adapterhost_stop.ps1 -name <instanceName>
.\apigateway_start.ps1 -name <instanceName>
.\instance_start.ps1 -name <instanceName>
.\adapterhost_start.ps1 -name <instanceName>
-
Откройте сайт экземпляра ПО в браузере, одновременно открыв выдачу журналов экземпляра в PowerShell:
Get-Content "C:\ProgramData\comindware\Instances\<instanceName>\Logs\heartbeat_<ГГГГ-ММ-ДД>.log" -Wait
Здесь
<ГГГГ-ММ-ДД>
— текущая дата.См. «Подсистема журналирования».
-
В браузере выполните инициализацию экземпляра ПО, выполните вход и проверьте работоспособность ПО.
-
Остановите экземпляр ПО:
.\instance_stop.ps1 -name <instanceName>
-
Удалите или переименуйте директорию
Database
в директории экземпляра ПО:Remove-Item -Path "C:\ProgramData\comindware\Instances\<instanceName>\Database" -Recurse
-
Скопируйте в экземпляр ПО сохранённую ранее резервную копию директории с базой данных экземпляра ПО:
Copy-Item -Path "<config_backup_path>\Database" -Destination "C:\ProgramData\сomindware\Instances\<instanceName>" -Recurse -Force
-
Запустите экземпляр ПО:
.\instance_start.ps1 -name <instanceName>
-
Откройте сайт экземпляра ПО в браузере, одновременно открыв выдачу журналов экземпляра в PowerShell:
Get-Content "C:\ProgramData\comindware\Instances\<instanceName>\Logs\heartbeat_<ГГГГ-ММ-ДД>.log" -Wait
-
Дождитесь завершения обновления структуры данных и проверьте его успешное выполнение.
Внимание!
При обновлении с версии 4.7.2 на версии 4.7.3-5.0 обновляется структура базы данных.
После этого необходимо вручную удалить некоторые данные кэша в старом формате.
Поэтому продолжать обновление версии экземпляра ПО можно только после успешного обновления структуры данных.
- Удостоверьтесь, что появились журналы обновления:
C:\ProgramData\сomindware\Instances\<instanceName>\Logs\UpgradeOntology_<ГГГГ-ММ-ДД>.log
C:\ProgramData\сomindware\Instances\<instanceName>\Logs\upgrade<ГГГГ-ММ-ДД>.log
- Удостоверьтесь, что в журнале
UpgradeOntology_<ГГГГ-ММ-ДД>.log
последняя запись содержит строкуUpgrade of ontology completed successfully
. - Удостоверьтесь, что в журнале
upgrade<ГГГГ-ММ-ДД>.log
последняя запись содержит строкуUpgrade completed
. - Удостоверьтесь, что в журналах отсутствуют ошибки обновления. Найдите их по ключевому слову
error
. - Если обновление выполнено успешно, переходите к шагу 29.
-
Если в журнале обновления имеются ошибки:
- Не переходите к шагу 29.
- Снова установите для экземпляра старую версию ПО.
- Восстановите базу данных из резервной копии.
- Обратитесь в службу поддержки Comindware, предоставив журналы обновления и ошибок для анализа.
- Удостоверьтесь, что появились журналы обновления:
-
Создайте резервную копию экземпляра ПО. См. «Настройка конфигураций и запуск резервного копирования».
- Остановите экземпляр ПО.
- Распакуйте резервную копию.
-
Перейдите в директорию
<dbBackupFolder>\Database\db\node*
.Здесь
<dbBackupFolder>
— путь к распакованной резервной копии экземпляра ПО. -
Удалите из неё следующие директории кэшей:
Remove-Item cacheGroup-*-TableIdentity -Recurse -Force
Remove-Item cacheGroup-*-TableIdentityReplicated -Recurse -Force
Remove-Item cacheGroup-*Value -Recurse -Force
Remove-Item cacheGroup-*ValueReplicated -Recurse -Force
Remove-Item cache-ignite-sys-cache -Recurse -Force
Remove-Item cp -Recurse -Force
Remove-Item metastorage -Recurse -Force
Remove-Item cacheGroup-Keys -Recurse -Force
-
Очистите директорию с базой данных экземпляра ПО:
Remove-Item -Path "C:\ProgramData\comindware\Instances\<instanceName>\Database\*" -Recurse -Force
-
Скопируйте очищенную резервную копию в директорию с базой данных:
Copy-Item -Path "<dbBackupFolder>\Database\*" -Destination "C:\ProgramData\comindware\Instances\<instanceName>\Database" -Recurse -Force
-
Запустите экземпляр ПО.
- Откройте сайт экземпляра ПО в браузере, дождитесь его инициализации и выполните вход.
- Проверьте и при необходимости исправьте конфигурацию экземпляра ПО. См. «Проверка и настройка конфигурации экземпляра ПО Comindware Platform после восстановления из резервной копии».
- Проверьте и работоспособность экземпляра ПО.
- Создайте резервную копию работоспособного экземпляра Comindware Platform.
Эта статья была полезна 1 чел.