Innehållsförteckning dölja

säkerhetskopiering SQL Server databas med vår kompletta guide för 2025. Steg-för-steg-instruktioner och bästa praxis för alla färdighetsnivåer.

1. Introduktion till SQL Server säkerhetskopiering

1.1 Vad är SQL Server Säkerhetskopiering?

SQL Server Säkerhetskopiering är processen att skapa kopior av dina databasfiler för att skydda mot dataförlust. En säkerhetskopia fångar databasens tillstånd vid en specifik tidpunkt, vilket gör att du kan återställa data om hårdvarufel, mänskliga fel eller katastrofer inträffar.

SQL Server lagrar säkerhetskopior i .bak-filer som standard, vilka innehåller alla databasobjekt inklusive tabeller, lagrade procedurer, vyer, index och transaktionsloggar.

1.2 Varför SQL Server Säkerhetskopiering är avgörande

Säkerhetskopiering av databaser fungerar som din sista försvarslinje mot dataförlust. Utan korrekta säkerhetskopior riskerar din organisation att:

  • Permanent dataförlust från hårdvarufel eller korruption
  • Förlängd stilleståndstid under återhämtningsförsök
  • Affärsstörningar och intäktsförlust
  • Överträdelser av efterlevnad om data inte kan återställas
  • Rykteskada från avbrott i tjänsten

Regular SQL Server Säkerhetskopieringar säkerställer affärskontinuitet och uppfyller lagstadgade krav för dataskydd.

1.3 Vanliga scenarier för dataförlust

Att förstå när dataförlust inträffar hjälper dig att utveckla en effektiv säkerhetskopieringsstrategi:

  • Hårdvarufel: Diskkrascher, serverfel eller lagringssystemfel
  • Mänskliga fel: Oavsiktliga borttagningar, felaktiga uppdateringar eller borttagna tabeller
  • Programvaruproblem: Programfel, skadade uppdateringar eller systemkrascher
  • Säkerhetsbrott: Ransomware-attacker, skadliga borttagningar eller obehörig åtkomst
  • Naturkatastrofer: Bränder, översvämningar eller strömavbrott som påverkar datacenter

2. Förståelse SQL Server Backuptyper

SQL Server stöder flera typer av säkerhetskopiering, som var och en uppfyller olika återställningsbehov och lagringskrav.

2.1 Fullständig säkerhetskopiering

En fullständig säkerhetskopia skapar en komplett kopia av hela din databas, inklusive alla datafiler och en del av transaktionsloggen som behövs för återställning.

2.1.1 När ska man använda fullständig säkerhetskopiering

Fullständiga säkerhetskopior är idealiska för:

  • Upprätta en baslinje för andra typer av säkerhetskopiering
  • Små till medelstora databaser där säkerhetskopieringstid är acceptabel
  • Veckovisa eller månatliga säkerhetskopieringsscheman
  • Databaser med sällsynta ändringar

2.1.2 Fördelar och begränsningar med fullständig säkerhetskopiering

fördelar:

  • Enklaste återställningsprocessen – en enda fil innehåller allt
  • Fristående och oberoende av andra säkerhetskopior
  • Snabbaste återställningstid för fullständig databasåterställning

Begränsningar:

  • Kräver betydande lagringsutrymme
  • Längre säkerhetskopieringstid för stora databaser
  • Högre resursförbrukning under säkerhetskopiering

2.2 Differentialbackup

En differentiell säkerhetskopia registrerar endast dataändringar sedan den senaste fullständiga säkerhetskopian, vilket minskar säkerhetskopieringstid och lagringskrav.

2.2.1 Hur differentiell backup fungerar

Differentiell säkerhetskopia spårar ändringar med hjälp av ändrade omfattningar. När du återställer, SQL Server tillämpar först den senaste fullständiga säkerhetskopian, sedan tillämpar most nyligen differentiell backup.

2.2.2 Full kontra differentiell backup

Full kontra differentiell säkerhetskopiering

Aspect Full säkerhetskopiering Differensiell säkerhetskopiering
Storlek Komplett databas Endast ändringar sedan senaste fullständiga säkerhetskopiering
Backuptid längsta Snabbare än full
Återställ process Återställning av enstaka filer Kräver full + differential
Förvaring krävs Most plats Mindre utrymme initialt, växer med tiden

2.3 Säkerhetskopiering av transaktionslogg

Säkerhetskopior av transaktionsloggar registrerar alla transaktioner sedan den senaste säkerhetskopian, vilket möjliggör återställning vid en viss tidpunkt.

2.3.1 Förstå transaktionsloggar

Transaktionsloggen registrerar alla ändringar i din databas. Säkerhetskopieringar av loggfiler trunkerar den inaktiva delen av loggen, vilket förhindrar att den växer i all oändlighet och fyller din disk.

2.3.2 Återställning vid tidpunkten

Med säkerhetskopior av transaktionsloggar kan du återställa din databas till en specifik tidpunkt inom en säkerhetskopia. Detta är avgörande för att återställa från oavsiktliga dataändringar eller borttagningar.

För att utföra tidpunktsåterställning behöver du:

  • Den senaste fullständiga säkerhetskopian
  • Den most nyligen differentiell säkerhetskopiering (valfritt)
  • Alla säkerhetskopior av transaktionsloggar från den fullständiga/differentiella säkerhetskopian till din tarfå tid

2.4 Säkerhetskopiering av svanslogg

Backups av loggfiler samlar in loggposter som ännu inte har säkerhetskopierats, vilket förhindrar dataförlust och bibehåller en intakt loggkedja. Innan en SQL Server Om du vill säkerhetskopiera databasen till dess senaste tidpunkt måste du säkerhetskopiera den sista delen av transaktionsloggen. Säkerhetskopian av den sista delen av loggfilen är den sista säkerhetskopian av intresse i återställningsplanen för databasen.

Diagrammet som förklarar backuperna i tail-log-lägena i SQL Server.

Obs: Inte alla återställningsscenarier kräver en backup av typen tail-log. Du behöver inte en om återställningspunkten finns i en tidigare loggbackup. En backup av typen tail-log är inte heller nödvändig om du flyttar eller ersätter (skriver över) en databas och inte behöver återställa den till en tidpunkt efter att den har m...ost senaste säkerhetskopian.

2.4.1 När säkerhetskopior av tail-logs är nödvändiga

Följande scenarier beskriver när du bör göra en backup av tail-loggen:

Återställning av online-databas: Om databasen är online och du planerar att utföra en återställningsåtgärd på databasen, börja med att säkerhetskopiera slutet av loggen. För att undvika ett fel för en online-databas måste du använda alternativet WITH NORECOVERY i BACKUP Transact-SQL-satsen när du säkerhetskopierar. SQL Server databas.

Återställning av offline-databas: Om en databas är offline och misslyckas med atttaroch du behöver återställa databasen, säkerhetskopiera först den sista delen av loggen. Eftersom inga transaktioner kan ske just nu är det valfritt att använda alternativet WITH NORECOVERY. NORECOVERY är i praktiken detsamma som en kopia av transaktionsloggen i det här scenariot.

Skadad databasbackup: Om en databas är skadad, försök att göra en backup av tail-loggen med hjälp av alternativet WITH CONTINUE_AFTER_ERROR i BACKUP-satsen. På en skadad databas kan backup av loggens slut endast lyckas om loggfilerna är oskadade, databasen är i ett tillstånd som stöder backup av tail-loggen och databasen inte innehåller några massloggade ändringar. Om en backup av tail-loggen inte kan skapas, kommer alla transaktioner som genomförts efter den senaste MS-versionen att sparas. SQL Server säkerhetskopieringsdatabasen är lost.

2.4.2 Viktiga alternativ för backuper av tail-logs

MED NORECOVERY: Använd WITH NORECOVERY om du säkerhetskopierar en del av en logg från en online-databas som du planerar att återställa senare. NORECOVERY tar databasen offline. Du kan också säkerhetskopiera SQL Server svansloggen för en offline-databas. Om du vill lämna databasen offline, använd WITH NORECOVERY. Observera att loggen kommer att avkortas om du inte anger antingen alternativet COPY_ONLY eller NO_TRUNCATE.

MED CONTINUE_EFTER_ERROR: Använd CONTINUE_AFTER_ERROR endast om du säkerhetskopierar slutet av en skadad databas. När du säkerhetskopierar slutet av en logg på en skadad databas kan en del av de metadata som normalt sparas i loggsäkerhetskopior vara otillgängliga.

2.5 Endast kopia för säkerhetskopiering

Kopieringssäkerhetskopior skapar en oberoende säkerhetskopia utan att påverka den normala säkerhetskopieringssekvensen. De stör inte differentiella säkerhetskopieringskedjor eller kontinuiteten i transaktionsloggar.

Använd endast kopieringsbara säkerhetskopior för:

  • Skapa kopior av test- eller utvecklingsdatabaser
  • Ad-hoc-säkerhetskopior utan att påverka schemalagda säkerhetskopior
  • Säkerhetskopiering före större ändringar eller tester

2.6 Säkerhetskopiering av filer och filgrupper

Säkerhetskopiering av filer och filgrupper tarhämta specifika databasfiler eller filgrupper snarare än hela databasen. Den här metoden fungerar bra för mycket stora databaser där det tar för lång tid att säkerhetskopiera allt.

Fördelarna inkluderar:

  • Snabbare säkerhetskopiering för stora databaser
  • Parallell säkerhetskopiering av flera filgrupper
  • Granulära återställningsalternativ
  • Optimerade säkerhetskopieringsscheman för skrivskyddade filgrupper

2.7 Delvis säkerhetskopiering

Delvisa säkerhetskopior inkluderar all data i den primära filgruppen och alla läs- och skrivskyddade filgrupper, exklusive skrivskyddade filgrupper. Detta minskar säkerhetskopieringsstorleken och tiden för databaser med statiska historiska data lagrade i skrivskyddade filgrupper.

3. SQL Server Återhämtningsmodeller

SQL Server Återställningsmodeller avgör vilka typer av säkerhetskopiering som är tillgängliga och hur transaktionsloggar hanteras.

3.1 Enkel återhämtningsmodell

3.1.1 Egenskaper och användningsfall

Enkel återställning avkortar automatiskt transaktionsloggen efter varje kontrollpunkt, vilket frigör utrymme utan att loggsäkerhetskopior krävs.

Bäst för:

  • Utvecklings- och testdatabaser
  • Databaser där dataförlust mellan säkerhetskopior är acceptabelt
  • Datalager med ETL-processer som kan köras om
  • Skrivskyddade eller rapporterande databaser

3.1.2 Tillgängliga säkerhetskopieringsalternativ

Enkel återställning stöder:

  • Fullständiga säkerhetskopior
  • Differentiella säkerhetskopior
  • Säkerhetskopiering av filer och filgrupper
  • Endast kopieringsbara säkerhetskopior

Säkerhetskopieringar av transaktionsloggar är ej tillgänglig i en enkel återhämtningsmodell.

3.2 Modell för fullständig återhämtning

3.2.1 Funktioner och fördelar

Fullständig återställning loggar alla transaktioner och bevarar loggposter tills du säkerhetskopierar dem. Detta möjliggör fullständig dataåterställning till vilken tidpunkt som helst inom en säkerhetskopia av transaktionsloggen.

Viktiga fördelar:

  • Minimal risk för dataförlust
  • Återställningskapacitet vid tidpunkten
  • Stöder loggleverans och databasspegling
  • Maximal återhämtningsflexibilitet

3.2.2 Hantering av transaktionslogg

Under fullständig återställning måste du regelbundet säkerhetskopiera transaktionsloggen för att:

  • Förhindra att transaktionsloggen fyller diskutrymme
  • Upprätthåll en kontinuerlig reservkedja
  • Aktivera punkt-i-tid återställning
  • Kontrollera tillväxten av loggfiler

Typiskt säkerhetskopieringsschema: fullständiga säkerhetskopior varje vecka, differentiella säkerhetskopior dagligen, loggsäkerhetskopior var 15–30:e minut.

3.3 Modell för massloggad återställning

3.3.1 När ska man använda massloggning

Massloggad återställning loggar minimalt massåtgärder som BULK INSERT, SELECT INTO och indexåterbyggnader samtidigt som fullständig loggning för regelbundna transaktioner bibehålls.

Använd massloggad återställning när:

  • Utföra stora bulkiportoperationer
  • Återuppbygga index på stora tabeller
  • Utföra operationer som drar nytta av minimal loggning
  • Behov av att minska transaktionsloggstorleken under specifika operationer

3.3.2 Begränsningar och överväganden

Viktiga begränsningar:

  • Återställning vid tidpunkt är inte tillgänglig under massoperationer
  • Loggbackups är större när massåtgärder utförs
  • Måste växla mellan fullständig och massloggad loggning efter behov

3.4 Att välja rätt återhämtningsmodell

Välj din återställningsmodell baserat på affärskrav:

Återhämtningsmodell Risk för dataförlust Point-in-Time-återställning bäst för
Enkelt Ändringar sedan senaste säkerhetskopiering Nej Utveckling/testning, acceptabel dataförlust
full Minimal (vanligtvis minuter) Ja Produktionsdatabaser, kritiska data
Massloggad Ändringar sedan senaste säkerhetskopia av logg Begränsad under bulkoperationer Temporaranvändning under bulkoperationer

4. Säkerhetskopiering SQL Server Databas med SSMS

4.1 Förkunskapskrav och förberedelser

Innan du säkerhetskopierar din SQL Server databas, se till att:

  • Du har lämpliga behörigheter (db_owner eller BACKUP DATABASE-behörighet)
  • Tillräckligt diskutrymme för säkerhetskopian
  • SQL Server Management Studio (SSMS) installerat
  • Nätverksvägar tillgängliga vid säkerhetskopiering till nätverksplatser

4.2 Steg för steg: Fullständig säkerhetskopiering med SSMS

Följ dessa steg för att skapa en fullständig säkerhetskopia av din SQL Server databas med hjälp av SSMS.

4.2.1 Öppning SQL Server management studio

  1. Starta SQL Server management studio
  2. Ange ditt servernamn i Server namn fält
  3. Välj din autentiseringsmetod
  4. Klicka Kontakta

4.2.2 Välja databas- och säkerhetskopieringsalternativ

  1. In Objekt Explorer, expandera Databaser nod
  2. Högerklicka på databasen du vill säkerhetskopiera
  3. Välja Uppgifter -> BACKA UPP
    Staren säkerhetskopieringsuppgift för en SQL Server databas i SQL Server ManagementStudio.
  4. I Säkerhetskopiera databasen fönstret, verifiera databasnamnet
  5. Välja full som Säkerhetskopieringstyp
    Skapa en fullständig säkerhetskopia av en SQL Server databas i SQL Server ManagementStudio.

4.2.3 Konfigurera säkerhetskopimål

  1. Enligt Destination, klicka på ta bort för att rensa standardsökvägen (om det behövs)
  2. Klicka Lägg till för att ange en ny plats för säkerhetskopiering
  3. Ange filens sökväg och namn med .bak förlängning
  4. Klicka OK för att bekräfta destinationen

Ange säkerhetskopians destination i SQL Server ManagementStudio.

4.2.4 Advanced Backup Inställningar

  1. Klicka Mediealternativ i den vänstra panelen
  2. Välj alternativ för säkerhetskopiering:
    • Skriv över alla befintliga säkerhetskopior – Ersätter befintliga säkerhetskopior
    • Lägg till i befintlig säkerhetskopia – Lägger till i befintlig säkerhetskopia

    Ställ in alternativen för säkerhetskopieringsmedia i SQL Server ManagementStudio.

  3. Klicka Alternativ för säkerhetskopiering i den vänstra panelen
  4. Konfigurera valfria inställningar:
    • Komprimera säkerhetskopian – Minskar storleken på säkerhetskopian
    • Kryptera säkerhetskopiering – Skyddar känsliga uppgifter
    • Verifiera säkerhetskopian när den är klar – Kontrollerar säkerhetskopians integritet

    Ställ in säkerhetskopieringsalternativen i SQL Server ManagementStudio.

4.2.5 Utföra säkerhetskopieringen

  1. Granska alla inställningar i Säkerhetskopiera databasen fönster
  2. Klicka OK sedan ptarsäkerhetskopieringsprocessen
  3. Vänta tills säkerhetskopieringen är klar
  4. Ett meddelande om att säkerhetskopieringen är klar visas
  5. Klicka OK för att stänga bekräftelsedialogrutan

4.3 Skapa differentiell säkerhetskopiering med SSMS

För att skapa en differentiell säkerhetskopia, följ samma steg som för en fullständig säkerhetskopia, men välj Differentiell som säkerhetskopiatyp i steg 4.2.2. Kom ihåg att differentiella säkerhetskopior kräver en fullständig säkerhetskopia som baslinje.

Skapa en differentiell säkerhetskopia av en SQL Server databas i SQL Server ManagementStudio.

4.4 Skapa säkerhetskopia av transaktionslogg med SSMS

Säkerhetskopiering av transaktionsloggar är endast tillgängliga för databaser som använder fullständiga eller massloggade återställningsmodeller.

  1. Högerklicka på databasen i Objekt Explorer
  2. Välja Uppgifter -> BACKA UPP
  3. Välja Transaktionslogg som säkerhetskopiatyp
  4. Konfigurera destination och alternativ efter behov
  5. Klicka OK för att skapa loggsäkerhetskopian

Skapa en säkerhetskopia av en transaktionslogg SQL Server databas i SQL Server ManagementStudio.

4.5 Skapa en kopieringsfri säkerhetskopia med SSMS

Endast kopieringsbara säkerhetskopior stör inte din vanliga säkerhetskopieringssekvens.

  1. Följ stegen för att skapa en fullständig säkerhetskopia
  2. I Alternativ för säkerhetskopiering sida
  3. Kontrollera Endast kopieringssäkerhetskopiering alternativ
  4. Slutför säkerhetskopieringsprocessen normalt

Skapa en säkerhetskopia av en SQL Server databas i SQL Server ManagementStudio.

5. Säkerhetskopiering SQL Server Databas med T-SQL

5.1 Grundläggande syntax för säkerhetskopiering av databas

T-SQL BACKUP DATABASE-kommandot ger programmatisk kontroll över SQL Server säkerhetskopior.

BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;

5.2 Fullständiga säkerhetskopior av T-SQL-kommandon

5.2.1 Enkelt skript för fullständig säkerhetskopiering

Skapa en grundläggande fullständig säkerhetskopia med minimala alternativ:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO

5.2.2 Fullständig säkerhetskopiering med alternativ

Lägg till beskrivande information och formateringsalternativ:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
     INIT,
     NAME = 'AdventureWorks-Full Database Backup',
     DESCRIPTION = 'Full backup of AdventureWorks database',
     STATS = 10
GO

Alternativ förklarade:

  • FORMAT – Skapar en ny säkerhetskopia
  • I DET – Skriver över befintlig säkerhetskopia
  • NAMN – Tilldelar namn på säkerhetskopian
  • BESKRIVNING – Lägger till beskrivande text
  • STATISTIK – Visar framsteg var 10:e

5.3 Differentiell säkerhetskopiering av T-SQL-kommandon

Differentiella säkerhetskopior använder DIFFERENTIAL-alternativet:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
     INIT,
     NAME = 'AdventureWorks-Differential Backup',
     STATS = 10
GO

5.4 T-SQL-kommandon för säkerhetskopiering av transaktionslogg

Använd SÄKERHETSKOPIERINGSLOGG för säkerhetskopior av transaktionsloggar:

BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
     NAME = 'AdventureWorks-Transaction Log Backup',
     STATS = 10
GO

5.5 Avancerade T-SQL-säkerhetskopieringsalternativ

5.5.1 Säkerhetskopiering till flera filer

Distribuera säkerhetskopian över flera filer för snabbare prestanda:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
   DISK = 'D:\Backups\AdventureWorks_2.bak',
   DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO

5.5.2 Säkerhetskopiering med komprimering

Minska storleken på säkerhetskopiorna och nätverksbandbredden:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
     INIT,
     STATS = 10
GO

5.5.3 Säkerhetskopiering med kryptering

Skydda känsliga data med kryptering:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     ),
     STATS = 10
GO

5.5.4 Säkerhetskopiering med lösenordsskydd

Lägg till lösenordsskydd (föråldrat, använd kryptering istället):

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
     INIT
GO

5.5.5 Speglade säkerhetskopior

Skapa samtidiga kopior till olika platser:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO

5.6 Exempel och skript för säkerhetskopiering av T-SQL

Komplett säkerhetskopieringsskript med felhantering:

DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);

SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';

BEGIN TRY
    BACKUP DATABASE @DatabaseName
    TO DISK = @BackupPath
    WITH COMPRESSION,
         INIT,
         NAME = @DatabaseName + '-Full Backup',
         STATS = 10;
    
    PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
    PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO

6. Säkerhetskopiering SQL Server Databas med PowerShell

6.1 PowerShell-säkerhetskopierings-cmdlets

SQL Server PowerShell-modulen tillhandahåller cmdlets för automatisering av säkerhetskopiering:

  • Säkerhetskopiering av SQL-databas – Skapar säkerhetskopior av databaser
  • Återställ SQL-databas – Återställer säkerhetskopior av databaser
  • Get-SqlDatabase – Hämtar databasinformation

Importera SQL Server modul:

Import-Module SqlServer

6.2 Skapa säkerhetskopieringsskript med PowerShell

Grundläggande PowerShell-säkerhetskopieringskommando:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks.bak" `
                    -BackupAction Database `
                    -CompressionOption On

Exempel på differentiell backup:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
                    -BackupAction Database `
                    -Incremental

Säkerhetskopiering av transaktionslogg:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Log.trn" `
                    -BackupAction Log

6.3 Automatisera säkerhetskopior med PowerShell

Skapa ett automatiskt säkerhetskopieringsskript för flera databaser:

# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"

# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
    New-Item -ItemType Directory -Path $BackupPath
}

# Backup each database
foreach ($Database in $Databases) {
    $BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
    
    try {
        Backup-SqlDatabase -ServerInstance $ServerInstance `
                          -Database $Database `
                          -BackupFile $BackupFile `
                          -BackupAction Database `
                          -CompressionOption On
        
        Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
    }
    catch {
        Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
    }
}

7. Säkerhetskopiering SQL Server Databas med hjälp av kommandoraden

SQL Server tillhandahåller kommandoradsverktyg som låter dig säkerhetskopiera SQL Server databas utan att använda SSMS eller grafiska gränssnitt. Dessa verktyg är viktiga för automatisering, skript och fjärradministration.

7.1 Använd SQLCMD-säkerhetskopiadatabasen

SQLCMD är det moderna kommandoradsverktyget för SQL Server som ersatte OSQL. Det ger förbättrad funktionalitet och är det rekommenderade verktyget för att köra T-SQL-kommandon från kommandotolken.

7.1.1 Grundläggande SQLCMD-syntax

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: Anger SQL Server instansnamn
  • -d: Anger databasens namn
  • -F: Kör en fråga och avslutar
  • -OCH: Använder Windows-autentisering
  • -U: Anger SQL Server inloggningsanvändarnamn
  • -F: Anger lösenord för SQL Server logga in

7.1.2 Skapa säkerhetskopia med SQLCMD

Att säkerhetskopiera SQL Server med hjälp av SQLCMD, följ dessa steg:

  1. Öppet kommando~~POS=TRUNC or Power
  2. Navigera till SQL Server tools-katalogen (vanligtvis tillagd i PATH under installationen)
  3. Kör kommandot SQLCMD backup database med lämpliga parametrar.
  4. Kontrollera att säkerhetskopian skapades

Exempel på fullständig säkerhetskopieringskommando med Windows-autentisering:

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Exempel med SQL Server Authentication:

sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Skapa differentiell säkerhetskopia med SQLCMD

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"

Skapa säkerhetskopia av transaktionslogg med SQLCMD

sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"

7.2 Använd OSQL-säkerhetskopiadatabas

OSQL är ett äldre kommandoradsverktyg för SQL ServerÄven om Microsoft rekommenderar att man använder SQLCMD istället, är OSQL fortfarande tillgängligt för bakåtkompatibilitet med äldre skript och system.

7.2.1 Grundläggande OSQL-syntax

OSQL-syntax liknar SQLCMD:

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S: SQL Server instansnamn
  • -d: Databas namn
  • -F: Kör frågan och avslutar
  • -OCH: Använder betrodd anslutning (Windows-autentisering)
  • -U: Logga in användarnamn
  • -F: Inloggningslösenord

7.2.2 Skapa säkerhetskopia med OSQL

För att utföra OSQL-säkerhetskopieringsåtgärder för databasen:

  1. Öppet kommando~~POS=TRUNC
  2. Verifiera att OSQL är tillgängligt i din SQL Server Installationen
  3. Kör OSQL-backupkommandot

Exempel på fullständig säkerhetskopiering:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"

Exempel på differentiell backup:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"

8. Tredje part SQL Server Säkerhetskopieringsverktyg

Medan SQL Server inkluderar inbyggda säkerhetskopieringsfunktioner, tredjepartsverktyg erbjuder förbättrade funktioner, automatisering och hantering i företagsklass för organisationer med komplexa krav. Dessa lösningar tillhandahåller avancerad komprimering, centraliserad hantering och effektiviserade arbetsflöden för säkerhetskopiering. SQL Server databaser i flera miljöer.

8.1 Veeam-säkerhetskopiering för SQL Server

Veeam erbjuder omfattande dataskyddslösningar som är särskilt utformade för säkerhetskopiering SQL Server databaser med minimal påverkan på produktionssystem.

Nyckelfunktioner:

  • Applikationsmedveten bearbetning för SQL Server säkerhetskopieringskonsekvens
  • Säkerhetskopiering och hantering av transaktionsloggar
  • Återställning vid tidpunkten med detaljerade återställningsalternativ
  • Integration med Veeam Backup & Replication för enhetligt dataskydd
  • Automatiserad verifiering och validering av säkerhetskopior
  • Stöd för grupper för alltid påslagna tillgänglighet
  • VM-nivå och applikationsnivå SQL Server alternativ för säkerhetskopiering

8.2 Barracuda-säkerhetskopiering för SQL Server

Barracuda erbjuder molnintegrerade säkerhetskopieringslösningar med förenklad hantering för MS SQL Server säkerhetskopieringsdatabasoperationer.

Nyckelfunktioner:

  • Automatiserad SQL Server schemaläggning av säkerhetskopiering
  • Inbyggd molnreplikering till Barracuda Cloud Storage
  • Global deduplicering och komprimering
  • Omedelbara lokala återställningsmöjligheter
  • Webbaserad hanteringskonsol
  • Stöd för fullständiga, differentiella och transaktionsloggssäkerhetskopior
  • Ransomware-skydd med oföränderliga säkerhetskopior

8.3 Veritas NetBackup för SQL Server

Veritas NetBackup är en säkerhetskopieringsplattform i företagsklass som ger omfattande skydd för SQL Server databaser i komplexa IT-miljöer.

Nyckelfunktioner:

  • Säkerhetskopieringshantering i företagsskala för tusentals SQL Server instanser
  • Avancerade deduplicerings- och komprimeringsalgoritmer
  • Flexibla säkerhetskopieringspolicyer och schemaläggning
  • Stöd för alla SQL Server återhämtningsmodeller
  • Integration med bandbibliotekraroch molnlagring
  • Granulär återställning av databaser, tabeller och objekt
  • Stöd för flera plattformar (Windows, Linux) SQL Server)
  • Automatiserad hantering av säkerhetskopiering i livscykeln

8.4 Commvault komplett säkerhetskopiering och återställning för SQL Server

Commvault levererar intelligent datahantering med omfattande säkerhetskopiering SQL Server funktioner och avancerade automatiseringsfunktioner.

Nyckelfunktioner:

  • AI-driven säkerhetskopieringsoptimering och avvikelsedetektering
  • Enhetlig plattform för säkerhetskopiering, återställning och arkivering
  • Advanced Open water SQL Server säkerhetskopieringskomprimering (upp till 90 % reduktion)
  • Automatiserad orkestrering av katastrofåterställning
  • Live Sync för nästan noll RPO-skydd
  • Stöd för SQL Server Lokala, moln- och hybriddistributioner
  • IntelliSnap för ögonblicksbildsbaserade säkerhetskopior
  • Omfattande funktioner för efterlevnad och e-discovery

8.5 Sammanhållning DataProtect för SQL Server

Cohesity tillhandahåller nästa generations datahantering med hyperkonvergerad infrastruktur för moderna SQL Server säkerhetskopieringsoperationer.

Nyckelfunktioner:

  • Webbbaserad arkitektur för förenklad hantering
  • Omedelbara massåterställningsmöjligheter för SQL Server databaser
  • Applikationskonsekventa ögonblicksbilder
  • Global deduplicering av alla säkerhetskopior
  • Inbyggd molnintegration (AWS, Azure, Google Cloud)
  • Inbyggda instrumentpaneler för analys och övervakning
  • Klona och testa databasfunktioner
  • Skydd mot ransomware med oföränderliga ögonblicksbilder

8.6 Red Gate SQL Backup Pro

Red Gate SQL Backup Pro är ett specialiserat verktyg som uteslutande fokuserar på att optimera SQL Server säkerhetskopierings- och återställningsåtgärder med överlägsen komprimering och prestanda.

Nyckelfunktioner:

  • Branschledande kompressionsförhållanden (upp till 95 %)
  • Nätverksmotståndskraft för säkerhetskopiering SQL Server över opålitliga förbindelser
  • Säkerhetskopieringskryptering med 256-bitars AES
  • Verifiering av säkerhetskopior och integritetskontroll
  • Detaljerad säkerhetskopieringshistorik och rapportering
  • Integration med SQL Server management studio
  • Stöd för säkerhetskopiering till nätverksplatser och molnlagring
  • Parallell säkerhetskopiering och återställning för snabbare drift

9. Hur man återställer SQL Server Databas

9.1 Förstå återställningsprocessen

Återställa en SQL Server Databasen återskapar databasen från säkerhetskopiorna. Återställningsprocessen läser säkerhetskopian och rekonstruerar databasen till dess säkerhetskopierade tillstånd.

Viktiga överväganden:

  • Återställningen skriver över den befintliga databasen
  • Användare kopplas bort under återställning
  • Återställningen måste följa säkerhetskopieringssekvensen (fullständig, sedan differentiell, sedan loggar)
  • Databasen är inte tillgänglig under återställningen

9.2 Återställa fullständig säkerhetskopia med SSMS

Följ dessa steg för att återställa en fullständig säkerhetskopia av databasen.

9.2.1 Steg-för-steg-återställningsprocess

  1. Öppet SQL Server management studio och anslut till din server
  2. In Objekt Explorer, Högerklicka Databaser
  3. Välja Återställ databas
  4. I Källa avsnitt, välj Anordning
  5. Klicka på . knappen för att bläddra efter säkerhetskopior
  6. Klicka Lägg till och navigera till din .bak-fil
  7. Välj säkerhetskopian och klicka på OK
  8. I Destination avsnittet, ange databasens namn
  9. Granska säkerhetskopiorna för att återställa
  10. Klicka OK sedan ptaråterställningen

9.2.2 Återställ alternativ och inställningar

Klicka Montering i den vänstra panelen för att konfigurera:

  • Skriv över den befintliga databasen (MED ERSÄTTNING) – Möjliggör återställning över befintlig databas
  • Bevara replikeringsinställningarna (MED KEEP_REPLICATION) – Underhåller replikeringskonfigurationen
  • Begränsa åtkomst till den återställda databasen (MED RESTRICTED_USER) – Gränser post-återställa åtkomst
  • Återhämtningstillstånd – Välj mellan ÅTERSTÄLL MED ÅTERSTÄLLNING eller INGEN ÅTERSTÄLLNING

9.3 Återställa differentiell säkerhetskopiering

Differentiell återställning kräver både fullständiga och differentiella säkerhetskopior:

  1. Återställ först den fullständiga säkerhetskopian med NORÅTERHÄLLNING alternativ
  2. Återställ sedan differentialbackupen med ÅTERHÄMTNING alternativ

T-SQL-exempel:

-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO

9.4 Återställning med säkerhetskopior av transaktionsloggen

För återställning vid en viss tidpunkt, återställ i sekvens:

  1. Återställ fullständig säkerhetskopia med NORECOVERY
  2. Återställ differentiell säkerhetskopiering med NORECOVERY (om tillgängligt)
  3. Återställ säkerhetskopior av transaktionsloggar i ordning med NORECOVERY
  4. Återställ den slutliga loggbackupen med RECOVERY
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;

-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO

9.5 Återställning vid tidpunkt

Återställ databasen till en specifik tidpunkt med hjälp av STOPAT-alternativet:

-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO

9.6 Återställning med T-SQL-kommandon

Komplett återställningsskript med filflyttning:

RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
     MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
     REPLACE,
     STATS = 10;
GO

9.7 Verifiera säkerhetskopians integritet före återställning

Kontrollera säkerhetskopians giltighet utan att återställa:

RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO

Det här kommandot verifierar att säkerhetskopian är komplett och läsbar utan att databasen behöver återställas.

10. SQL Server Bästa metoder för säkerhetskopiering

10.1 Utveckla en säkerhetskopieringsstrategi

10.1.1 Bedömning av affärskrav

Innan du implementerar säkerhetskopior, utvärdera:

  • Datakritikalitet: Hur viktiga är dessa data för verksamheten?
  • Ändringsfrekvens: Hur ofta ändras data?
  • Databasstorlek: Hur stor är databasen?
  • Tillgängliga resurser: Vilken lagring och bandbredd finns tillgänglig?
  • Efterlevnadskrav: Vilka regler måste du följa?

10.1.2 Definition av RTO och RPO

Mål för återhämtningstid (RTO): Maximal acceptabel driftstoppstid. Avgör hur snabbt du behöver återställa driften.

Återställningspunktsmål (RPO): Maximal acceptabel dataförlust. Bestämmer säkerhetskopieringsfrekvensen.

RTO/RPO-krav Rekommenderad säkerhetskopieringsstrategi
RPO: Timmar, RTO: Timmar Daglig fullständig + transaktionslogg var 1-2 timme
RPO: Minuter, RTO: Timmar Dagliga fullständiga säkerhetskopior + loggbackuper var 15–30:e minut
RPO: Nära noll, RTO: Minuter Alltid påslagna tillgänglighetsgrupper + frekventa säkerhetskopior av logg
RPO: Dagar, RTO: Dagar Veckovis hel + daglig differens

10.2 Skapa ett säkerhetskopieringsschema

10.2.1 Frekvensrekommendationer

Typiskt säkerhetskopieringsschema för produktionsdatabaser:

  • Fullständiga säkerhetskopior: Veckovis (söndag kväll vid låg aktivitet)
  • Differentiell säkerhetskopiering: Dagligen (varje natt)
  • Säkerhetskopiering av transaktionsloggar: Var 15–30 minut under kontorstid
  • Endast kopieringsbara säkerhetskopior: Vid behov för testning eller utveckling

10.2.2 Balans mellan prestanda och skydd

Tänk på dessa faktorer vid schemaläggning:

  • Lågtrafik: Kör fullständiga säkerhetskopior under perioder med låg aktivitet
  • Resurspåverkan: Komprimering minskar I/O men ökar CPU-användningen
  • Nätverksbandbredd: Schemalägg nätverkssäkerhetskopior när trafiken är låg
  • Säkerhetskopieringsfönster: Se till att säkerhetskopiorna är klara före kontorstid

10.3 Bästa praxis för säkerhetskopiering

10.3.1 Lagring på plats kontra extern lagring

Säkerhetskopieringar på plats:

  • Snabbare säkerhetskopierings- och återställningstider
  • Lägre cost för högfrekvent åtkomst
  • Sårbar för lokala katastrofer
  • Bäst för snabba återhämtningsscenarier

Säkerhetskopieringar utanför webbplatsen:

  • Skydd mot platsspecifika katastrofer
  • Överensstämmelse med krav på geografisk redundans
  • Långsammare återställningstider
  • Viktigt för katastrofåterställning

10.3.2 Alternativ för säkerhetskopiering i molnet

Fördelar med molnlagring:

  • Azure Blob Storage: Native SQL Server integration, cost-effektivt för sällsynt åtkomst
  • Amazon S3: Mycket hållbara, flexibla förvaringsnivåer
  • Google Cloud Storage: Konkurrenskraftiga priser, global tillgänglighet

10.3.3 Principer för säkerhetskopiering

Policy för provlagring:

  • Spara dagliga säkerhetskopior i 7 dagar
  • Spara veckovisa säkerhetskopior i 4 veckor
  • Spara månatliga säkerhetskopior i 12 månader
  • Spara årliga säkerhetskopior i 7 år (efterlevnad)

10.4 Säkerhetskopieringskomprimering och kryptering

Kompressionsfördelar:

  • Minskar storleken på säkerhetskopior med 50–70 %
  • Minskar säkerhetskopieringstiden
  • Minskar lagringsutrymmetosts
  • Minskar nätverksbandbredden för fjärrsäkerhetskopiering

Bästa praxis för kryptering:

  • Kryptera alltid säkerhetskopior som innehåller känsliga data
  • Använd AES 256-bitars kryptering
  • Säker certifikat- eller nyckelhantering
  • Dokumentera krypteringsnycklar och förvara dem separat

10.5 Testa och verifiera säkerhetskopior

10.5.1 Regelbunden återställningstestning

Testa återställningsprocedurer kvartalsvis eller månadsvis:

  1. Återställ säkerhetskopior till en testmiljö
  2. Verifiera dataintegritet och fullständighet
  3. Kontrollera applikationens funktionalitet
  4. Dokumentåterställningstid (validera RTO)
  5. Identifiera och lösa eventuella problem

10.5.2 Använda RESTORE VERIFYONLY

Automatisera validering av säkerhetskopior:

-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Kör verifieringen omedelbart efter att säkerhetskopieringen är klar eller som en del av schemalagt underhåll.

10.6 Automatisering och övervakning av säkerhetskopiering

10.6.1 SQL Server Agentjobb

Skapa automatiserade säkerhetskopieringsjobb:

  1. Bygga ut SQL Server RecensionerExtern länk i SSMS
  2. Högerklicka Lediga jobb och välj Nya jobb
  3. Namnge jobbet (t.ex. "Daglig fullständig säkerhetskopiering")
  4. Lägg till Steg med T-SQL-backupkommandon
  5. Skapa en tidtabell för exekveringstid
  6. Inställd Meddelanden för framgång/misslyckande

10.6.2 Underhållsplaner

SQL Server Underhållsplaner ger ett visuellt gränssnitt för automatisering av säkerhetskopiering:

  1. Navigera till Verksamhetsledningen -> Underhållsplaner
  2. Högerklicka och välj Guiden för underhållsplanering
  3. Välj säkerhetskopieringsuppgifter som ska automatiseras
  4. Konfigurera säkerhetskopieringsschema och alternativ
  5. Konfigurera rapportering och loggning

10.6.3 Säkerhetskopieringsvarningar och meddelanden

Konfigurera e-postmeddelanden:

  • Konfigurera databas-e-post i SQL Server
  • Skapa aviseringar för säkerhetskopieringsfel
  • Övervaka historiken för säkerhetskopieringsjobb
  • Skicka sammanfattningsrapporter till administratörer

10.7 Dokumentation och katastrofåterställningsplanering

Upprätthålla omfattande dokumentation:

  • Schema för säkerhetskopiering: När och vad som säkerhetskopieras
  • Regler för lagring: Hur länge säkerhetskopior sparas
  • Lagringsplatser: Var säkerhetskopior lagras
  • Återställningsprocedurer: Steg-för-steg-instruktioner för återställning
  • Kontakt information: Nyckelpersonal och leverantörer
  • Resultat av återhämtningstest: Dokumenterade testresultat

11. Avancerad SQL Server Säkerhetskopieringsscenarier

11.1 Säkerhetskopiera mycket stora databaser (VLDB)

11.1.1 Fil- och filgruppsstrategier

För databaser som överstiger flera hundra gigabyte:

  • Separera skrivskyddad och läs- och skrivskyddad data i olika filgrupper
  • Säkerhetskopiera skrivskyddade filgrupper sällan
  • Fokusera frekventa säkerhetskopieringar på aktiva filgrupper
  • Använd säkerhetskopior på filnivå för detaljerad kontroll

Exempel på säkerhetskopiering av filer:

-- Back up specific file
BACKUP DATABASE LargeDB 
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO

11.1.2 Optimering av säkerhetskopieringsprestanda

Förbättra prestandan för VLDB-säkerhetskopiering:

  • Randiga säkerhetskopior: Skriv till flera filer samtidigt
  • Komprimering: Minska I/O- och lagringskraven
  • Flera säkerhetskopieringsenheter: Parallellisera säkerhetskopieringsåtgärder
  • Snabb lagring: Använd SSD-diskar för säkerhetskopiering
  • Buffertantal: Öka BUFFERCOUNT-alternativet
  • Max överföringsstorlek: Optimera MAXTRANSFERSIZE-inställningen
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
   DISK = 'D:\Backups\LargeDB_2.bak',
   DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
     BUFFERCOUNT = 100,
     MAXTRANSFERSIZE = 4194304;
GO

11.2 Säkerhetskopiering i Always On-tillgänglighetsgrupper

Always On-tillgänglighetsgrupper distribuerar säkerhetskopieringsbelastning över repliker:

  • Konfigurera säkerhetskopieringsinställningar (primär, sekundär eller valfri replik)
  • Avlasta säkerhetskopior till sekundära repliker för att minska den primära arbetsbelastningen
  • Använd COPY_ONLY-säkerhetskopior på sekundära repliker
  • Övervaka inställningar för säkerhetskopiering
-- Check backup preferences
SELECT 
    ag.name AS AvailabilityGroup,
    ar.replica_server_name,
    ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO

11.3 Säkerhetskopiering för databasspegling

I scenarier för databasspegling:

  • Säkerhetskopiera huvuddatabasen regelbundet
  • Säkerhetskopiering av transaktionsloggar är viktiga för spegling
  • Spegeldatabasen är i tillståndet ÅTERSTÄLLNING (kan inte säkerhetskopieras direkt)
  • Överväg att säkerhetskopiera spegeln efter redundansväxling

11.4 Säkerhetskopiering till Azure Blob Storage

SQL Server kan säkerhetskopiera direkt till Azure Blob Storage:

  1. Skapa Azure Storage-konto
  2. Skapa SQL Server autentiseringsuppgifter för Azure-autentisering
  3. Använd URL-syntax för säkerhetskopian
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO

-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
     STATS = 10;
GO

11.5 Säkerhetskopiering till URL

Fördelar med att säkerhetskopiera till URL:

  • Obegränsad molnlagringskapacitet
  • Geografisk redundans hanteras automatiskt
  • Prissättningsmodell för betalning när du går
  • Inget lokalt diskutrymme krävs
  • Stöder upp till 64 URL:er per säkerhetskopia (striping)

11.6 Randiga säkerhetskopior för prestanda

Stripade säkerhetskopior delar upp data över flera filer för snabbare I/O:

-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
   DISK = 'D:\Backups\AW_Stripe2.bak',
   DISK = 'E:\Backups\AW_Stripe3.bak',
   DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO

Obs: Alla Stripe-filer krävs för återställning. Om någon fil saknas gör säkerhetskopian oanvändbar.

12. Felsökning SQL Server Säkerhetskopieringsproblem

12.1 Vanliga säkerhetskopieringsfel och lösningar

Fel: ”Operativsystemfel 5: Åtkomst nekad”

  • Orsak: SQL Server tjänstkontot saknar behörigheter
  • Lösning: Ge skrivbehörighet till SQL Server servicekonto i säkerhetskopiamappen

Fel: ”Kan inte öppna säkerhetskopieringsenheten… Enhetsfel eller enheten offline”

  • Orsak: Ogiltig sökväg eller otillgänglig nätverksresurs
  • Lösning: Verifiera att sökvägen finns, kontrollera nätverksanslutningen, se till att det finns tillräckligt med diskutrymme

Fel: "Inte tillräckligt med utrymme på disken"

  • Orsak: Otillräckligt diskutrymme för säkerhetskopiering
  • Lösning: Frigör diskutrymme, använd komprimering, säkerhetskopiera till annan plats

Fel: ”Databasen används. Databasen används av andra användare”

  • Orsak: Aktiva anslutningar under återställning
  • Lösning: Använd alternativet MED ERSÄTTNING eller koppla bort användare först

12.2 Problem med säkerhetskopieringsprestanda

Diagnostisera långsamma säkerhetskopior:

  • Kontrollera diskens I/O-prestanda med hjälp av Performance monitor
  • Övervaka säkerhetskopieringsförloppet med STATS-alternativet
  • översyn SQL Server fellogg för flaskhalsar
  • Överväg komprimering för att minska I/O
  • Använd striped backups över flera diskar

Fråga för att övervaka säkerhetskopieringens förlopp:

SELECT 
    session_id,
    command,
    percent_complete,
    CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
    + CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
    + CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
    CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
    + CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
    + CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
    dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests 
WHERE command LIKE 'BACKUP%';
GO

12.3 Problem med utrymme och lagring

Förhindra lagringsproblem:

  • Implementera policyer för kvarhållning: Ta bort gamla säkerhetskopior automatiskt
  • Använd komprimering: Minska storleken på säkerhetskopiorna med 50–70 %
  • Arkivera till billigare lagring: Flytta gamla säkerhetskopior till arkivlagring
  • Övervaka diskutrymme: Ställ in varningar för lågt diskutrymme
  • Uppskatta säkerhetskopians storlek: Beräkna förväntad storlek innan säkerhetskopiering

Uppskatta säkerhetskopians storlek:

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 Problem med behörighet och åtkomst

Nödvändiga behörigheter för säkerhetskopior:

  • SÄKERHETSKOPIA DATABAS tillstånd
  • db_backupoperator rollmedlemskap
  • sysadmin serverroll (för alla säkerhetskopieringsåtgärder)

Bevilja säkerhetskopieringsbehörigheter:

-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO

-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO

12.5 Korrupta säkerhetskopior

Upptäck och hantera korrupta säkerhetskopior:

Verifiera säkerhetskopieringsintegriteten:

RESTORE VERIFYONLY 
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Aktivera CHECKSUM för framtida säkerhetskopior:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO

Förebyggande strategier:

  • Använd alltid alternativet CHECKSUMMA vid säkerhetskopiering
  • Verifiera säkerhetskopior omedelbart efter skapandet
  • Testa återställningar regelbundet
  • Lagra säkerhetskopior på tillförlitlig lagring
  • Ha flera säkerhetskopior

12.6 Återställ data från skadade säkerhetskopior

Om dina säkerhetskopior är skadade och du fortfarande vill återställa data från dem kan du använda tredjepartsverktyg som DataNumen SQL Recovery, som nedan:

  1. Start DataNumen SQL Recovery.
  2. Välj den korrupta säkerhetskopian som källfil genom att ändra filtret till "Alla filer (*.*)":
    Välj den korrupta säkerhetskopian (*.bak) som källfil som ska återställas.
  3. Ställ in utdata-.MDF-filen om det behövs.
  4. Klicka på “Star"Återställning" och följ instruktionerna för att återställa databasen.
  5. Efter återställningsprocessen visas en ny återställningsdatabas i SQL Server som innehåller all återställd data.

Använda DataNumen SQL Recovery att återställa data från den korrupta SQL Server säkerhetskopiafilen (*.bak).

13. SQL Server Säkerhetskopiering

13.1 Säkra säkerhetskopior

Skydda säkerhetskopior från obehörig åtkomst:

  • Filsystembehörigheter: Begränsa åtkomst endast till behöriga administratörer
  • Nätverkssäkerhet: Använd säkra protokoll för nätverkssäkerhetskopior
  • Fysisk säkerhet: Förvara säkerhetskopieringsmedia på säkra platser
  • Åtkomstloggning: Granska åtkomst till säkerhetskopior

13.2 Krypteringsalternativ

SQL Server stöder transparent säkerhetskopieringskryptering:

Skapa certifikat för kryptering:

-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO

-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO

Krypterad säkerhetskopia:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     );
GO

Viktigt: Säkerhetskopiera certifikatet och den privata nyckeln separat. Utan dem kan krypterade säkerhetskopior inte återställas.

-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
    FILE = 'C:\Certificates\BackupCertificate.key',
    ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO

13.3 Åtkomstkontroll och behörigheter

Implementera principen om minsta privilegier:

  • Ge endast säkerhetskopieringsbehörighet till nödvändiga konton
  • Använd separata konton för säkerhetskopiering och återställning
  • Undvik att använda sa-konto för säkerhetskopior
  • Regelbundet granska säkerhetskopieringsbehörigheter
  • Ta bort behörigheter när de inte längre behövs

13.4 Överväganden om efterlevnad

Ta itu med myndighetskrav:

  • BRP: Kryptera säkerhetskopior som innehåller personuppgifter, implementera lagringspolicyer
  • HIPAA: Kryptera PHI i säkerhetskopior, kontrollera åtkomst, underhåll revisionsloggar
  • PCI DSS: Kryptera säkerhetskopior av kortinnehavarens data, säker lagring av säkerhetskopior
  • SOX: Upprätthåll integriteten hos säkerhetskopiering och policyer för dokumentlagring

14. Övervakning och underhåll av säkerhetskopiering

14.1 Spårning av säkerhetskopieringshistorik

SQL Server lagrar säkerhetskopieringshistorik i msdb-databasen:

-- View recent backup history
SELECT 
    bks.database_name,
    bks.backup_start_date,
    bks.backup_finish_date,
    CASE bks.type
        WHEN 'D' THEN 'Full'
        WHEN 'I' THEN 'Differential'
        WHEN 'L' THEN 'Log'
        ELSE 'Other'
    END AS backup_type,
    bks.backup_size / 1024 / 1024 AS backup_size_mb,
    bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO

Hitta databaser utan nya säkerhetskopior:

SELECT 
    d.name AS database_name,
    MAX(bs.backup_finish_date) AS last_backup_date,
    DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4  -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
    OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO

14.2 Användning SQL Server Rapport

SQL Server Management Studio inkluderar inbyggda säkerhetskopieringsrapporter:

  1. Högerklicka på databasen i Object Explorer
  2. Välja Rapport -> Standardrapporter
  3. Välj bland tillgängliga rapporter:
    • Säkerhetskopierings- och återställningshändelser
    • Alla säkerhetskopior
    • Transaktionslogg Leveransstatus

14.3 Övervakningsverktyg från tredje part

Kommersiella övervakningslösningar:

  • SQL Sentry: Omfattande övervakning och varningar
  • Redgate SQL-övervakning: Realtidsövervakning och diagnosostics
  • SolarWinds databasprestandaanalysator: Prestanda- och säkerhetskopieringsövervakning
  • Idera SQL-diagnosostic-chef: Validering och aviseringar för säkerhetskopior

14.4 Hälsokontroller av säkerhetskopior

Skapa en hälsokontrollprocedur:

-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
    -- Check for databases without recent full backup
    SELECT 
        'Missing Recent Full Backup' AS issue,
        d.name AS database_name,
        ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
    FROM sys.databases d
    LEFT JOIN msdb.dbo.backupset bs 
        ON d.name = bs.database_name AND bs.type = 'D'
    WHERE d.database_id > 4
    GROUP BY d.name
    HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
        AND j.name LIKE '%backup%';
END
GO

15. SQL Server Vanliga frågor om säkerhetskopiering

15.1 Hur ofta ska jag säkerhetskopiera SQL Server?

Säkerhetskopieringsfrekvensen beror på ditt återställningspunktsmål (RPO):

  • Kritiska produktionsdatabaser: Fullständig veckologgning, differentiell daglig loggning, var 15–30:e minut
  • Standardproduktionsdatabaser: Fullständig veckologgning, differentiell daglig loggning, var 1-2 timme
  • Utvecklingsdatabaser: Heldag eller vecka
  • Skrivskyddade databaser: Fullständig efter varje dataändring

15.2 Vad är skillnaden mellan fullständig och differentiell säkerhetskopiering?

En fullständig säkerhetskopia kopierar hela databasen, medan en differentiell säkerhetskopia bara sparar ändringar sedan den senaste fullständiga säkerhetskopian. Differentiella säkerhetskopior är mindre och snabbare men kräver den fullständiga grundläggande säkerhetskopian för återställning.

15.3 Kan jag säkerhetskopiera SQL Server Medan den körs?

Ja, SQL Server stöder online-säkerhetskopiering. Användare kan fortsätta arbeta under säkerhetskopieringen. SQL Server använder sin transaktionslogg för att upprätthålla konsekvens, vilket säkerställer att säkerhetskopior är giltiga även med samtidiga ändringar.

15.4 Hur lång tid tar SQL Server Säkerhetskopiering?

Säkerhetskopieringens varaktighet varierar beroende på:

  • Databasstorlek: Större databaser tar längre tid
  • Säkerhetskopieringstyp: Fullständiga säkerhetskopior tar längst tid
  • Komprimering: Kan öka CPU-tiden men minska den totala varaktigheten
  • Lagringshastighet: SSD-diskar betydligt snabbare än hårddiskar
  • Serverbelastning: Högre aktivitet saktar ner säkerhetskopiering

Typiska intervall: 10 GB databas kan ta 5–15 minuter för fullständig säkerhetskopiering med komprimering på modern hårdvara.

15.5 Var ska jag förvara SQL Server Säkerhetskopior?

Bästa praxis: Följ 3-2-1-regeln:

  • 3 kopior av dina uppgifter
  • 2 olika lagringstyper (t.ex. disk och band/moln)
  • 1 kopiera utanför webbplatsen

Rekommenderade platser:

  • Lokal disk för snabb återställning
  • Nätverkslagring för centraliserad hantering
  • Molnlagring (Azure, AWS) för katastrofåterställning

15.6 Vad är filändelsen .bak?

Filändelsen .bak är standardfiländelsen för SQL Server säkerhetskopiera filer. Det är en konvention, inte ett krav – SQL Server Säkerhetskopieringar fungerar med alla filändelser. Att använda .bak gör dock säkerhetskopieringsfiler lätt identifierbara och är en branschstandard.

15.7 Så här säkerhetskopierar du SQL Server till nätverksenhet?

Så här säkerhetskopierar du till en nätverksenhet:

  1. Se till SQL Server tjänstkontot har skrivbehörighet på nätverksresursen
  2. Använd UNC-sökvägen i säkerhetskopieringskommandot: \\ServerName\ShareName\BackupFile.bak
  3. Testa anslutningen innan du schemalägger automatiska säkerhetskopior
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 Kan jag komprimera SQL Server Säkerhetskopior?

Ja, SQL Server stöder inbyggd säkerhetskopieringskomprimering (Enterprise Edition eller Standard Edition)tarting SQL Server 2016 SP1). Komprimering minskar vanligtvis säkerhetskopians storlek med 50–70 % och minskar ofta säkerhetskopieringstiden genom att minska I/O, även om det ökar CPU-användningen.

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO

16. Slutsats

16.1 viktiga takeaways

Effektiv SQL Server Säkerhetskopieringsstrategier skyddar dina data och säkerställer affärskontinuitet. Kom ihåg dessa viktiga punkter:

  • Förstå typer av säkerhetskopiering: Välj lämpliga säkerhetskopior (fullständig, differentiell, transaktionslogg) baserat på dina återställningskrav
  • Välj lämplig återhämtningsmodell: Fullständig återställning för kritisk data, enkel för utvecklingsdatabaser
  • Implementera säkerhetskopieringsschema: Regelbundna fullständiga säkerhetskopior i kombination med differentiell och loggbaserad säkerhetskopia minimerar dataförlust
  • Teståterställningsprocedurer: Säkerhetskopior är bara värdefulla om de kan återställas framgångsrikt
  • Automatisera och övervaka: Använda SQL Server Agent, underhållsplaner och övervakningsverktyg
  • Säkra säkerhetskopior: Kryptera känsliga data och kontrollera åtkomst till säkerhetskopior
  • Förvara kopior utanför webbplatsen: Skydda mot katastrofer på hela anläggningen med moln- eller fjärrlagring
  • Dokumentera allt: Håll tydlig dokumentation av säkerhetskopierings- och återställningsprocedurer

16.2 Nästa steg och resurser

För att förbättra din SQL Server säkerhetskopieringsimplementering:

  • Utvärdera din nuvarande säkerhetskopieringsstrategi mot bästa praxis
  • Beräkna dina RTO- och RPO-krav
  • Testa återställningsprocedurer på icke-produktionssystem
  • Granska och uppdatera säkerhetskopieringsscheman regelbundet
  • Implementera automatiserad övervakning och varningar
  • Utbilda teammedlemmar i återställningsprocedurer

Ytterligare resurser:

  • Microsoft SQL Server Dokumentation: Officiell vägledning för säkerhetskopiering och återställning
  • SQL Server backup community forum: Dela erfarenheter och lösningar
  • Professionella certifieringar: Microsoft-certifierad: Azure Database Administrator Associate

16.3 Rekommenderade verktyg och lösningar

Baserat på olika scenarier:

Små affärer:

  • Native SQL Server säkerhetskopiering med schemalagd SQL Server Agentjobb
  • SQLBackupAndFTP för molnintegration
  • Azure Backup för SQL Server

Medelstora företag:

  • SQL Server Underhållsplaner
  • Tredjepartsverktyg som Redgate SQL Backup Pro
  • Veeam Backup för SQL Server

Stora företag:

  • Quest LiteSpeed ​​för maximal kompression
  • Commvault eller Veritas NetBackup för hantering av säkerhetskopiering i företag
  • Alltid påslagna tillgänglighetsgrupper för hög tillgänglighet

SQL Server Säkerhetskopiering är grundläggande för databasadministration. Med korrekt planering, implementering och testning kan du säkerställa att dina data förblir skyddade och återställningsbara när det behövs.tarimplementerar dessa bästa metoder idag för att säkra din SQL Server databaser.


Om författaren

Yuan Sheng är en senior databasadministratör (DBA) med över 10 års erfarenhet av SQL Server miljöer och hantering av företagsdatabaser. Han har framgångsrikt löst hundratals scenarier för databasåterställning inom finansiella tjänster, hälso- och sjukvård och tillverkningsorganisationer.

Yuan specialiserar sig på SQL Server Databasåterställning, lösningar för hög tillgänglighet och prestandaoptimering. Hans omfattande praktiska erfarenhet inkluderar hantering av databaser på flera terabyte, implementering av Always On Availability Groups och utveckling av automatiserade säkerhetskopierings- och återställningsstrategier för verksamhetskritiska affärssystem.

Genom sin tekniska expertis och praktiska tillvägagångssätt fokuserar Yuan på att skapa omfattande guider som hjälper databasadministratörer och IT-proffs att lösa komplexa problem. SQL Server utmaningar effektivt. Han håller sig uppdaterad med det senaste SQL Server utgåvor och Microsofts ständigt föränderliga databastekniker, och testar regelbundet återställningsscenarier för att säkerställa att hans rekommendationer återspeglar bästa praxis i verkligheten.

Har frågor om SQL Server återställning eller behöver du ytterligare vägledning om felsökning av databasen? Yuan välkomnar feedback och förslag för att förbättra dessa tekniska resurser.