Aktualizowanie dostawcy zasobów SQL

Ważne

Dostawcy zasobów SQL i MySQL dla Azure Stack Hub są przestarzali i nie są dostępni do dołączania nowych klientów. Zamiast tego należy wdrożyć program SQL lub MySQL bezpośrednio na maszynach wirtualnych i zarządzać nimi przy użyciu standardowych narzędzi i rozwiązań. Istniejące wdrożenia dostawców zasobów nadal są obsługiwane, ale nie planuje się tworzenia nowych funkcji ani dołączania.

Ważne

Przed zaktualizowaniem dostawcy zasobów przejrzyj informacje o wersji, aby dowiedzieć się więcej o nowych funkcjach, poprawkach i 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 aktualizuje SQL Server hostingu.

Nowy dostawca zasobów SQL może zostać wydany po zaktualizowaniu usługi Azure Stack Hub do nowej kompilacji. Mimo że istniejący dostawca zasobów nadal działa, zaktualizuj do najnowszej kompilacji tak szybko, jak to możliwe.

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 Sql RP w wersji 2.0.13.x Dodatek Microsoft AzureStack RP dla systemu Windows Server 1.2009.0
2108, 2206 Sql RP w wersji 2.0.6.x Dodatek Microsoft AzureStack RP dla systemu Windows Server 1.2009.0

Aktualizowanie dostawcy zasobów programu SQL Server w wersji 2

Aby sprawdzić dostępność aktualizacji do dostawcy zasobów SQL RP w wersji 2, zobacz Jak zastosować aktualizacje do dostawcy zasobów.

Aby zaktualizować z wersji 1 rp SQL do sql RP V2, najpierw zaktualizuj element SQL RP w wersji 1.1.93.x. Następnie zastosuj proces uaktualniania wersji głównej, aby uaktualnić z jednostki RP SQL w wersji 1 do wersji 2 dostawcy usługi SQL.

Aktualizacja z SQL RP w wersji 1.1.93.x do SQL RP w wersji 2.0.6.0

Wymagania wstępne

  1. Upewnij się, że zaktualizowano moduł SQL RP V1 do najnowszej wersji 1.1.93.x. W obszarze Domyślna subskrypcja dostawcy znajdź grupę zasobów RP (format nazewnictwa: system.<region>.sqladapter). Zweryfikuj tag wersji i nazwę SQL RP VM w grupie zasobów. Jeśli nadal korzystasz ze starej wersji i musisz zaktualizować do wersji 1.1.93.x, otwórz zgłoszenie do pomocy technicznej.

  2. Otwórz zgłoszenie do pomocy technicznej, aby uzyskać pakiet MajorVersionUpgrade i dodać subskrypcję do listy dozwolonych w ASH Marketplace dla przyszłej wersji V2.

  3. Pobierz Microsoft AzureStack Add-On RP Windows Server 1.2009.0 do marketu.

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

    Warunek wstępny Źródło
    Warunkowe przekazywanie DNS jest poprawnie ustawione. integracja centrum danych usługi Azure Stack Hub — DNS
    Porty przychodzące dla dostawców zasobów są otwarte. integracja centrum danych Azure Stack Hub — porty i protokoły przychodzące
    Podmiot certyfikatu PKI i sieć SAN są poprawnie ustawione. obowiązkowe wymagania dotyczące PKI dla wdrożenia Azure Stack Hub
    wymagania wstępne dotyczące certyfikatu PaaS wdrożenia usługi Azure Stack Hub
  5. W przypadku środowiska bez połączenia zainstaluj wymagane moduły programu PowerShell, podobnie jak proces aktualizacji używany do wdrażania dostawcy zasobów.

Wyzwalanie majorVersionUpgrade

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

Uwaga / Notatka

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

Ważne

Użyj Clear-AzureRmContext -Scope CurrentUser polecenia i Clear-AzureRmContext -Scope Process , aby wyczyścić pamięć podręczną przed uruchomieniem wdrożenia lub skryptu 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 / Notatka

Adres DNS i odpowiadający mu adres IP dostawcy usługi SQL RP w wersji 2 są różne. Aby uzyskać nowy publiczny adres IP, możesz skontaktować się z pomocą techniczną, aby wymagać procedury DRP "break glass" i odnaleźć zasób o numerze SQLRPVM1130-PublicIP. Możesz również uruchomić z nslookup sqlrp.dbadapter.<fqdn> komputera klienckiego, który przeszedł już test punktu końcowego, aby dowiedzieć się, jaki jest publiczny adres 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 Marketplace i upewnij się, że SQL RP 2.0 został pomyślnie zainstalowany.
  3. Stary system.<location.sqladapter>, grupa zasobów i system.<location.dbadapter.dns> grupa zasobów w domyślnej subskrypcji dostawcy nie jest automatycznie usuwana przez skrypt.

Zachowaj konto magazynu i Key Vault w grupie zasobów sqladapter przez jakiś czas. Jeśli po uaktualnieniu dowolny użytkownik dzierżawy obserwuje niespójne metadane bazy danych lub logowania, możliwe jest uzyskanie pomocy technicznej w celu przywrócenia 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 używaj skryptu wdrażania w wersji 1, aby odinstalować wersję V1. 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 SQL RP V1 do SQL RP V1.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, które jest właścicielem subskrypcji . Ten skrypt aktualizacji jest dołączony do paczki pobierania od dostawcy zasobów.

Proces aktualizacji jest podobny do procesu używanego do Wdrażanie dostawcy zasobów. Skrypt aktualizacji używa tych samych argumentów co skrypt DeploySqlProvider.ps1 i musisz 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 / Notatka

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 UpdateSQLProvider.ps1 nowej maszyny wirtualnej 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

Użyj Clear-AzureRmContext -Scope CurrentUser polecenia i Clear-AzureRmContext -Scope Process , aby wyczyścić pamięć podręczną przed uruchomieniem wdrożenia lub skryptu aktualizacji.

Aktualizowanie parametrów skryptu

Określ następujące parametry z wiersza polecenia po uruchomieniu skryptu UpdateSQLProvider.ps1 programu PowerShell. Jeśli nie określisz parametrów lub jeśli walidacja jakiegokolwiek parametru zakończy się niepowodzeniem, skrypt wyświetli 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 kończy się błędem, jeśli konto używane z AzCredential wymaga uwierzytelniania wieloskładnikowego (MFA). Wymagane
VMLocalCredential Poświadczenia dla konta lokalnego administratora maszyny wirtualnej dostawcy zasobów SQL. Wymagane
PrivilegedEndpoint Adres IP lub nazwa DNS uprzywilejowanego punktu końcowego. Wymagane
AzureEnvironment Środowisko Azure konta administratora usługi używane do wdrażania Azure Stack Hub. Wymagane tylko dla wdrożeń Microsoft Entra. Obsługiwane nazwy środowisk to AzureCloud, AzureUSGovernmentlub w przypadku korzystania z identyfikatora Entra firmy Microsoft w Chinach AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Należy również umieścić plik .pfx certyfikatu w tym katalogu. Opcjonalne dla pojedynczego węzła, ale obowiązkowe dla wielu węzłów
DomyślneHasłoCertyfikatuSSL Hasło certyfikatu pfx. Wymagane
MaxRetryCount Ile razy chcesz ponowić próbę wykonania każdej operacji, jeśli wystąpi błąd. 2
CzasPonownejPróby Interwał limitu czasu między ponowną próbą w sekundach. 120
Odinstalowywanie Usuwa dostawcę zasobów i wszystkie skojarzone zasoby. Nie.
Tryb debugowania Zapobiega automatycznemu czyszczeniu po awarii. Nie.

Przykład aktualizacji skryptu programu PowerShell

Aby zaktualizować dostawcę zasobów SQL do wersji 1.1.33.0 lub starszej AzureRm.BootStrapper , zainstaluj określone wersje modułów i Azure Stack Hub w modułach programu 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 pobiera i instaluje niezbędne moduły programu PowerShell do ścieżki C:\Program Files\SqlMySqlPsh.

Uwaga / Notatka

Jeśli folder C:\Program Files\SqlMySqlPsh już istnieje z pobranymi modułami programu PowerShell, wyczyść ten folder przed uruchomieniem skryptu aktualizacji. Ten krok gwarantuje pobranie i zastosowanie odpowiedniej wersji modułów programu PowerShell.

# 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 / Notatka

W scenariuszu bez połączenia należy pobrać wymagane moduły programu PowerShell i ręcznie zarejestrować repozytorium jako wymaganie wstępne. Aby uzyskać więcej informacji, zobacz Wdrażanie dostawcy zasobów SQL.

W poniższym przykładzie pokazano, jak używać skryptu UpdateSQLProvider.ps1 . Uruchom skrypt z poziomu konsoli programu PowerShell z podwyższonym poziomem uprawnień. Pamiętaj, aby w razie potrzeby zmienić zmienne informacje i hasła.

# 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 działania skryptu aktualizacji dostawcy zasobów zamknij bieżącą sesję programu PowerShell.

Dalsze kroki

Obsługa dostawcy zasobów SQL