Informacje o kopii zapasowej programu SQL Server na maszynach wirtualnych platformy Azure

Azure Backup oferuje oparte na strumieniu, wyspecjalizowane rozwiązanie do tworzenia kopii zapasowych SQL Server uruchomionych na maszynach wirtualnych platformy Azure. To rozwiązanie jest zgodne z korzyściami Azure Backup w zakresie tworzenia kopii zapasowych infrastruktury bez infrastruktury, długoterminowego przechowywania i centralnego zarządzania. Ponadto zapewnia następujące korzyści w szczególności dla SQL Server:

  1. Kopie zapasowe obsługujące obciążenie, które obsługują wszystkie typy kopii zapasowych — pełne, różnicowe i dzienniki
  2. 15-minutowy cel punktu odzyskiwania z częstymi kopiami zapasowymi dziennika
  3. Odzyskiwanie do punktu w czasie do sekundy
  4. Tworzenie kopii zapasowej i przywracanie na poziomie pojedynczej bazy danych

Uwaga

Kopia zapasowa oparta na migawkach dla baz danych SQL na maszynie wirtualnej platformy Azure jest teraz dostępna w wersji zapoznawczej. Ta unikatowa oferta łączy w sobie dobro migawek, co prowadzi do lepszego celu czasu odzyskiwania i niskiego wpływu na serwer oraz korzyści wynikające z częstych kopii zapasowych dzienników dla niskiego celu punktu odzyskiwania. W przypadku zapytań/dostępu napisz do nas pod adresem AskAzureBackupTeam@microsoft.com.

Aby wyświetlić scenariusze tworzenia kopii zapasowych i przywracania obsługiwanych obecnie, zobacz macierz obsługi.

Proces tworzenia kopii zapasowej

To rozwiązanie wykorzystuje natywne interfejsy API SQL do tworzenia kopii zapasowych baz danych SQL.

  • Po określeniu SQL Server maszyny wirtualnej, którą chcesz chronić i wykonywać względem niej zapytania dotyczące baz danych, usługa Azure Backup zainstaluje rozszerzenie kopii zapasowej obciążenia na maszynie wirtualnej przy użyciu rozszerzenia nazwyAzureBackupWindowsWorkload.

  • To rozszerzenie składa się z koordynatora i wtyczki SQL. Koordynator jest odpowiedzialny za wyzwalanie przepływów pracy dla różnych operacji, takich jak konfigurowanie kopii zapasowej, tworzenie kopii zapasowych i przywracanie, wtyczka jest odpowiedzialna za rzeczywisty przepływ danych.

  • Aby móc odnajdywać bazy danych na tej maszynie wirtualnej, Azure Backup utworzy konto NT SERVICE\AzureWLBackupPluginSvc. To konto jest używane do tworzenia kopii zapasowych i przywracania i wymaga uprawnień administratora systemu SQL. Konto NT SERVICE\AzureWLBackupPluginSvc jest kontem usługi wirtualnej i nie wymaga zarządzania hasłami. Azure Backup używa NT AUTHORITY\SYSTEM konta do odnajdywania/zapytań bazy danych, więc to konto musi być publicznym identyfikatorem logowania w usłudze SQL. Jeśli nie utworzono maszyny wirtualnej programu SQL Server z witryny Azure Marketplace, może wystąpić błąd UserErrorSQLNoSysadminMembership. W takim przypadku wykonaj te instrukcje.

  • Po wyzwoleniu konfiguracji ochrony dla wybranych baz danych usługa tworzenia kopii zapasowych konfiguruje koordynatora przy użyciu harmonogramów tworzenia kopii zapasowych i innych szczegółów zasad, które rozszerzenie buforuje lokalnie na maszynie wirtualnej.

  • W zaplanowanym czasie koordynator komunikuje się z wtyczką i rozpoczyna przesyłanie strumieniowe danych kopii zapasowej z serwera SQL przy użyciu karty VDI.

  • Wtyczka wysyła dane bezpośrednio do magazynu usługi Recovery Services, eliminując w ten sposób potrzebę lokalizacji przejściowej. Dane są szyfrowane i przechowywane przez usługę Azure Backup na kontach magazynu.

  • Po zakończeniu transferu danych koordynator potwierdza zatwierdzenie za pomocą usługi tworzenia kopii zapasowych.

    Architektura kopii zapasowej SQL

Przed rozpoczęciem

Przed rozpoczęciem sprawdź następujące wymagania:

  1. Upewnij się, że masz wystąpienie programu SQL Server uruchomione na platformie Azure. Możesz szybko utworzyć wystąpienie programu SQL Server w witrynie Marketplace.
  2. Zapoznaj się z zagadnieniami dotyczącymi funkcji i obsługą scenariuszy.
  3. Przejrzyj często zadawane pytania dotyczące tego scenariusza.

Ustawianie uprawnień maszyny wirtualnej

Po uruchomieniu odnajdywania w SQL Server Azure Backup wykonuje następujące czynności:

  • Dodaje rozszerzenie AzureBackupWindowsWorkload.
  • Tworzy konto NT SERVICE\AzureWLBackupPluginSvc w celu odnajdywania baz danych na maszynie wirtualnej. To konto jest używane do tworzenia kopii zapasowej i przywracania i wymaga uprawnień administratora systemu SQL.
  • Odnajduje bazy danych uruchomione na maszynie wirtualnej, Azure Backup używa konta NT AUTHORITY\SYSTEM. To konto musi być publicznym logowaniem w usłudze SQL.

Jeśli nie utworzono maszyny wirtualnej SQL Server w Azure Marketplace lub jeśli korzystasz z programu SQL 2008 lub 2008 R2, może zostać wyświetlony błąd UserErrorSQLNoSysadminMembership.

Aby nadać uprawnienia w przypadku programów SQL 2008 i 2008 R2 działających w systemie Windows 2008 R2, zobacz tutaj.

W przypadku wszystkich innych wersji napraw uprawnienia, wykonując następujące czynności:

  1. Zaloguj się do programu SQL Server Management Studio (SSMS), używając konta z uprawnieniami administratora systemu SQL Server. Jeśli nie potrzebujesz specjalnych uprawnień, uwierzytelnianie systemu Windows powinno działać.

  2. Na SQL Server otwórz folder Security/Logins.

    Otwieranie folderu Security/Logins w celu wyświetlenia kont

  3. Kliknij prawym przyciskiem myszy folder Logins i wybierz pozycję Nowy identyfikator logowania. W oknie Nazwa logowania — nowa wybierz pozycję Wyszukaj.

    W oknie dialogowym Logowanie — nowe wybierz pozycję Wyszukaj.

  4. Konto usługi wirtualnej systemu Windows NT SERVICE\AzureWLBackupPluginSvc zostało utworzone podczas rejestracji maszyny wirtualnej i fazy odnajdywania SQL. Wprowadź nazwę konta, jak pokazano w polu Wprowadź nazwę obiektu do wybrania. Wybierz pozycję Sprawdź nazwy w celu rozpoznania nazwy. Wybierz przycisk OK.

    Wybieranie pozycji Sprawdź nazwy w celu rozpoznania nieznanej nazwy

  5. W obszarze Role serwera sprawdź, czy wybrano rolę sysadmin. Wybierz przycisk OK. Wymagane uprawnienia powinny teraz istnieć.

    Sprawdzanie, czy wybrano rolę sysadmin

  6. Skojarz bazę danych z magazynem usługi Recovery Services. Na Azure Portal na liście Serwery chronione kliknij prawym przyciskiem myszy serwer, który jest w stanie > błędu Odnajdowanie baz danych.

    Sprawdzanie, czy serwer ma odpowiednie uprawnienia

  7. Sprawdź postęp w obszarze Powiadomienia. Po znalezieniu wybranych baz danych zostanie wyświetlony komunikat o powodzeniu.

    Komunikat o powodzeniu wdrożenia

Uwaga

Jeśli SQL Server ma zainstalowane wiele wystąpień SQL Server, musisz dodać uprawnienie administratora systemu dla konta NT Service\AzureWLBackupPluginSvc do wszystkich wystąpień SQL.

Nadaj uprawnienia administratora systemu SQL dla programów SQL 2008 i SQL 2008 R2

Dodaj identyfikatory LOGOWANIA NT AUTHORITY\SYSTEM i NT Service\AzureWLBackupPluginSvc do wystąpienia SQL Server:

  1. Przejdź do wystąpienia SQL Server w Eksploratorze obiektów.

  2. Przejdź do obszaru Zabezpieczenia —> identyfikatory logowania

  3. Kliknij prawym przyciskiem myszy nazwy logowania i wybierz pozycję Nowy identyfikator logowania...

    Nowe logowanie przy użyciu programu SSMS

  4. Przejdź do karty Ogólne i wprowadź NT AUTHORITY\SYSTEM jako nazwę logowania.

    Nazwa logowania dla programu SSMS

  5. Przejdź do pozycji Role serwera i wybierz role publiczne i sysadmin .

    Wybieranie ról w programie SSMS

  6. Przejdź do pozycji Stan. Udziel uprawnienia do nawiązywania połączenia z aparatem bazy danych i identyfikatorem logowania jako włączone.

    Udzielanie uprawnień w programie SSMS

  7. Wybierz przycisk OK.

  8. Powtórz tę samą sekwencję kroków (1–7 powyżej), aby dodać identyfikator logowania NT Service\AzureWLBackupPluginSvc do wystąpienia SQL Server. Jeśli identyfikator logowania już istnieje, upewnij się, że ma rolę serwera sysadmin i w obszarze Stan ma uprawnienie Do łączenia się z aparatem bazy danych i Zaloguj się jako Włączone.

  9. Po udzieleniu uprawnień odnajdowanie baz danych w portalu: Magazyn —> Infrastruktura kopii zapasowych —> Obciążenie na maszynie wirtualnej platformy Azure:

    Ponowne odnajdowanie baz danych w Azure Portal

Alternatywnie możesz zautomatyzować nadawanie uprawnień, uruchamiając następujące polecenia programu PowerShell w trybie administratora. Nazwa wystąpienia jest domyślnie ustawiona na MSSQLSERVER. W razie potrzeby zmień argument nazwy wystąpienia w skrycie.

param(
    [Parameter(Mandatory=$false)]
    [string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
    $fullInstance = $env:COMPUTERNAME   # In case it is the default SQL Server Instance
}
else
{
    $fullInstance = $env:COMPUTERNAME + "\" + $InstanceName   # In case of named instance
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}

Konfigurowanie równoczesnych kopii zapasowych

Teraz można skonfigurować kopie zapasowe w celu jednoczesnego zapisywania punktów odzyskiwania i dzienników programu SQL Server w magazynie lokalnym i magazynie usługi Recovery Services.

Aby skonfigurować jednoczesne kopie zapasowe, wykonaj następujące kroki:

  1. Przejdź do C:\Program Files\Azure Workload Backup\bin\plugins lokalizacji, a następnie utwórz plik PluginConfigSettings.json, jeśli nie jest obecny.

  2. Dodaj rozdzielone przecinkami jednostki wartości klucza z kluczami EnableLocalDiskBackupForBackupTypes i LocalDiskBackupFolderPath do pliku JSON.

    • W obszarze EnableLocalDiskBackupForBackupTypeslista zawiera listę typów kopii zapasowych, które mają być przechowywane lokalnie.

      Jeśli na przykład chcesz przechowywać kopie zapasowe pełne i dzienniki , podaj wartość ["Full", "Log"]. Aby przechowywać tylko kopie zapasowe dziennika, należy wspomnieć ["Log"]o .

    • W obszarze LocalDiskBackupFolderPathpodaj ścieżkę do folderu lokalnego. Upewnij się, że używasz podwójnego ukośnika podczas wzmianki o ścieżce w pliku JSON.

      Jeśli na przykład preferowaną ścieżką dla lokalnej kopii zapasowej jest E:\LocalBackup, podaj ścieżkę w formacie JSON jako E:\\LocalBackup.

      Ostateczny kod JSON powinien wyglądać następująco:

      {
         "EnableLocalDiskBackupForBackupTypes": ["Log"],
         "LocalDiskBackupFolderPath": "E:\\LocalBackup",
      }
      

      Jeśli w pliku JSON znajdują się inne wstępnie wypełnione wpisy, dodaj powyższe dwa wpisy w dolnej części pliku JSON tuż przed zamykającym nawiasem klamrowym.

  3. Aby zmiany zaczęły obowiązywać natychmiast zamiast regularnej jednej godziny, przejdź do pozycji Usługi TaskManager>, kliknij prawym przyciskiem myszy pozycję AzureWLbackupPluginSvc i wybierz polecenie Zatrzymaj.

    Przestroga

    Ta akcja spowoduje anulowanie wszystkich trwających zadań tworzenia kopii zapasowej.

    Konwencja nazewnictwa przechowywanego pliku kopii zapasowej i struktury folderów dla niego będzie .{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}

    Jeśli na przykład masz bazę danych Contoso w ramach wystąpienia MSSQLSERVERSQL, pliki będą znajdować się w lokalizacji .E:\LocalBackup\MSSQLSERVER\Contoso

    Nazwa pliku to VDI device set guid, która jest używana na potrzeby operacji tworzenia kopii zapasowej.

  4. Sprawdź, czy lokalizacja docelowa w obszarze LocalDiskBackupFolderPath ma uprawnienia do odczytu i zapisu dla elementu NT Service\AzureWLBackupPluginSvc.

    Uwaga

    W przypadku folderu na lokalnych dyskach maszyn wirtualnych kliknij prawym przyciskiem myszy folder i skonfiguruj wymagane uprawnienia na NT Service\AzureWLBackupPluginSvc karcie Zabezpieczenia .

    Jeśli używasz sieci lub udziału SMB, skonfiguruj uprawnienia, uruchamiając poniższe polecenia cmdlet programu PowerShell z konsoli użytkownika, która ma już uprawnienia dostępu do udziału:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>:  -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
    

    Przykład:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y:  -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
    

Następne kroki