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

Importante

A partire dalla build 2108 dell'hub di Azure Stack, 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 del supporto ti guideranno attraverso il processo di distribuzione o aggiornamento.

Importante

Prima di aggiornare il provider di risorse, esaminare le note sulla versione per informazioni su 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à il server MySQL di hosting.

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 il prima possibile.

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

Aggiornare il provider di risorse del server MySQL 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 eseguire l'aggiornamento da MySQL RP V1 a MySQL RP V2, assicurarsi di eseguire prima l'aggiornamento a MySQL RP V1.1.93.x, quindi applicare il processo di aggiornamento della versione principale per eseguire 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 aggiornare MySQL RP V1 alla versione 1.1.93.x più recente. In Sottoscrizione provider predefinita trovare il gruppo di risorse RP (formato di denominazione: system.<region>. mysqladapter). Verificare il tag di versione e il nome della macchina virtuale MySQL RP nel gruppo di risorse. Se si usa ancora una versione precedente ed è necessario eseguire l'aggiornamento alla versione 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 all'elenco di elementi consentiti del marketplace ASH 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 per la distribuzione dell'hub di Azure Stack
  5. (per l'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> geografica.<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 che il computer client disponga 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 tecnico per richiedere un break glass 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 individuare l'indirizzo IP pubblico.

Verificare che l'aggiornamento sia riuscito

  1. Lo script MajorVersionUpgrade viene 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.<gruppo di risorse e sistema location.mysqladapter>.<il gruppo di risorse location.dbadapter.dns> nella sottoscrizione del provider predefinita non verrà eliminato automaticamente dallo script.
  • È consigliabile mantenere l'account di archiviazione e il Key Vault nel gruppo di risorse mysqladapter per un certo periodo di tempo. Se dopo l'aggiornamento, qualsiasi utente tenant osserva metadati di accesso o database incoerenti, è possibile ottenere 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 il completamento dell'aggiornamento e la conferma dell'esito positivo dell'aggiornamento, è possibile eliminare manualmente il gruppo di risorse dalla sottoscrizione del provider.

Aggiornamento dalla versione precedente di MySQL RP V1 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 alla versione 1.1.93.x, usare lo script UpdateMySQLProvider.ps1 . Usare l'account del servizio con diritti amministrativi locali ed è proprietario della sottoscrizione. Questo script di aggiornamento è incluso nel download del provider di risorse.

Per aggiornare il provider di risorse, usare lo script UpdateMySQLProvider.ps1 . Usare l'account del servizio con diritti amministrativi locali ed è 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 ed è necessario fornire informazioni sul certificato.

Aggiornare i processi di script

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

Nota

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

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
  • hosting delle informazioni sul server
  • record DNS obbligatorio

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 . In caso contrario o in caso di esito negativo della convalida dei parametri, verrà richiesto di specificare i parametri necessari.

Nome parametro Descrizione Commento o valore predefinito
CloudAdminCredential Le credenziali per l'amministratore 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 Microsoft Entra ID Cina, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Il file con estensione pfx del certificato deve essere inserito anche in questa directory. Facoltativo (obbligatorio per più nodi)
DefaultSSLCertificatePassword Password per il certificato pfx. Obbligatorio
MaxRetryCount Numero di tentativi di ripetizione di ogni operazione se si verifica un errore. 2
RetryDuration Intervallo di timeout tra tentativi, 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 il prompt per 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 Azure Stack Hub 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 scarica e installa automaticamente i moduli di PowerShell necessari per il percorso C:\Programmi\SqlMySqlPsh.

Nota

Se la cartella C:\Programmi\SqlMySqlPsh esiste già con il modulo di PowerShell scaricato, è consigliabile pulire questa cartella prima di eseguire lo script di aggiornamento. Si tratta di assicurarsi che la versione corretta del modulo di PowerShell sia 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 manualmente il repository come prerequisito. Per altre informazioni, vedere Distribuire il provider di risorse MySQL

Nell'esempio seguente viene illustrato 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 dello script di aggiornamento del provider di risorse, chiudere la sessione di PowerShell corrente.

Passaggi successivi

Gestire il provider di risorse MySQL