Aggiornare il provider di risorse SQL

Importante

I provider di risorse SQL e MySQL per hub di Azure Stack sono deprecati e non sono disponibili per l'onboarding di nuovi clienti. Distribuire invece SQL o MySQL direttamente nelle macchine virtuali e gestirli usando strumenti e procedure standard. Le distribuzioni esistenti dei provider di risorse continuano a essere supportate, ma non è previsto alcun nuovo sviluppo di funzionalità o onboarding.

Importante

Prima di aggiornare il provider di risorse, esaminare le note sulla versione per informazioni sulle nuove funzionalità, sulle correzioni e sugli 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 aggiorna il SQL Server di hosting.

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, eseguire l'aggiornamento alla build più recente 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 Modulo aggiuntivo RP di Microsoft AzureStack Windows Server 1.2009.0
2108, 2206 SQL RP versione 2.0.6.x Modulo aggiuntivo RP di Microsoft AzureStack Windows Server 1.2009.0

Aggiornare il provider di risorse di SQL Server V2

Per verificare la disponibilità di aggiornamenti a SQL RP V2, vedere Come applicare gli aggiornamenti al provider di risorse.

Per eseguire l'aggiornamento da SQL RP V1 a SQL RP V2, eseguire prima l'aggiornamento a SQL RP V1.1.93.x. Applicare quindi il processo di aggiornamento della versione principale per eseguire 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 aver aggiornato SQL 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>.sqladapter). Verificare il tag di versione e il nome della macchina virtuale di SQL 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. Apri un caso di supporto per ottenere il pacchetto MajorVersionUpgrade e aggiungere la sottoscrizione all'elenco di autorizzazione del ASH marketplace per la futura versione V2.

  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 centro dati dell'hub di Azure Stack - DNS
    Le porte in ingresso per i provider di risorse sono aperte. Integrazione nel Data Center dell'Hub di Azure Stack - Porte e protocolli di ingresso
    L'oggetto del certificato PKI e la san sono impostati correttamente. Prerequisiti obbligatori per la distribuzione di hub di Azure Stack dell'infrastruttura a chiave pubblica
    prerequisiti del certificato PaaS per la distribuzione dell'hub di Azure Stack
  5. Per un ambiente disconnesso, installare i moduli di PowerShell necessari, in modo analogo al processo di aggiornamento usato per distribuire il provider di risorse.

Attiva AggiornamentoVersioneMaggiore

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

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 tecnico per richiedere un break glass 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 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 SQL RP 2.0 sia stato installato 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 viene eliminato automaticamente dallo script.

Mantenere l'account di archiviazione e il Key Vault nel gruppo di risorse sqladapter 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.

Eseguire l'aggiornamento dalla versione precedente di SQL RP V1 a SQL RP V1.1.93.x

L'aggiornamento del provider di risorse SQL V1 è cumulativo. È 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 UpdateSQLProvider.ps1 script . Utilizzare il tuo account di servizio con diritti amministrativi locali ed essere 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 di DeploySqlProvider.ps1 ed è necessario fornire informazioni sul certificato.

Aggiornare i processi di script

Lo UpdateSQLProvider.ps1 script crea una nuova macchina virtuale con l'immagine del sistema operativo più recente, 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 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 aver UpdateSQLProvider.ps1 creato una nuova macchina virtuale, lo script esegue la migrazione delle impostazioni seguenti dalla macchina virtuale del provider di risorse precedente:

  • informazioni sul database
  • informazioni sull'hosting del server
  • record DNS richiesto

Importante

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 UpdateSQLProvider.ps1 script di PowerShell. Se non si specificano parametri o se la convalida dei parametri ha esito negativo, lo script richiede di specificare i parametri necessari.

Nome del 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 ha 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
Punto di Accesso Privilegiato Indirizzo IP o nome DNS dell'endpoint con privilegi. obbligatorio
AzureEnvironment Ambiente Azure dell'account amministratore del servizio usato per la distribuzione di hub di Azure Stack. Obbligatorio solo per le distribuzioni di Microsoft Entra. I nomi di ambiente supportati sono AzureCloud, AzureUSGovernmento se si usa un ID Microsoft Entra 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 l' a più nodi
defaultSSLCertificatePassword Password per il certificato pfx. obbligatorio
MaxRetryCount Numero di tentativi di ripetizione di ogni operazione in caso di errore. 2
Durata Riprova Intervallo di timeout tra tentativi, in secondi. 120
Disinstallare 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

Per aggiornare il provider di risorse SQL alla versione 1.1.33.0 o precedente, installare versioni specifiche dei AzureRm.BootStrapper moduli e hub di Azure Stack nei moduli di 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 scarica e installa automaticamente i moduli di PowerShell necessari per il percorso C:\Program Files\SqlMySqlPsh.

Nota

Se la cartella C:\Program Files\SqlMySqlPsh esiste già con i moduli di PowerShell scaricati, pulire questa cartella prima di eseguire lo script di aggiornamento. Questo passaggio garantisce che la versione corretta dei moduli 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

In uno 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.

Nell'esempio seguente viene illustrato come usare lo UpdateSQLProvider.ps1 script. Eseguire lo script da una console di PowerShell con privilegi elevati. Assicurarsi di modificare le informazioni delle variabili e le password 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 dello script di aggiornamento del provider di risorse, chiudere la sessione di PowerShell corrente.

Passaggi successivi

Gestire il provider di risorse SQL