Aktualizowanie dostawcy zasobów SQL

Ważne

Począwszy od wersji 2108 usługi Azure Stack Hub, dostawcy zasobów SQL i MySQL są oferowani subskrypcjom, którym udzielono dostępu. Jeśli chcesz rozpocząć korzystanie z tej funkcji lub jeśli chcesz przeprowadzić uaktualnienie z poprzedniej wersji, otwórz zgłoszenie do pomocy technicznej , a nasi inżynierowie pomocy technicznej przeprowadzą Cię przez proces wdrażania lub uaktualniania.

Ważne

Przed zaktualizowaniem dostawcy zasobów przejrzyj informacje o wersji, aby dowiedzieć się więcej o nowych funkcjach, poprawkach i wszelkich znanych problemach, które mogą mieć wpływ na wdrożenie. Informacje o wersji określają również minimalną wersję usługi Azure Stack Hub wymaganą dla dostawcy zasobów.

Ważne

Aktualizacja dostawcy zasobów NIE spowoduje zaktualizowania SQL Server hostingu.

Nowy dostawca zasobów SQL może zostać zwolniony, gdy usługa Azure Stack Hub zostanie zaktualizowana do nowej kompilacji. Mimo że istniejący dostawca zasobów nadal działa, zalecamy jak najszybsze zaktualizowanie do najnowszej kompilacji.

Obsługiwana wersja usługi Azure Stack Hub Wersja dostawcy usługi SQL System Windows Server, na którym działa usługa RP
2206, 2301, 2306, 2311 Dostawca usługi SQL w wersji 2.0.13.x Dodatek Microsoft AzureStack RP dla systemu Windows Server 1.2009.0
2108, 2206 Dostawca usługi SQL w wersji 2.0.6.x Dodatek Microsoft AzureStack RP dla systemu Windows Server 1.2009.0

Aktualizowanie dostawcy zasobów SQL Server w wersji 2

Jeśli wdrożono już dostawcę zasobów SQL w wersji 2 i chcesz sprawdzić dostępność aktualizacji, zobacz Jak zastosować aktualizacje do dostawcy zasobów.

Jeśli chcesz zaktualizować z dostawcy zasobów SQL w wersji 1 do wersji 2 rp SQL, upewnij się, że po raz pierwszy zaktualizowano usługę SQL RP w wersji 1.1.93.x, zastosuj proces uaktualniania wersji głównej w celu uaktualnienia z jednostki RP SQL w wersji 1 do wersji 2 dostawcy zasobów SQL.

Aktualizacja z dostawcy usługi SQL RP w wersji 1.1.93.x do dostawcy usługi SQL w wersji 2.0.6.0

Wymagania wstępne

  1. Upewnij się, że zaktualizowano dostawcę usługi SQL RP w wersji 1 do najnowszej wersji 1.1.93.x. W obszarze Domyślna subskrypcja dostawcy znajdź grupę zasobów rp (format nazewnictwa: system.<region>). sqladapter). Potwierdź tag wersji i nazwę maszyny wirtualnej dostawcy zasobów SQL w grupie zasobów. Jeśli nadal korzystasz ze starej wersji i musisz przeprowadzić aktualizację do wersji 1.1.93.x, otwórz zgłoszenie do pomocy technicznej, aby uzyskać pomoc.

  2. Otwórz zgłoszenie do pomocy technicznej , aby uzyskać pakiet MajorVersionUpgrade, i dodaj subskrypcję do listy dozwolonych ash marketplace dla przyszłej wersji V2.

  3. Pobierz platformę Microsoft AzureStack Add-On RP z systemem Windows Server 1.2009.0 do witryny Marketplace.

  4. Upewnij się, że zostały spełnione wymagania wstępne dotyczące integracji centrum danych.

Wymaganie wstępne Odwołanie
Warunkowe przekazywanie DNS jest poprawnie ustawione. Integracja centrum danych usługi Azure Stack Hub — DNS
Porty wejściowe dla dostawców zasobów są otwarte. Integracja centrum danych usługi Azure Stack Hub — porty i protokoły przychodzące
Podmiot certyfikatu PKI i sieć SAN są poprawnie ustawione. Obowiązkowe wymagania wstępne dotyczące infrastruktury kluczy publicznych dla wdrożenia usługi Azure Stack Hub
Wymagania wstępne dotyczące certyfikatu PaaS wdrożenia usługi Azure Stack Hub
  1. (dla środowiska bez połączenia) Zainstaluj wymagane moduły programu PowerShell podobne do procesu aktualizacji używanego do wdrażania dostawcy zasobów.

Wyzwalanie głównej wersjiUpgrade

Uruchom następujący skrypt z konsoli programu PowerShell z podwyższonym poziomem uprawnień, aby przeprowadzić uaktualnienie wersji głównej.

Uwaga

Upewnij się, że maszyna kliencka, na której uruchomiono skrypt, ma wersję systemu operacyjnego nie starszą niż Windows 10 lub Windows Server 2016, a maszyna kliencka ma architekturę systemu operacyjnego X64.

Ważne

Zdecydowanie zalecamy używanie polecenia Clear-AzureRmContext -Scope CurrentUser i Clear-AzureRmContext -Scope Process w celu wyczyszczenia pamięci podręcznej przed uruchomieniem skryptu wdrożenia lub aktualizacji.

# 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

Uwaga

Adres DNS i odpowiedni adres IP dostawcy usługi SQL w wersji 2 są różne. Aby uzyskać nowy publiczny adres IP, możesz skontaktować się z pomocą techniczną, aby wymagać złamania drP i znaleźć zasób SQLRPVM1130-PublicIP. Możesz również uruchomić polecenie "nslookup sqlrp.dbadapter.<fqdn>" z komputera klienckiego, który przeszedł już test punktu końcowego, aby dowiedzieć się publicznego adresu IP.

Sprawdzanie, czy uaktualnienie zakończyło się pomyślnie

  1. Skrypt MajorVersionUpgrade został wykonany bez żadnych błędów.
  2. Sprawdź dostawcę zasobów na platformie handlowej i upewnij się, że dostawca zasobów SQL RP 2.0 został pomyślnie zainstalowany.
  3. Stary system.<location.sqladapter> grupa zasobów i system.<grupa zasobów location.dbadapter.dns> w domyślnej subskrypcji dostawcy nie zostanie automatycznie usunięta przez skrypt.
  • Zalecamy przechowywanie konta magazynu i Key Vault w grupie zasobów sqladapter przez pewien czas. Jeśli po uaktualnieniu dowolny użytkownik dzierżawy obserwuje niespójne metadane bazy danych lub logowania, można uzyskać obsługę przywracania metadanych z grupy zasobów.
  • Po sprawdzeniu, czy strefa DNS w grupie zasobów dbadapter.dns jest pusta bez rekordu DNS, można bezpiecznie usunąć grupę zasobów dbadapter.dns.
  • [WAŻNE] Nie należy używać skryptu wdrażania w wersji 1 do odinstalowania wersji 1. Po zakończeniu uaktualniania i potwierdzeniu, że uaktualnienie zakończyło się pomyślnie, możesz ręcznie usunąć grupę zasobów z subskrypcji dostawcy.

Aktualizacja z wcześniejszej wersji dostawcy usługi SQL RP w wersji 1 do dostawcy usługi SQL w wersji 1.1.93.x

Aktualizacja dostawcy zasobów SQL w wersji 1 jest zbiorcza. Możesz bezpośrednio zaktualizować do wersji 1.1.93.x.

Aby zaktualizować dostawcę zasobów do wersji 1.1.93.x, użyj skryptu UpdateSQLProvider.ps1 . Użyj konta usługi z lokalnymi uprawnieniami administracyjnymi i jest właścicielem subskrypcji. Ten skrypt aktualizacji jest dołączony do pobierania dostawcy zasobów.

Proces aktualizacji jest podobny do procesu używanego do wdrażania dostawcy zasobów. Skrypt aktualizacji używa tych samych argumentów co skrypt DeploySqlProvider.ps1 i należy podać informacje o certyfikacie.

Aktualizowanie procesów skryptów

Skrypt UpdateSQLProvider.ps1 tworzy nową maszynę wirtualną z najnowszym obrazem systemu operacyjnego, wdraża najnowszy kod dostawcy zasobów i migruje ustawienia ze starego dostawcy zasobów do nowego dostawcy zasobów.

Uwaga

Zalecamy pobranie obrazu dodatku Microsoft AzureStack RP dla systemu Windows Server 1.2009.0 z witryny Marketplace Management. Jeśli musisz zainstalować aktualizację, możesz umieścić pojedynczy pakiet MSU w lokalnej ścieżce zależności. Skrypt zakończy się niepowodzeniem, jeśli w tej lokalizacji znajduje się więcej niż jeden plik MSU.

Po utworzeniu nowej maszyny wirtualnej przez skrypt UpdateSQLProvider.ps1 skrypt migruje następujące ustawienia ze starej maszyny wirtualnej dostawcy zasobów:

  • informacje o bazie danych
  • informacje o serwerze hostingu
  • wymagany rekord DNS

Ważne

Zdecydowanie zalecamy używanie polecenia Clear-AzureRmContext -Scope CurrentUser i Clear-AzureRmContext -Scope Process w celu wyczyszczenia pamięci podręcznej przed uruchomieniem skryptu wdrożenia lub aktualizacji.

Aktualizowanie parametrów skryptu

Po uruchomieniu skryptu programu PowerShell UpdateSQLProvider.ps1 można określić następujące parametry z wiersza polecenia. Jeśli nie lub jeśli sprawdzanie poprawności jakiegokolwiek parametru zakończy się niepowodzeniem, zostanie wyświetlony monit o podanie wymaganych parametrów.

Nazwa parametru Opis Komentarz lub wartość domyślna
CloudAdminCredential Poświadczenia administratora chmury niezbędne do uzyskania dostępu do uprzywilejowanego punktu końcowego. Wymagane
AzCredential Poświadczenia konta administratora usługi Azure Stack Hub. Użyj tych samych poświadczeń, które zostały użyte do wdrożenia usługi Azure Stack Hub. Skrypt zakończy się niepowodzeniem, jeśli konto używane z modułem AzCredential wymaga uwierzytelniania wieloskładnikowego (MFA). Wymagane
VMLocalCredential Poświadczenia dla konta administratora lokalnego maszyny wirtualnej dostawcy zasobów SQL. Wymagane
PrivilegedEndpoint Adres IP lub nazwa DNS uprzywilejowanego punktu końcowego. Wymagane
AzureEnvironment Środowisko platformy Azure konta administratora usługi, które zostało użyte do wdrożenia usługi Azure Stack Hub. Wymagane tylko w przypadku wdrożeń Microsoft Entra. Obsługiwane nazwy środowisk to AzureCloud, AzureUSGovernment lub jeśli są używane chiny Tożsamość Microsoft Entra, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Musisz również umieścić plik pfx certyfikatu w tym katalogu. Opcjonalne dla pojedynczego węzła, ale obowiązkowe dla wielu węzłów
DefaultSSLCertificatePassword Hasło certyfikatu pfx. Wymagane
MaxRetryCount Ile razy chcesz ponowić próbę wykonania każdej operacji, jeśli wystąpi błąd. 2
RetryDuration Interwał limitu czasu między ponawianiami prób w sekundach. 120
Odinstalowywanie Usuwa dostawcę zasobów i wszystkie skojarzone zasoby. Nie
Debugmode Zapobiega automatycznemu czyszczeniu po awarii. Nie

Przykład aktualizacji skryptu programu PowerShell

Jeśli aktualizujesz wersję dostawcy zasobów SQL do wersji 1.1.33.0 lub wcześniejszych, musisz zainstalować określone wersje modułów AzureRm.BootStrapper i Azure Stack Hub w programie PowerShell.

Jeśli aktualizujesz dostawcę zasobów SQL do wersji 1.1.47.0 lub nowszej, możesz pominąć ten krok. Skrypt wdrażania automatycznie pobierze i zainstaluje niezbędne moduły programu PowerShell do ścieżki C:\Program Files\SqlMySqlPsh.

Uwaga

Jeśli folder C:\Program Files\SqlMySqlPsh już istnieje z pobranym modułem programu PowerShell, zaleca się wyczyszczenie tego folderu przed uruchomieniem skryptu aktualizacji. Upewnij się, że odpowiednia wersja modułu programu PowerShell została pobrana i użyta.

# 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

Uwaga

W scenariuszu rozłączonym należy pobrać wymagane moduły programu PowerShell i ręcznie zarejestrować repozytorium jako wymaganie wstępne. Więcej informacji można znaleźć w temacie Deploy SQL resource provider (Wdrażanie dostawcy zasobów SQL)

Poniżej przedstawiono przykład użycia skryptu UpdateSQLProvider.ps1 , który można uruchomić z poziomu konsoli programu PowerShell z podwyższonym poziomem uprawnień. Pamiętaj, aby zmienić informacje o zmiennej i hasła zgodnie z potrzebami:

# 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

Po zakończeniu skryptu aktualizacji dostawcy zasobów zamknij bieżącą sesję programu PowerShell.

Następne kroki

Obsługa dostawcy zasobów SQL