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 Backup 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:

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

Anteckning

Ögonblicksbildsbaserad säkerhetskopiering för SQL-databaser på virtuella Azure-datorer är nu i förhandsversion. Det här unika erbjudandet kombinerar godheten hos ögonblicksbilder, vilket leder till en bättre RTO och låg påverkan på servern tillsammans med fördelarna med frekventa loggsäkerhetskopior för låg RPO. För frågor/åtkomst skriver du till oss på AskAzureBackupTeam@microsoft.com.

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

Säkerhetskopieringsprocessen

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

  • När du har angett den SQL Server virtuella 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 hjälp av namntilläggetAzureBackupWindowsWorkload.

  • 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/-förfrågan, så det här kontot måste vara en offentlig inloggning på 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 konfigurationsskyddet för 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 tiden kommunicerar koordinatorn med plugin-programmet och börjar strömma säkerhetskopierade data 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 i lagringskonton.

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

    SQL Backup-arkitektur

Innan du börjar

Innan du börjar kontrollerar du följande krav:

  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 på SQL.

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

Information om hur du ger behörigheter för SQL 2008 och 2008 R2 som körs på Windows 2008 R2 finns här.

Åtgärda behörigheter med följande steg för alla andra versioner:

  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. Öppna mappen Säkerhet/inloggningar på SQL Server.

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

  3. Högerklicka på mappen Inloggningar 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 i listan Skyddade servrar högerklickar du på den server som har feltillståndet >Rediscover DATABASER.

    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

Anteckning

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-databaser i portalen: Valv –> Infrastruktur för säkerhetskopiering –> arbetsbelastning i virtuell Azure-dator:

    Återskapa databaser i Azure Portal

Du kan också automatisera behörighetsgivandet 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äkerhetskopior för att spara SQL Server-återställningspunkter och loggar i en lokal lagringsplats och Recovery Services-valv samtidigt.

Så här konfigurerar du 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ärdesentiteter 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 snedstrecket med dubbla snedstreck 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 klammern.

  3. Om ändringarna ska börja gälla omedelbart i stället för en vanlig 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äkerhetskopian och mappstrukturen för den blir {LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}.

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

    Namnet på filen är VDI device set guid, som används för säkerhetskopieringen.

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

    Anteckning

    För en mapp på de lokala VM-diskarna högerklickar du på mappen och konfigurerar 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 nedanstående PowerShell-cmdletar 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