Обновление поставщика ресурсов MySQL в Azure Stack Hub
Важно!
Начиная с сборки 2108 Azure Stack Hub поставщики ресурсов SQL и MySQL предлагаются для подписок, которым предоставлен доступ. Если вы хотите начать использовать эту функцию или обновить ее с предыдущей версии, откройте обращение в службу поддержки , а наши инженеры службы поддержки помогут вам выполнить развертывание или обновление.
Важно!
Перед обновлением поставщика ресурсов просмотрите примечания к выпуску, чтобы узнать о новых функциях, исправлениях и любых известных проблемах, которые могут повлиять на развертывание. В заметках о выпуске также указывается минимальная версия Azure Stack Hub, необходимая для поставщика ресурсов.
Важно!
Обновление поставщика ресурсов не приведет к обновлению размещенного сервера MySQL.
При обновлении сборки Azure Stack Hub может быть выпущен новый адаптер поставщика ресурсов MySQL. Имеющийся адаптер может продолжать работу. Тем не менее мы рекомендуем как можно скорее обновить его до последней сборки.
| Поддерживаемая версия Azure Stack Hub | Версия MySQL RP | Windows Server, на котором запущена служба RP |
|---|---|---|
| 2108 | MySQL RP версии 2.0.6.x | Надстройка Microsoft AzureStack RP Windows Server 1.2009.0 |
| 2108, 2102, 2008, 2005 | MySQL RP версии 1.1.93.5 | Windows Server надстройки Microsoft AzureStack |
| 2005, 2002, 1910 | Поставщик ресурсов MySQL версии 1.1.47.0 | Windows Server 2016 Datacenter — основные серверные компоненты |
| 1908 | Поставщик ресурсов MySQL версии 1.1.33.0 | Windows Server 2016 Datacenter — основные серверные компоненты |
Обновление поставщика ресурсов сервера MySQL версии 2
Если вы уже развернули MySQL RP версии 2 и хотите проверить наличие обновлений, проверьте, как применить обновления к поставщику ресурсов.
Если вы хотите обновить mySQL RP версии 1 до MySQL RP версии 2, убедитесь, что вы впервые обновили MySQL RP версии 1.1.93.x, а затем примените основной процесс обновления версии для обновления с MySQl RP V1 до MySQL RP версии 2.
Обновление mySQL RP версии 1.1.93.x до MySQL RP версии 2.0.6.0
Предварительные требования
Убедитесь, что вы обновили MySQL RP версии 1 до последней версии 1.1.93.x. В разделе "Подписка поставщика по умолчанию" найдите группу ресурсов RP (формат именования: system.
<region>). mysqladapter). Подтвердите тег версии и имя виртуальной машины MySQL RP в группе ресурсов.Откройте обращение в службу поддержки , чтобы получить пакет MajorVersionUpgrade и добавить подписку в список разрешений ASH Marketplace для будущей версии 2.
Скачайте Microsoft AzureStack Add-On RP Windows Server 1.2009.0 в Marketplace.
Убедитесь, что выполнены предварительные требования к интеграции центра обработки данных.
Предварительное требование Справочник Условное перенаправление DNS настроено правильно. Интеграция DNS центра обработки данных Azure Stack Hub Открыты входящие порты для поставщиков ресурсов. Порты и протоколы (входящие) Субъект сертификата PKI и SAN настроены правильно. Обязательные сертификаты
Необязательные сертификаты PaaS(для отключенной среды) Установите необходимые модули PowerShell, аналогичные процессу обновления, используемому для развертывания поставщика ресурсов MySQL.
Подготовьте универсальный код ресурса (URI) соединителя MySQL. Дополнительные сведения см. в разделе "Развертывание поставщика ресурсов MySQL". Например, https://< storageAcountName.blob>.< регион>.< Полное доменное имя,имя><>_контейнера/mysql-connector-net-8.0.21.msi
Триггер MajorVersionUpgrade
Выполните следующий сценарий из консоли PowerShell с повышенными привилегиями, чтобы выполнить обновление основной версии.
Примечание
Убедитесь, что клиентский компьютер, на котором выполняется скрипт, имеет версию ОС не старше Windows 10 или Windows Server 2016, а клиентский компьютер имеет архитектуру операционной системы X64.
# 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-адрес, вы можете обратиться в службу поддержки, чтобы потребовать разбиения DRP и найти ресурс MySQLRPVM1130-PublicIP. Можно также запустить команду nslookup mysqlrp.dbadapter.< полное доменное имя> с клиентского компьютера, который уже прошел проверку конечной точки, чтобы узнать общедоступный IP-адрес.
Проверка успешного обновления
- Скрипт MajorVersionUpgrade выполняется без ошибок.
- Проверьте поставщик ресурсов в Marketplace и убедитесь, что MySQL RP 2.0 успешно установлен.
- Старая система.< группа ресурсов и система 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 создает новую виртуальную машину с последним образом ОС, развертывает последний код поставщика ресурсов и переносит параметры из старого поставщика ресурсов в новый поставщик ресурсов.
Примечание
Рекомендуется скачать образ надстройки Microsoft AzureStack для Windows Server 1.2009.0 из 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. Требуется только для развертываний Azure AD. Поддерживаемые имена среды — AzureCloud, AzureUSGovernment или, в случае использования Azure AD для Китая, — 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.