Om SQL Server-säkerhetskopiering i virtuella Azure-datorer

Azure Backup erbjuder en strömbaserad, specialiserad lösning för att säkerhetskopiera SQL Server som körs på virtuella Azure-datorer. Den här lösningen överensstämmer med Azure Backups fördelar med säkerhetskopiering utan infrastruktur, långsiktig kvarhållning och central hantering. Det ger dessutom följande fördelar specifikt för SQL Server:

  • Arbetsbelastningsmedvetna säkerhetskopior som stöder alla säkerhetskopieringstyper – fullständig, differentiell och logg
  • 15 minuters RPO (mål för återställningspunkt) med frekventa loggsäkerhetskopior
  • Återställning till tidpunkt upp till en sekund
  • Säkerhetskopiering och återställning på enskild databasnivå

Information om hur du visar de säkerhetskopierings- och återställningsscenarier som vi stöder i dag finns i supportmatrisen.

Säkerhetskopieringsprocess

Den här lösningen använder sql-interna API:er för att göra säkerhetskopior av dina SQL-databaser.

  • När du har angett den virtuella SQL Server-dator som du vill skydda och fråga efter databaserna i den installerar Azure Backup-tjänsten ett tillägg för säkerhetskopiering av arbetsbelastningar på den virtuella datorn med namntillägget AzureBackupWindowsWorkload .

  • Det här tillägget består av en koordinator och ett SQL-plugin-program. Koordinatorn ansvarar för att utlösa arbetsflöden för olika åtgärder som att konfigurera säkerhetskopiering, säkerhetskopiering och återställning, men plugin-programmet ansvarar för det faktiska dataflödet.

  • För att kunna identifiera databaser på den här virtuella datorn skapar Azure Backup kontot NT SERVICE\AzureWLBackupPluginSvc. Det här kontot används för säkerhetskopiering och återställning och kräver SQL sysadmin-behörigheter. Kontot NT SERVICE\AzureWLBackupPluginSvc är ett virtuellt tjänstkonto och kräver därför ingen lösenordshantering. Azure Backup använder NT AUTHORITY\SYSTEM kontot för databasidentifiering/undersökning, så det här kontot måste vara en offentlig inloggning i SQL. Om du inte skapade den virtuella SQL Server-datorn från Azure Marketplace, kan felet UserErrorSQLNoSysadminMembership inträffa. Om det inträffar följer du de här instruktionerna.

  • När du har utlöst konfigurerat skydd på de valda databaserna konfigurerar säkerhetskopieringstjänsten koordinatorn med säkerhetskopieringsscheman och annan principinformation, som tillägget cachelagrar lokalt på den virtuella datorn.

  • Vid den schemalagda tidpunkten kommunicerar koordinatorn med plugin-programmet och börjar strömma säkerhetskopieringsdata från SQL-servern med VDI.

  • Plugin-programmet skickar data direkt till Recovery Services-valvet, vilket eliminerar behovet av en mellanlagringsplats. Data krypteras och lagras av Azure Backup-tjänsten på lagringskonton.

  • När dataöverföringen är klar bekräftar koordinatorn incheckningen med säkerhetskopieringstjänsten.

    SQL Backup-arkitektur

Innan du börjar

Kontrollera följande krav innan du börjar:

  1. Se till att du har en SQL Server-instans som körs i Azure. Du kan snabbt skapa en SQL Server-instans på Marketplace.
  2. Granska funktionsöverväganden och scenariostöd.
  3. Granska vanliga frågor om det här scenariot.

Ange VM-behörigheter

När du kör identifiering på en SQL Server gör Azure Backup följande:

  • Lägger till tillägget AzureBackupWindowsWorkload.
  • Skapar ett NT SERVICE\AzureWLBackupPluginSvc-konto för att identifiera databaser på den virtuella datorn. Det här kontot används för säkerhetskopiering och återställning och kräver SQL-sysadmin-behörigheter.
  • Identifierar databaser som körs på en virtuell dator. Azure Backup använder kontot NT AUTHORITY\SYSTEM. Det här kontot måste vara en offentlig inloggning i SQL.

Om du inte skapade den virtuella SQL Server-datorn på Azure Marketplace eller om du använder SQL 2008 eller 2008 R2 kan du få ett UserErrorSQLNoSysadminMembership-fel .

Om du vill ge behörigheter för SQL 2008 och 2008 R2 som körs på Windows 2008 R2 läser du här.

För alla andra versioner kan du åtgärda behörigheter med följande steg:

  1. Använd ett konto med SQL Server-sysadmin-behörighet för att logga in till SQL Server Management Studio (SSMS). Såvida du inte behöver specialbehörigheter bör Windows-autentisering fungera.

  2. På SQL Server öppnar du mappen Security/Logins (Säkerhet/Inloggningar).

    Öppna mappen Security/inloggningar för att se konton

  3. Högerklicka på mappen Logins och välj Ny inloggning. I Login - New (Inloggning – ny) väljer du Sök.

    I dialogrutan Inloggning – ny väljer du Sök

  4. Kontot för virtuell Windows-tjänst, NT SERVICE\AzureWLBackupPluginSvc, skapades under registreringen av den virtuell datorn och SQL-identifieringsfasen. Ange kontonamnet såsom det visas i Ange ett objektnamn du vill markera. Välj Kontrollera namn för att matcha namnet. Välj OK.

    Välj Kontrollera namn för att matcha det okända tjänstnamnet

  5. I Serverroller kontrollerar du att serverrollen sysadmin har valts. Välj OK. De behörigheter som krävs bör nu finnas.

    Kontrollera att serverrollen sysadmin har valts

  6. Nu associerar du databasen med Recovery Services-valvet. I Azure Portal högerklickar du på servern som har feltillståndet Rediscover DBs i listan Skyddade servrar.>

    Kontrollera att servern har rätt behörigheter

  7. Kontrollera förloppet i området Meddelanden. När de valda databaserna hittas visas ett meddelande.

    Meddelande som anger att distributionen lyckades

Kommentar

Om SQL Server har flera instanser av SQL Server installerade måste du lägga till sysadmin-behörighet för NT Service\AzureWLBackupPluginSvc-kontot till alla SQL-instanser.

Ge SQL sysadmin-behörigheter för SQL 2008 och SQL 2008 R2

Lägg till NT AUTHORITY\SYSTEM - och NT Service\AzureWLBackupPluginSvc-inloggningar till SQL Server-instansen:

  1. Gå till SQL Server-instansen i Objektutforskaren.

  2. Gå till Säkerhet –> Inloggningar

  3. Högerklicka på inloggningarna och välj Ny inloggning...

    Ny inloggning med SSMS

  4. Gå till fliken Allmänt och ange NT AUTHORITY\SYSTEM som inloggningsnamn.

    Inloggningsnamn för SSMS

  5. Gå till Serverroller och välj offentliga roller och sysadmin-roller .

    Välja roller i SSMS

  6. Gå till Status. Bevilja behörighet att ansluta till databasmotorn och Logga in som Aktiverad.

    Bevilja behörigheter i SSMS

  7. Välj OK.

  8. Upprepa samma stegsekvens (1–7 ovan) för att lägga till NT Service\AzureWLBackupPluginSvc-inloggning till SQL Server-instansen. Om inloggningen redan finns kontrollerar du att den har serverrollen sysadmin och under Status har den Bevilja behörighet att ansluta till databasmotorn och Logga in som Aktiverad.

  9. När du har beviljat behörigheten rediscover DBs i portalen: Vault > Hantera –> Infrastruktur för säkerhetskopiering –> Arbetsbelastning på en virtuell Azure-dator:

    Rediscover DBs i Azure Portal

Du kan också automatisera att ge behörigheterna genom att köra följande PowerShell-kommandon i administratörsläge. Instansnamnet är inställt på MSSQLSERVER som standard. Ändra argumentet för instansnamn i skriptet om det behövs.

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
}

Konfigurera samtidiga säkerhetskopieringar

Nu kan du konfigurera säkerhetskopieringar för att spara SQL Server-återställningspunkter och loggar i ett lokalt lagrings- och Recovery Services-valv samtidigt.

Följ dessa steg för att konfigurera samtidiga säkerhetskopieringar:

  1. Gå till platsen C:\Program Files\Azure Workload Backup\bin\plugins och skapa sedan filen PluginConfigSettings.json, om den inte finns.

  2. Lägg till kommaavgränsade nyckelvärdeentiteter med nycklar EnableLocalDiskBackupForBackupTypes och LocalDiskBackupFolderPath till JSON-filen.

    • Under EnableLocalDiskBackupForBackupTypeslistar du de säkerhetskopieringstyper som du vill lagra lokalt.

      Om du till exempel vill lagra fullständiga säkerhetskopior och loggsäkerhetskopior nämner du ["Full", "Log"]. Om du bara vill lagra loggsäkerhetskopiorna nämner du ["Log"].

    • Under LocalDiskBackupFolderPathanger du sökvägen till den lokala mappen. Se till att du använder det dubbla snedstrecket framåt när du nämner sökvägen i JSON-filen.

      Om den önskade sökvägen för lokal säkerhetskopiering till exempel är E:\LocalBackupanger du sökvägen i JSON som E:\\LocalBackup.

      Den slutliga JSON-filen bör visas som:

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

      Om det finns andra förifyllda poster i JSON-filen lägger du till ovanstående två poster längst ned i JSON-filen strax före den avslutande klammerparentesen.

  3. För att ändringarna ska börja gälla omedelbart i stället för vanlig en timme går du till TaskManager>Services, högerklickar på AzureWLbackupPluginSvc och väljer Stoppa.

    Varning

    Den här åtgärden avbryter alla pågående säkerhetskopieringsjobb.

    Namngivningskonventionen för den lagrade säkerhetskopieringsfilen och mappstrukturen för den blir {LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}.

    Om du till exempel har en databas Contoso under SQL-instansen MSSQLSERVERfinns filerna i .E:\LocalBackup\MSSQLSERVER\Contoso

    Namnet på filen är , VDI device set guidsom används för säkerhetskopieringsåtgärden.

  4. Kontrollera om målplatsen under LocalDiskBackupFolderPath har läs- och skrivbehörighet för .NT Service\AzureWLBackupPluginSvc

    Kommentar

    Högerklicka på mappen för en mapp på de lokala vm-diskarna och konfigurera de behörigheter som krävs för NT Service\AzureWLBackupPluginSvc på fliken Säkerhet .

    Om du använder ett nätverk eller en SMB-resurs konfigurerar du behörigheterna genom att köra PowerShell-cmdletarna nedan från en användarkonsol som redan har behörighet att komma åt resursen:

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

    Exempel:

    $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
    

Nästa steg