Aggiornare il provider di risorse MySQL nell'hub di Azure Stack

Importante

A partire dalla compilazione dell'hub di Azure Stack 2108, i provider di risorse SQL e MySQL vengono offerti alle sottoscrizioni a cui è stato concesso l'accesso. Se si vuole iniziare a usare questa funzionalità o se è necessario eseguire l'aggiornamento da una versione precedente, aprire un caso di supporto e i tecnici di supporto guideranno l'utente attraverso il processo di distribuzione o aggiornamento.

Importante

Prima di aggiornare il provider di risorse, esaminare le note sulla versione per informazioni sulle nuove funzionalità, correzioni e eventuali problemi noti che potrebbero influire sulla distribuzione. Le note sulla versione specificano anche la versione minima dell'hub di Azure Stack necessaria per il provider di risorse.

Importante

L'aggiornamento del provider di risorse non aggiornerà l'hosting del server MySQL.

Quando l'hub di Azure Stack rilascia una nuova build, è possibile rilasciare una nuova scheda del provider di risorse MySQL. Anche se l'adattatore esistente continua a funzionare, è consigliabile eseguire l'aggiornamento alla build più recente non appena possibile.

Versione supportata dell'hub di Azure Stack Versione di MySQL RP Windows Server in cui è in esecuzione il servizio RP
2206, 2301, 2306 MySQL RP versione 2.0.13.x Componente aggiuntivo Di Microsoft AzureStack Windows Server 1.2009.0
2108, 2206 MySQL RP versione 2.0.6.x Componente aggiuntivo Di Microsoft AzureStack Windows Server 1.2009.0

Aggiornare il provider di risorse di MySQL Server V2

Se mySQL RP V2 è già stato distribuito e si vuole verificare la disponibilità di aggiornamenti, vedere Come applicare gli aggiornamenti al provider di risorse.

Se si vuole aggiornare da MySQL RP V1 a MySQL RP V2, assicurarsi di aver prima aggiornato a MySQL RP V1.1.93.x, applicare il processo di aggiornamento della versione principale per l'aggiornamento da MySQl RP V1 a MySQL RP V2.

Aggiornamento da MySQL RP V1.1.93.x a MySQL RP V2.0.6.0

Prerequisiti

  1. Assicurarsi di avere aggiornato MySQL RP V1 all'ultima versione 1.1.93.x. In Sottoscrizione provider predefinita trovare il gruppo di risorse RP (formato di denominazione: system.<region>. mysqladapter. Confermare il tag di versione e il nome della macchina virtuale RP MySQL nel gruppo di risorse. Se si è ancora in una versione precedente e è necessario aggiornare a 1.1.93.x, aprire un caso di supporto per assistenza.

  2. Aprire un caso di supporto per ottenere il pacchetto MajorVersionUpgrade e aggiungere la sottoscrizione al marketplace ASH allowlist per la versione V2 futura.

  3. Scaricare Microsoft AzureStack Add-On RP Windows Server 1.2009.0 nel marketplace.

  4. Assicurarsi che l'hub di Azure Stack soddisfi i prerequisiti di integrazione del data center.

    Prerequisito Riferimento
    L'inoltro DNS condizionale è impostato correttamente. Integrazione del data center dell'hub di Azure Stack - DNS
    Le porte in ingresso per i provider di risorse sono aperte. Integrazione del data center dell'hub di Azure Stack - Porte e protocolli in ingresso
    L'oggetto del certificato PKI e SAN sono impostati correttamente. Prerequisiti obbligatori per la distribuzione dell'hub di Azure Stack
    Prerequisiti del certificato PaaS dell'hub di Azure Stack
  5. (per ambiente disconnesso) Installare i moduli di PowerShell necessari, analogamente al processo di aggiornamento usato per distribuire il provider di risorse MySQL.

  6. Preparare l'URI del connettore MySQL con la versione richiesta. Per informazioni dettagliate, vedere Distribuire il provider di risorse MySQL. ad esempio https://< storageAcountName.BLOB>.<area>.<FQDN>/containerName>/<mysql-connector-net-8.0.21.msi

Trigger MajorVersionUpgrade

Eseguire lo script seguente da una console di PowerShell con privilegi elevati per eseguire l'aggiornamento della versione principale.

Nota

Assicurarsi che il computer client in cui si esegue lo script sia di versione del sistema operativo non precedente a Windows 10 o Windows Server 2016 e il computer client dispone dell'architettura del sistema operativo X64.

Importante

È consigliabile usare Clear-AzureRmContext -Scope CurrentUser e Clear-AzureRmContext -Scope Process per cancellare la cache prima di eseguire lo script di distribuzione o aggiornamento.

# 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

Nota

L'indirizzo DNS e l'indirizzo IP corrispondente di MySQL RP V2 sono diversi. Per ottenere il nuovo indirizzo IP pubblico, è possibile contattare il supporto per richiedere un vetro di interruzione DRP e trovare la risorsa MySQLRPVM1130-PublicIP. È anche possibile eseguire "nslookup mysqlrp.dbadapter.<fqdn>" da un computer client che ha già superato il test dell'endpoint per scoprire l'IP pubblico.

Verificare che l'aggiornamento sia riuscito

  1. Lo script MajorVersionUpgrade eseguito senza errori.
  2. Controllare il provider di risorse nel marketplace e assicurarsi che MySQL RP 2.0 sia stato installato correttamente.
  3. Il vecchio sistema.<location.mysqladapter> resource group e sistema.<il gruppo di risorse location.dbadapter.dns> nella sottoscrizione del provider predefinito non verrà eliminato automaticamente dallo script.
  • È consigliabile mantenere l'account di archiviazione e il Key Vault nel gruppo di risorse mysqladapter per qualche tempo. Se dopo l'aggiornamento, qualsiasi utente tenant osserva metadati di database o di accesso non coerenti, è possibile ottenere il supporto per ripristinare i metadati dal gruppo di risorse.
  • Dopo aver verificato che la zona DNS nel gruppo di risorse dbadapter.dns sia vuota senza record DNS, è possibile eliminare il gruppo di risorse dbadapter.dns.
  • [IMPORTANTE] Non usare lo script di distribuzione V1 per disinstallare la versione V1. Dopo aver completato l'aggiornamento e confermare che l'aggiornamento è stato completato correttamente, è possibile eliminare manualmente il gruppo di risorse dalla sottoscrizione del provider.

Aggiornamento da MySQL RP V1 versione precedente a MySQL RP V1.1.93.x

L'aggiornamento cumulativo del provider di risorse MySQL V1. È possibile eseguire direttamente l'aggiornamento alla versione 1.1.93.x.

Per aggiornare il provider di risorse a 1.1.93.x, usare lo script diUpdateMySQLProvider.ps1 . Usare l'account del servizio con diritti amministrativi locali ed è un proprietario della sottoscrizione. Questo script di aggiornamento è incluso nel download del provider di risorse.

Per aggiornare il provider di risorse, usare lo script diUpdateMySQLProvider.ps1 . Usare l'account del servizio con diritti amministrativi locali ed è un proprietario della sottoscrizione. Lo script di aggiornamento è incluso nel download del provider di risorse.

Il processo di aggiornamento è simile al processo usato per Distribuire il provider di risorse. Lo script di aggiornamento usa gli stessi argomenti dello script DeployMySqlProvider.ps1 e sarà necessario fornire informazioni sul certificato.

Aggiornare i processi di script

Lo script UpdateMySQLProvider.ps1 crea una nuova macchina virtuale con l'immagine del sistema operativo più recente, distribuisce il codice del provider di risorse più recente e esegue la migrazione delle impostazioni dal provider di risorse precedente al nuovo provider di risorse.

Nota

È consigliabile scaricare l'immagine del componente aggiuntivo Microsoft AzureStack Windows Server 1.2009.0 da Gestione marketplace. Se è necessario installare un aggiornamento, è possibile inserire un singolo pacchetto MSU nel percorso di dipendenza locale. Lo script avrà esito negativo se in questo percorso sono presenti più file MSU.

Dopo che lo script UpdateMySQLProvider.ps1 crea una nuova macchina virtuale, lo script esegue la migrazione delle impostazioni seguenti dalla macchina virtuale del provider di risorse precedente:

  • informazioni sul database
  • informazioni sul server di hosting
  • record DNS richiesto

Importante

È consigliabile usare Clear-AzureRmContext -Scope CurrentUser e Clear-AzureRmContext -Scope Process per cancellare la cache prima di eseguire lo script di distribuzione o aggiornamento.

Aggiornare i parametri dello script

Specificare i parametri seguenti dalla riga di comando quando si esegue lo script di PowerShell UpdateMySQLProvider.ps1 . Se non si esegue o se la convalida dei parametri ha esito negativo, viene richiesto di fornire i parametri necessari.

Nome parametro Descrizione Commento o valore predefinito
CloudAdminCredential Credenziali per l'amministratore del cloud, necessarie per accedere all'endpoint con privilegi. Obbligatorio
AzCredential Credenziali per l'account amministratore del servizio hub di Azure Stack. Usare le stesse credenziali usate per la distribuzione dell'hub di Azure Stack. Lo script avrà esito negativo se l'account usato con AzCredential richiede l'autenticazione a più fattori (MFA). Obbligatorio
VMLocalCredential Credenziali per l'account amministratore locale della macchina virtuale del provider di risorse MySQL. Obbligatorio
PrivilegedEndpoint Indirizzo IP o nome DNS dell'endpoint con privilegi. Obbligatorio
AzureEnvironment Ambiente di Azure dell'account amministratore del servizio usato per la distribuzione dell'hub di Azure Stack. Obbligatorio solo per le distribuzioni di Microsoft Entra. I nomi di ambiente supportati sono AzureCloud, AzureUSGovernment o se si usa un ID di Microsoft Entra Cina, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Anche il file con estensione pfx del certificato deve essere inserito in questa directory. Facoltativo (obbligatorio per il multinodo)
DefaultSSLCertificatePassword Password per il certificato pfx. Obbligatorio
MaxRetryCount Numero di tentativi di ripetizione di ogni operazione in caso di errore. 2
RetryDuration Intervallo di timeout tra i tentativi, espresso in secondi. 120
Disinstalla Rimuovere il provider di risorse e tutte le risorse associate (vedere le note seguenti). No
DebugMode Impedisce la pulizia automatica in caso di errore. No
AcceptLicense Ignora la richiesta di accettare la licenza GPL. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

Esempio di script di aggiornamento

Se si aggiorna la versione del provider di risorse MySQL alla versione 1.1.33.0 o versioni precedenti, è necessario installare versioni specifiche dei moduli AzureRm.BootStrapper e Hub di Azure Stack in PowerShell.

Se si aggiorna il provider di risorse MySQL alla versione 1.1.47.0 o successiva, è possibile ignorare questo passaggio. Lo script di distribuzione scaricherà e installerà automaticamente i moduli di PowerShell necessari per il percorso C:\Programmi\SqlMySqlPsh.

Nota

Se la cartella C:\Programmi\SqlMySqlPsh esiste già con il modulo powerShell scaricato, è consigliabile pulire questa cartella prima di eseguire lo script di aggiornamento. Ciò consente di assicurarsi che la versione corretta del modulo di PowerShell venga scaricata e usata.

# 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

Nota

Nello scenario disconnesso, è necessario scaricare i moduli di PowerShell necessari e registrare il repository manualmente come prerequisito. Per altre informazioni, vedere Distribuire il provider di risorse MySQL

L'esempio seguente illustra lo script UpdateMySQLProvider.ps1 che è possibile eseguire da una console di PowerShell con privilegi elevati. Assicurarsi di modificare le informazioni e le password delle variabili in base alle esigenze:

# 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

Al termine dell'aggiornamento dello script del provider di risorse, chiudere la sessione corrente di PowerShell.

Passaggi successivi

Gestire il provider di risorse MySQL