Обновление поставщика ресурсов MySQL в Azure Stack Hub

Важно!

Начиная со сборки Azure Stack Hub 2108, поставщики ресурсов SQL и MySQL предлагаются для подписок, которым предоставлен доступ. Если вы хотите начать использовать эту функцию или вам нужно выполнить обновление с предыдущей версии, отправьте обращение в службу поддержки , и наши инженеры службы поддержки помогут вам выполнить процесс развертывания или обновления.

Важно!

Перед обновлением поставщика ресурсов просмотрите примечания к выпуску, чтобы узнать о новых функциях, исправлениях и любых известных проблемах, которые могут повлиять на развертывание. В заметках о выпуске также указывается минимальная версия Azure Stack Hub, необходимая для поставщика ресурсов.

Важно!

Обновление поставщика ресурсов не приведет к обновлению размещенного сервера MySQL.

Когда Azure Stack Hub выпускает новую сборку, мы можем выпустить новый адаптер поставщика ресурсов MySQL. Имеющийся адаптер может продолжать работу. Тем не менее мы рекомендуем как можно скорее обновить его до последней сборки.

Поддерживаемая версия Azure Stack Hub Версия MySQL RP Windows Server, на котором запущена служба RP
2206, 2301, 2306 MySQL RP версии 2.0.13.x Microsoft AzureStack RP Windows Server 1.2009.0
2108, 2206 Поставщик ресурсов MySQL версии 2.0.6.x Microsoft AzureStack RP Windows Server 1.2009.0

Обновление поставщика ресурсов MySQL Server версии 2

Если вы уже развернули MySQL RP версии 2 и хотите проверка обновления, проверка Как применить обновления к поставщику ресурсов.

Если вы хотите выполнить обновление с MySQL RP версии 1 до MySQL RP версии 2, убедитесь, что вы сначала обновили mySQL RP версии 1.1.93.x, а затем примените процесс обновления основной версии для обновления с MySQl RP V1 до MySQL RP V2.

Обновление с MySQL RP версии 1.1.93.x до MySQL RP версии 2.0.6.0

Предварительные требования

  1. Убедитесь, что вы обновили MySQL RP версии 1 до последней версии 1.1.93.x. В разделе Подписка поставщика по умолчанию найдите группу ресурсов RP (формат именования: system.<region>. mysqladapter). Подтвердите тег версии и имя виртуальной машины поставщика ресурсов MySQL в группе ресурсов. Если вы по-прежнему используете старую версию и вам нужно выполнить обновление до 1.1.93.x, обратитесь в службу поддержки.

  2. Откройте обращение в службу поддержки , чтобы получить пакет MajorVersionUpgrade, и добавьте свою подписку в список разрешений ASH Marketplace для будущей версии V2.

  3. Скачайте Microsoft AzureStack Add-On RP Windows Server 1.2009.0 в Marketplace.

  4. Убедитесь, что Azure Stack Hub соответствует предварительным требованиям для интеграции центра обработки данных.

    Предварительное требование Ссылка
    Условное перенаправление DNS настроено правильно. Интеграция DNS центра обработки данных Azure Stack Hub
    Открыты входящие порты для поставщиков ресурсов. Порты и протоколы (входящие)
    Субъект сертификата PKI и SAN настроены правильно. Обязательные сертификаты
    Необязательные сертификаты PaaS
  5. (для отключенной среды) Установите необходимые модули PowerShell аналогично процессу обновления, используемому для развертывания поставщика ресурсов MySQL.

  6. Подготовьте универсальный код ресурса (URI) соединителя MySQL с необходимой версией. Дополнительные сведения см. в статье Развертывание поставщика ресурсов MySQL. Например, https://< storageAcountName.blob>.<регион>.<Полное доменное имя>/<имя>_контейнера/mysql-connector-net-8.0.21.msi

Триггер MajorVersionUpgrade

Выполните следующий скрипт в консоли PowerShell с повышенными привилегиями, чтобы выполнить обновление основной версии.

Примечание

Убедитесь, что клиентский компьютер, на котором выполняется скрипт, имеет версию ОС не старше Windows 10 или Windows Server 2016, а клиентский компьютер имеет архитектуру операционной системы X64.

Важно!

Мы настоятельно рекомендуем использовать Clear-AzureRmContext -Scope CurrentUser и Clear-AzureRmContext -Scope Process , чтобы очистить кэш перед запуском сценария развертывания или обновления.

# Check Operating System version
$osVersion = [environment]::OSVersion.Version
if ($osVersion.Build -lt 10240)
{
    Write-Host "OS version is too old: $osVersion."
    return
}

$osArch = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
if ($osArch -ne "64-bit")
{
    Write-Host "OS Architecture is not 64 bit."
    return
}

# Check LongPathsEnabled registry key
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem'
$longPathsEnabled = 'LongPathsEnabled'
$property = Get-ItemProperty -Path $regPath -Name $longPathsEnabled -ErrorAction Stop
if ($property.LongPathsEnabled -eq 0)
{
    Write-Host "Detect LongPathsEnabled equals to 0, prepare to set the property."
    Set-ItemProperty -Path $regPath -Name $longPathsEnabled -Value 1 -ErrorAction Stop
    Write-Host "Set the long paths property, please restart the PowerShell."
    return
} 

# Use the NetBIOS name for the Azure Stack Hub domain. 
$domain = "YouDomain" 
# For integrated systems, use the IP address of one of the ERCS VMs
$privilegedEndpoint = "YouDomain-ERCS01"
# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "AzureCloud"
# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\extracted-folder\MajorVersionUpgrade-MySQLRP'
# The service admin account can be Azure Active Directory or Active Directory Federation Services.
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)
# Add the cloudadmin credential that's required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)
# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'xxxxxxx' -AsPlainText -Force
# Provide the pfx file path
$PfxFilePath = "C:\tools\mysqlcert\SSL.pfx"
# Local blob uri where stores the required mysql connector
$MySQLConnector = "Provide the MySQL Connector Uri according to Prerequisites step."
# PowerShell modules used by the RP MajorVersionUpgrade are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 
. $tempDir\MajorVersionUpgradeMySQLProvider.ps1 -AzureEnvironment $AzureEnvironment -AzCredential $AdminCreds -CloudAdminCredential $CloudAdminCreds -Privilegedendpoint $privilegedEndpoint -PfxPassword $PfxPass -PfxCert $PfxFilePath -MySQLConnector $MySQLConnector

Примечание

DNS-адрес и соответствующий IP-адрес mySQL RP версии 2 отличаются. Чтобы получить новый общедоступный IP-адрес, можно обратиться в службу поддержки, чтобы требовать аварийного восстановления и найти MySQLRPVM1130-PublicIP ресурс. Можно также запустить nslookup mysqlrp.dbadapter.<fqdn>" от клиентского компьютера, который уже прошел тест конечной точки, чтобы узнать общедоступный IP-адрес.

Проверка успешного обновления

  1. Скрипт MajorVersionUpgrade выполняется без ошибок.
  2. Проверьте поставщик ресурсов в Marketplace и убедитесь, что mySQL RP 2.0 успешно установлен.
  3. Старая система.<location.mysqladapter>, группа ресурсов и система.<Группа ресурсов location.dbadapter.dns> в подписке поставщика по умолчанию не будет автоматически удалена скриптом.
  • Мы рекомендуем хранить учетную запись хранения и Key Vault в группе ресурсов mysqladapter в течение некоторого времени. Если после обновления любой пользователь клиента наблюдает несогласованные метаданные базы данных или имени входа, можно получить поддержку для восстановления метаданных из группы ресурсов.
  • Убедившись, что зона DNS в группе ресурсов dbadapter.dns пуста без записи DNS, можно безопасно удалить группу ресурсов dbadapter.dns.
  • [ВАЖНО] Не используйте сценарий развертывания версии 1 для удаления версии 1. После завершения обновления и подтверждения успешности обновления можно вручную удалить группу ресурсов из подписки поставщика.

Обновление более ранней версии mySQL RP версии 1 до MySQL RP версии 1.1.93.x

Обновление поставщика ресурсов MySQL версии 1 является накопительным. Вы можете напрямую обновить до версии 1.1.93.x.

Чтобы обновить поставщик ресурсов до версии 1.1.93.x, используйте скрипт UpdateMySQLProvider.ps1 . Используйте учетную запись службы с правами локального администратора и владельца подписки. Этот скрипт обновления включен в скачивание поставщика ресурсов.

Чтобы обновить поставщик ресурсов, используйте скрипт UpdateMySQLProvider.ps1 . Используйте учетную запись службы с правами локального администратора и владельца подписки. Скрипт обновления включается в скачивание поставщика ресурсов.

Процесс обновления осуществляется так же, как и развертывание поставщика ресурсов. Скрипт обновления использует те же аргументы, что и скрипт DeployMySqlProvider.ps1, и вам потребуется указать сведения о сертификате.

Процессы скрипта обновления

Скрипт UpdateMySQLProvider.ps1 создает виртуальную машину с последней версией образа ОС, развертывает последний код поставщика ресурсов и переносит параметры из старого поставщика ресурсов в новый поставщик ресурсов.

Примечание

Рекомендуется скачать образ windows Server 1.2009.0 надстройки Microsoft AzureStack из Marketplace Management. Если необходимо установить обновление, один MSU-пакет можно поместить в локальный каталог зависимого элемента. Если поместить несколько MSU-файлов в этом расположении, выполнение скрипта завершится ошибкой.

После того как скрипт UpdateMySQLProvider.ps1 создаст новую виртуальную машину, сценарий переносит следующие параметры из старой виртуальной машины поставщика ресурсов:

  • сведения о базе данных;
  • сведения о сервере размещения;
  • необходимые записи DNS.

Важно!

Мы настоятельно рекомендуем использовать Clear-AzureRmContext -Scope CurrentUser и Clear-AzureRmContext -Scope Process , чтобы очистить кэш перед запуском сценария развертывания или обновления.

Обновление параметров сценария

Укажите следующие параметры из командной строки при запуске сценария PowerShell UpdateMySQLProvider.ps1. Если вы не зададите нужные параметры или их значения не пройдут проверку, вам будет предложено указать требуемые параметры.

Имя параметра Описание Комментарий или значение по умолчанию
CloudAdminCredential Учетные данные администратора облака, необходимые для доступа к привилегированной конечной точке. Обязательно
AzCredential Учетные данные администратора службы Azure Stack Hub. Используйте те же учетные данные, которые вы указали при развертывании Azure Stack Hub. Сценарий завершится ошибкой, если для учетной записи, используемой с AzCredential, требуется многофакторная проверка подлинности (MFA). Обязательно
VMLocalCredential Учетные данные для учетной записи локального администратора виртуальной машины поставщика ресурсов MySQL. Обязательно
PrivilegedEndpoint IP-адрес или DNS-имя привилегированной конечной точки. Обязательно
AzureEnvironment Среда Azure учетной записи администратора службы, которая использовалась для развертывания Azure Stack Hub. Требуется только для Microsoft Entra развертываний. Поддерживаемые имена сред: AzureCloud, AzureUSGovernment или, если используется идентификатор Microsoft Entra Для Китая, AzureChinaCloud. AzureCloud;
DependencyFilesLocalPath В этот каталог нужно поместить и PFX-файл сертификата. Необязательно. (Обязательно, если в системе несколько узлов).
DefaultSSLCertificatePassword Пароль для PFX-файла сертификата. Обязательно
MaxRetryCount Число повторов каждой операции в случае сбоя. 2
RetryDuration Время ожидания между повторными попытками в секундах. 120
Удаление Удаляет поставщик ресурсов и все связанные с ним ресурсы (см. примечания ниже). нет
DebugMode Отключает автоматическую очистку в случае сбоя. нет
AcceptLicense Пропускает запрос на принятие условий лицензии GPL. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

Обновление примера сценария

При обновлении поставщика ресурсов MySQL до версии 1.1.33.0 или предыдущих версий необходимо установить в PowerShell определенные версии модулей AzureRm.BootStrapper и Azure Stack Hub.

Если вы обновляете поставщик ресурсов MySQL до версии 1.1.47.0 или более поздней, этот шаг можно пропустить. Сценарий развертывания автоматически скачает и установит необходимые модули PowerShell для пути C:\Program Files\SqlMySqlPsh.

Примечание

Если папка C:\Program Files\SqlMySqlPsh уже существует с загруженным модулем PowerShell, рекомендуется очистить эту папку перед запуском скрипта обновления. Это необходимо, чтобы убедиться, что была загружена и использована правильная версия модуля PowerShell.

# Run the following scripts when updating to version 1.1.33.0 only.
# Install the AzureRM.Bootstrapper module, set the profile and install the AzureStack module.
# Note that this might not be the most currently available version of Azure Stack Hub PowerShell.
Install-Module -Name AzureRm.BootStrapper -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

Примечание

В отключенном сценарии необходимо скачать необходимые модули PowerShell и зарегистрировать репозиторий вручную в качестве необходимого компонента. Дополнительные сведения можно получить в разделе Развертывание поставщика ресурсов MySQL

В следующем примере показан сценарий UpdateMySQLProvider.ps1, который можно запустить из консоли PowerShell с повышенными привилегиями. Не забудьте изменить данные переменной и пароли, если это требуется.

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but could have been changed at install time.
$domain = "AzureStack" 

# For integrated systems, use the IP address of one of the ERCS VMs.
$privilegedEndpoint = "AzS-ERCS01" 

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported environment names are AzureCloud, AzureUSGovernment, or AzureChinaCloud. 
$AzureEnvironment = "<EnvironmentName>"

# Point to the directory where the resource provider installation files were extracted. 
$tempDir = 'C:\TEMP\MYSQLRP' 

# The service admin account (can be Azure Active Directory or Active Directory Federation Services).
$serviceAdmin = "admin@mydomain.onmicrosoft.com" 
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass) 
 
# Set credentials for the new resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("mysqlrpadmin", $vmLocalAdminPass) 
 
# And the cloudadmin credential required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass) 

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 

# For version 1.1.47.0 or later, the PowerShell modules used by the RP deployment are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 

# Change directory to the folder where you extracted the installation files.
# Then adjust the endpoints.
.$tempDir\UpdateMySQLProvider.ps1 -AzCredential $AdminCreds -VMLocalCredential $vmLocalAdminCreds -CloudAdminCredential $cloudAdminCreds -PrivilegedEndpoint $privilegedEndpoint -AzureEnvironment $AzureEnvironment -DefaultSSLCertificatePassword $PfxPass -DependencyFilesLocalPath $tempDir\cert -AcceptLicense

После завершения скрипта обновления поставщика ресурсов закройте текущий сеанс PowerShell.

Дальнейшие действия

Обслуживание поставщика ресурсов MySQL