Condividi tramite


Aggiornare il provider di risorse SQL

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 SQL Server.

Un nuovo provider di risorse SQL potrebbe essere rilasciato quando l'hub di Azure Stack viene aggiornato a una nuova compilazione. Anche se il provider di risorse esistente continua a funzionare, è consigliabile aggiornare la build più recente non appena possibile.

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

Aggiornare SQL Server provider di risorse V2

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

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

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

Prerequisiti

  1. Assicurarsi di avere aggiornato SQL RP V1 all'ultima versione 1.1.93.x. In Sottoscrizione provider predefinita trovare il gruppo di risorse RP (formato di denominazione: system.<region>. sqladapter). Verificare il tag di versione e il nome della macchina virtuale RP SQL 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. Verificare che i prerequisiti di integrazione del data center siano soddisfatti.

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
  1. (per ambiente disconnesso) Installare i moduli di PowerShell necessari, analogamente al processo di aggiornamento usato per distribuire il provider di risorse.

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-SQLRP'

# 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\sqlcert\SSL.pfx"

# 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\MajorVersionUpgradeSQLProvider.ps1 -AzureEnvironment $AzureEnvironment -AzCredential $AdminCreds -CloudAdminCredential $CloudAdminCreds -Privilegedendpoint $privilegedEndpoint -PfxPassword $PfxPass -PfxCert $PfxFilePath

Nota

L'indirizzo DNS e l'indirizzo IP corrispondente di SQL 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 SQLRPVM1130-PublicIP. È anche possibile eseguire "nslookup sqlrp.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 l'installazione di SQL RP 2.0 sia stata completata correttamente.
  3. Il vecchio sistema.<gruppo di risorse location.sqladapter> 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 sqladapter 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 SQL RP V1 versione precedente a SQL RP V1.1.93.x

L'aggiornamento cumulativo del provider di risorse SQL 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 diUpdateSQLProvider.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.

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

Aggiornare i processi di script

Lo script UpdateSQLProvider.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 UpdateSQLProvider.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

È possibile specificare i parametri seguenti dalla riga di comando quando si esegue lo script di PowerShell UpdateSQLProvider.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 SQL. 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 È anche necessario inserire il file con estensione pfx del certificato in questa directory. Facoltativo per un singolo nodo, ma obbligatorio per più nodi
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 Rimuove il provider di risorse e tutte le risorse associate. No
DebugMode Impedisce la pulizia automatica in caso di errore. No

Esempio di PowerShell per gli script di aggiornamento

Se si aggiorna la versione del provider di risorse SQL 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 SQL 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 SQL

Di seguito è riportato un esempio di utilizzo dello script UpdateSQLProvider.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 this might have been changed at installation.
$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 values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "<EnvironmentName>"

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

# The service admin account (this can be Azure AD or AD FS).
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Set the credentials for the new resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("sqlrpadmin", $vmLocalAdminPass)

# Add 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\UpdateSQLProvider.ps1 -AzCredential $AdminCreds -VMLocalCredential $vmLocalAdminCreds -CloudAdminCredential $cloudAdminCreds -PrivilegedEndpoint $privilegedEndpoint -AzureEnvironment $AzureEnvironment -DefaultSSLCertificatePassword $PfxPass -DependencyFilesLocalPath $tempDir\cert

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

Passaggi successivi

Gestire il provider di risorse SQL