backup SQL Server database med vores komplette 2025-guide. Trinvise instruktioner og bedste praksis for alle færdighedsniveauer.
1. Introduktion til SQL Server backup
1.1 Hvad er SQL Server Sikkerhedskopiering?
SQL Server Backup er processen med at oprette kopier af dine databasefiler for at beskytte mod datatab. En backup registrerer din databases tilstand på et bestemt tidspunkt, så du kan gendanne data, hvis der opstår hardwarefejl, menneskelige fejl eller katastrofer.
SQL Server gemmer som standard sikkerhedskopier i .bak-filer, som indeholder alle databaseobjekter, herunder tabeller, lagrede procedurer, visninger, indekser og transaktionslogfiler.
1.2 Hvorfor SQL Server Backup er afgørende
Databasebackups fungerer som din sidste forsvarslinje mod datatab. Uden ordentlige backups risikerer din organisation:
- Permanent datatab fra hardwarefejl eller korruption
- Forlænget nedetid under forsøg på at genoprette
- Forstyrrelser i erhvervslivet og indtægtstab
- Overtrædelser af overholdelse hvis data ikke kan gendannes
- Skade på omdømme fra serviceafbrydelser
Almindelig SQL Server Backups sikrer forretningskontinuitet og opfylder lovgivningsmæssige krav til databeskyttelse.
1.3 Almindelige scenarier for datatab
At forstå, hvornår datatab opstår, hjælper dig med at udvikle en effektiv backupstrategi:
- Hardwarefejl: Disknedbrud, serverfejl eller fejl i lagringssystemer
- Menneskelige fejl: Utilsigtede sletninger, forkerte opdateringer eller tabte tabeller
- Softwareproblemer: Programfejl, beskadigede opdateringer eller systemnedbrud
- Sikkerhedsbrud: Ransomware-angreb, ondsindede sletninger eller uautoriseret adgang
- Naturkatastrofer: Brande, oversvømmelser eller strømafbrydelser, der påvirker datacentre
2. forståelse SQL Server Backuptyper
SQL Server understøtter flere backuptyper, der hver især opfylder forskellige gendannelsesbehov og lagringskrav.
2.1 Fuld sikkerhedskopiering
En fuld sikkerhedskopi opretter en komplet kopi af hele din database, inklusive alle datafiler og en del af den transaktionsloggen, der er nødvendig til gendannelse.
2.1.1 Hvornår skal fuld sikkerhedskopiering bruges
Fuld sikkerhedskopiering er ideelle til:
- Etablering af en baseline for andre backuptyper
- Små til mellemstore databaser, hvor backuptiden er acceptabel
- Ugentlige eller månedlige backupplaner
- Databaser med sjældne ændringer
2.1.2 Fordele og begrænsninger ved fuld backup
fordele:
- Den enkleste gendannelsesproces – én fil indeholder alt
- Selvstændig og uafhængig af andre sikkerhedskopier
- Hurtigste gendannelsestid for komplet databasegendannelse
Begrænsninger:
- Kræver betydelig lagerplads
- Længere backuptid for store databaser
- Højere ressourceforbrug under backup-operationer
2.2 Differentialbackup
En differentiel backup registrerer kun dataændringer siden den sidste fulde backup, hvilket reducerer backuptid og lagerkrav.
2.2.1 Sådan fungerer differentiel backup
Differentielle sikkerhedskopier sporer ændringer ved hjælp af ændrede omfang. Når du gendanner, SQL Server anvender først den sidste fulde sikkerhedskopiering, derefter anvender most nylig differentiel backup.
2.2.2 Fuld vs. differentiel backup
| Aspect | Fuld sikkerhedskopi | Forskellig sikkerhedskopi |
|---|---|---|
| Størrelse | Komplet database | Kun ændringer siden sidste fulde backup |
| Sikkerhedskopieringstid | Længste | Hurtigere end fuld |
| Gendan proces | Gendannelse af enkeltfiler | Kræver fuld + differentiale |
| Opbevaring påkrævet | Most plads | Mindre plads i starten, vokser over tid |
2.3 Sikkerhedskopiering af transaktionslog
Sikkerhedskopier af transaktionslogge registrerer alle transaktioner siden den sidste sikkerhedskopiering af loggen, hvilket muliggør gendannelse på et bestemt tidspunkt.
2.3.1 Forståelse af transaktionslogge
Transaktionsloggen registrerer alle ændringer i din database. Logbackups afkorter den inaktive del af loggen, hvilket forhindrer den i at vokse i det uendelige og fylde din disk.
2.3.2 Gendannelse på tidspunktet
Transaktionslogbackups giver dig mulighed for at gendanne din database til et hvilket som helst specifikt tidspunkt i en logbackup. Dette er afgørende for at gendanne fra utilsigtede dataændringer eller sletninger.
For at udføre en point-in-time gendannelse skal du bruge:
- Den sidste fulde sikkerhedskopiering
- Most nylig differentiel backup (valgfrit)
- Alle sikkerhedskopier af transaktionsloggen fra den fulde/differentielle sikkerhedskopi til din tarfå tid
2.4 Backup af halelog
Tail-log-backups indsamler logposter, der endnu ikke er blevet sikkerhedskopieret, hvilket forhindrer datatab og opretholder en intakt logkæde. Før en SQL Server Hvis du vil opdatere databasen til dens seneste tidspunkt, skal du sikkerhedskopiere halen af dens transaktionslog. Haleloggen er den sidste sikkerhedskopi af interesse i genoprettelsesplanen for databasen.

Bemærk: Ikke alle gendannelsesscenarier kræver en tail-log-backup. Du behøver ikke en, hvis gendannelsespunktet findes i en tidligere log-backup. En tail-log-backup er også unødvendig, hvis du flytter eller erstatter (overskriver) en database og ikke behøver at gendanne den til et tidspunkt efter dens fjernelse.ost nylig sikkerhedskopiering.
2.4.1 Hvornår sikkerhedskopier af halelogge er nødvendige
Følgende scenarier beskriver, hvornår du bør tage en backup af tail-log-loggen:
Online databasegendannelse: Hvis databasen er online, og du planlægger at udføre en gendannelseshandling på databasen, skal du starte med at sikkerhedskopiere den sidste del af loggen. For at undgå en fejl for en online database skal du bruge indstillingen WITH NORECOVERY i BACKUP Transact-SQL-sætningen, når du sikkerhedskopierer. SQL Server databasen.
Gendannelse af offline database: Hvis en database er offline og ikke fungerertarog du skal gendanne databasen, skal du først sikkerhedskopiere den sidste del af loggen. Da der ikke kan forekomme transaktioner på nuværende tidspunkt, er det valgfrit at bruge indstillingen WITH NORECOVERY. NORECOVERY er reelt det samme som en kopieret sikkerhedskopi af transaktionsloggen i dette scenarie.
Beskadiget databasebackup: Hvis en database er beskadiget, kan du prøve at tage en backup af haleloggen ved at bruge WITH CONTINUE_AFTER_ERROR-indstillingen i BACKUP-sætningen. På en beskadiget database kan backup af loggens hale kun lykkes, hvis logfilerne er ubeskadigede, databasen er i en tilstand, der understøtter backup af haleloggen, og databasen ikke indeholder nogen bulk-loggede ændringer. Hvis der ikke kan oprettes en backup af haleloggen, vil alle transaktioner, der er blevet committet efter den seneste MS. SQL Server backup-database er lost.
2.4.2 Nøgleindstillinger for halelog-sikkerhedskopier
MED NORECOVERY: Brug WITH NORECOVERY, hvis du sikkerhedskopierer en del af en logfil fra en online database, som du planlægger at gendanne efterfølgende. NORECOVERY fjerner databasen fra nettet. Du kan også sikkerhedskopiere SQL Server halelog for en offline database. Hvis du vil lade databasen være offline, skal du bruge WITH NORECOVERY. Bemærk, at loggen vil blive afkortet, medmindre du angiver enten COPY_ONLY- eller NO_TRUNCATE-indstillingen.
MED CONTINUE_EFTER_ERROR: Brug kun CONTINUE_AFTER_ERROR, hvis du sikkerhedskopierer halen af en beskadiget database. Når du sikkerhedskopierer halen af en logfil på en beskadiget database, kan nogle af de metadata, der normalt registreres i logbackups, være utilgængelige.
2.5 Kun kopieret backup
Kopieringssikkerhedskopier opretter en uafhængig sikkerhedskopi uden at påvirke den normale sikkerhedskopieringssekvens. De forstyrrer ikke differentielle sikkerhedskopieringskæder eller kontinuiteten i transaktionsloggen.
Brug kun kopierede sikkerhedskopier til:
- Oprettelse af kopier af test- eller udviklingsdatabaser
- Ad-hoc-backups uden at påvirke planlagte backups
- Sikkerhedskopiering før større ændringer eller test
2.6 Sikkerhedskopiering af filer og filgrupper
Sikkerhedskopier af filer og filgrupper tarHent specifikke databasefiler eller filgrupper i stedet for hele databasen. Denne fremgangsmåde fungerer godt til meget store databaser, hvor det tager for lang tid at sikkerhedskopiere alt.
Fordele omfatter:
- Hurtigere backup-operationer for store databaser
- Parallel backup af flere filgrupper
- Granulære gendannelsesmuligheder
- Optimerede backupplaner for skrivebeskyttede filgrupper
2.7 Delvis sikkerhedskopiering
Delvise sikkerhedskopier inkluderer alle data i den primære filgruppe og eventuelle læse- og skrivebeskyttede filgrupper, eksklusive skrivebeskyttede filgrupper. Dette reducerer sikkerhedskopieringsstørrelsen og -tiden for databaser med statiske historiske data gemt i skrivebeskyttede filgrupper.
3. SQL Server Genopretningsmodeller
SQL Server Gendannelsesmodeller bestemmer, hvilke backuptyper der er tilgængelige, og hvordan transaktionslogge administreres.
3.1 Simpel genopretningsmodel
3.1.1 Karakteristika og anvendelsesscenarier
Simpel gendannelse afkorter automatisk transaktionsloggen efter hvert kontrolpunkt og frigiver dermed plads uden at kræve sikkerhedskopier af logfiler.
Bedst til:
- Udvikling og testdatabaser
- Databaser hvor datatab mellem sikkerhedskopier er acceptabelt
- Datalagre med ETL-processer, der kan genkøres
- Skrivebeskyttede eller rapporteringsdatabaser
3.1.2 Tilgængelige backupmuligheder
Simpel gendannelse understøtter:
- Fuld sikkerhedskopiering
- Forskellige sikkerhedskopier
- Sikkerhedskopier af filer og filgrupper
- Kun kopieringsbackups
Sikkerhedskopier af transaktionslogge er tilgængelig i en simpel genopretningsmodel.
3.2 Model for fuld genopretning
3.2.1 Funktioner og fordele
Fuld gendannelse logger alle transaktioner og bevarer logposter, indtil du sikkerhedskopierer dem. Dette muliggør fuldstændig datagendannelse til et hvilket som helst tidspunkt i en sikkerhedskopi af en transaktionslog.
Vigtigste fordele:
- Minimal risiko for datatab
- Mulighed for gendannelse på et bestemt tidspunkt
- Understøtter logforsendelse og databasespejling
- Maksimal fleksibilitet i gendannelse
3.2.2 Administration af transaktionslog
Under fuld gendannelse skal du udføre regelmæssige sikkerhedskopier af transaktionsloggen for at:
- Forhindr, at transaktionsloggen fylder diskplads
- Oprethold en kontinuerlig backupkæde
- Aktiver punkt-i-tidsgendannelse
- Kontroller væksten af logfiler
Typisk backupplan: fuld backup ugentligt, differentiel backup dagligt, logbackup hvert 15.-30. minut.
3.3 Model for masselogget gendannelse
3.3.1 Hvornår skal masselogging bruges
Masselogget gendannelse logger minimalt massehandlinger som BULK INSERT, SELECT INTO og indeksgenopbygninger, samtidig med at fuld logføring for regelmæssige transaktioner opretholdes.
Brug masselogget gendannelse når:
- Udførelse af store importoperationer
- Genopbygning af indekser på store tabeller
- Udførelse af operationer, der drager fordel af minimal logføring
- Behov for at reducere transaktionslogstørrelsen under specifikke operationer
3.3.2 Begrænsninger og overvejelser
Vigtige begrænsninger:
- Gendannelse på tidspunktet er ikke tilgængelig under masseoperationer
- Logbackups er større, når der forekommer massehandlinger
- Skal skifte mellem fuld og masselogning efter behov
3.4 Valg af den rigtige genopretningsmodel
Vælg din genoprettelsesmodel baseret på forretningskrav:
| Genopretningsmodel | Risiko for tab af data | Point-in-Time Recovery | bedst til |
|---|---|---|---|
| Simpelt | Ændringer siden sidste sikkerhedskopiering | Ingen | Udvikling/test, acceptabelt datatab |
| Fuld | Minimal (typisk minutter) | Ja | Produktionsdatabaser, kritiske data |
| Masselogget | Ændringer siden sidste logbackup | Begrænset under bulkoperationer | Temporary brug under bulkoperationer |
4. Backup SQL Server Database ved hjælp af SSMS
4.1 Forudsætninger og forberedelse
Før du sikkerhedskopierer din SQL Server database, sørg for:
- Du har de nødvendige tilladelser (db_owner eller BACKUP DATABASE-tilladelse)
- Tilstrækkelig diskplads til backupfilen
- SQL Server Management Studio (SSMS) installeret
- Netværksstier tilgængelige ved sikkerhedskopiering til netværksplaceringer
4.2 Trin for trin: Fuld sikkerhedskopiering med SSMS
Følg disse trin for at oprette en fuld sikkerhedskopi af din SQL Server database ved hjælp af SSMS.
4.2.1 Åbning SQL Server ledelsesstudie
- Launch SQL Server ledelsesstudie
- Indtast dit servernavn i Server navn felt
- Vælg din godkendelsesmetode
- Klik Tilslut
4.2.2 Valg af database- og sikkerhedskopieringsindstillinger
- In Objekt Explorer, udvide Databaser node
- Højreklik på den database, du vil sikkerhedskopiere
- Type Opgaver -> Back Up
- I Sikkerhedskopier database vindue, bekræft databasenavnet
- Type Fuld som Sikkerhedskopieringstype
4.2.3 Konfiguration af backupdestination
- Under Bestemmelsesstedklik Fjern for at rydde standardstien (hvis nødvendigt)
- Klik Tilføj at angive en ny backupplacering
- Indtast filstien og navnet med .bak udvidelse
- Klik OK for at bekræfte destinationen
4.2.4 Advanced Backup Indstillinger
- Klik Medieindstillinger i venstre panel
- Vælg backupmuligheder:
- Overskriv alle eksisterende backupsæt – Erstatter eksisterende sikkerhedskopier
- Tilføj til eksisterende backupsæt – Tilføjer til eksisterende backupfil
- Klik Backup Options i venstre panel
- Konfigurér valgfrie indstillinger:
- Komprimer sikkerhedskopi – Reducerer størrelsen på backup-filer
- Krypter backup – Beskytter følsomme data
- Bekræft sikkerhedskopiering, når du er færdig – Kontrollerer backupintegriteten
4.2.5 Udførelse af sikkerhedskopiering
- Gennemgå alle indstillinger i Sikkerhedskopier database vindue
- Klik OK til starsikkerhedskopieringsprocessen
- Vent på, at sikkerhedskopieringen er færdig
- Der vises en succesmeddelelse, når sikkerhedskopieringen er færdig
- Klik OK for at lukke bekræftelsesdialogboksen
4.3 Oprettelse af differentiel backup med SSMS
For at oprette en differentiel sikkerhedskopi skal du følge de samme trin som for en fuld sikkerhedskopi, men vælge Differentiale som backuptypen i trin 4.2.2. Husk, at differentielle backups kræver en forudgående fuld backup som en baseline.
4.4 Oprettelse af sikkerhedskopi af transaktionslog med SSMS
Sikkerhedskopier af transaktionslogfiler er kun tilgængelige for databaser, der bruger fuld- eller masseloggede gendannelsesmodeller.
- Højreklik på databasen i Objekt Explorer
- Type Opgaver -> Back Up
- Vælg Transaktionslog som backuptypen
- Konfigurer destination og indstillinger efter behov
- Klik OK for at oprette logbackupen
4.5 Oprettelse af kopieringsfri sikkerhedskopi med SSMS
Kopieringsfri sikkerhedskopier forstyrrer ikke din normale sikkerhedskopieringssekvens.
- Følg trinene for at oprette en fuld sikkerhedskopi
- I Backup Options side
- Tjek Kun kopieret backup option
- Færdiggør sikkerhedskopieringsprocessen normalt
5. Backup SQL Server Database ved hjælp af T-SQL
5.1 Grundlæggende syntaks for sikkerhedskopiering af databaser
T-SQL BACKUP DATABASE-kommandoen giver programmatisk kontrol over SQL Server sikkerhedskopier.
BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;
5.2 Fuld sikkerhedskopiering af T-SQL-kommandoer
5.2.1 Simpelt script til fuld backup
Opret en grundlæggende fuld sikkerhedskopi med minimale muligheder:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO
5.2.2 Fuld sikkerhedskopiering med muligheder
Tilføj beskrivende oplysninger og formateringsmuligheder:
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
Forklaring af muligheder:
- FORMAT – Opretter nyt backupsæt
- INIT – Overskriver eksisterende backupfil
- NAVN – Tildeler navn til backup-sæt
- BESKRIVELSE – Tilføjer beskrivende tekst
- STATISTIK – Viser fremskridt hver 10%
5.3 Differentiale backup T-SQL-kommandoer
Differentielle backups bruger DIFFERENTIAL-indstillingen:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
INIT,
NAME = 'AdventureWorks-Differential Backup',
STATS = 10
GO
5.4 T-SQL-kommandoer til sikkerhedskopiering af transaktionslog
Brug BACKUP LOG til sikkerhedskopier af transaktionslogge:
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
NAME = 'AdventureWorks-Transaction Log Backup',
STATS = 10
GO
5.5 Avancerede T-SQL-sikkerhedskopieringsmuligheder
5.5.1 Sikkerhedskopiering til flere filer
Distribuer backup på tværs af flere filer for hurtigere ydeevne:
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 Sikkerhedskopiering med komprimering
Reducer størrelsen på backup-filerne og netværksbåndbredden:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
INIT,
STATS = 10
GO
5.5.3 Sikkerhedskopiering med kryptering
Beskyt følsomme 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 Sikkerhedskopiering med adgangskodebeskyttelse
Tilføj adgangskodebeskyttelse (udfaset, brug kryptering i stedet):
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
INIT
GO
5.5.5 Spejlede sikkerhedskopier
Opret samtidige kopier til forskellige placeringer:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO
5.6 Eksempler og scripts på T-SQL-backup
Komplet backup-script med fejlhåndtering:
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. Backup SQL Server Database ved hjælp af PowerShell
6.1 PowerShell Backup-cmdlets
SQL Server PowerShell-modulet leverer cmdlets til automatisering af backup:
- Backup-SQL-database – Opretter databasebackups
- Gendan SQL-database – Gendanner databasebackups
- Get-SqlDatabase – Henter databaseoplysninger
Importer SQL Server modul:
Import-Module SqlServer
6.2 Oprettelse af backup-scripts med PowerShell
Grundlæggende PowerShell-backupkommando:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks.bak" `
-BackupAction Database `
-CompressionOption On
Eksempel på differentiel backup:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
-BackupAction Database `
-Incremental
Sikkerhedskopiering af transaktionslog:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Log.trn" `
-BackupAction Log
6.3 Automatisering af sikkerhedskopier med PowerShell
Opret et automatisk backup-script til flere 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. Backup SQL Server Database ved hjælp af kommandolinje
SQL Server tilbyder kommandolinjeværktøjer, der giver dig mulighed for at sikkerhedskopiere SQL Server database uden brug af SSMS eller grafiske grænseflader. Disse værktøjer er essentielle til automatisering, scripting og fjernadministration.
7.1 Brug af SQLCMD-sikkerhedskopidatabase
SQLCMD er det moderne kommandolinjeværktøj til SQL Server der erstattede OSQL. Det giver forbedret funktionalitet og er det anbefalede værktøj til at udføre T-SQL-kommandoer fra kommandoprompten.
7.1.1 Grundlæggende SQLCMD-syntaks
sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: Angiver SQL Server instansnavn
- -d: Angiver databasenavnet
- -Q: Udfører en forespørgsel og afslutter
- -OG: Bruger Windows-godkendelse
- -U: Specificerer SQL Server login brugernavn
- -P: Angiver adgangskode til SQL Server logger på eller
7.1.2 Oprettelse af sikkerhedskopi med SQLCMD
For at sikkerhedskopiere SQL Server Følg disse trin ved hjælp af SQLCMD:
- Åbne Kommandoprompt or PowerShell
- Naviger til SQL Server værktøjsmappe (typisk tilføjet til PATH under installation)
- Udfør SQLCMD-kommandoen til sikkerhedskopiering af databasen med de relevante parametre.
- Bekræft, at sikkerhedskopien blev oprettet
Eksempel på fuld backup-kommando ved hjælp af Windows-godkendelse:
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Eksempel ved brug af SQL Server Godkendelse:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Oprettelse af differentiel sikkerhedskopiering med SQLCMD
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"
Oprettelse af sikkerhedskopi af transaktionslog med SQLCMD
sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"
7.1.3 Sikkerhedskopier udgiverdatabase i SQL Server Replication
Når du sikkerhedskopierer udgiverdatabaser i SQL Server Replikering, brug indstillingen MED REPLIKERING til at bevare replikeringsmetadata og sikre transaktionel konsistens.
-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION,
COMPRESSION,
CHECKSUM,
INIT,
STATS = 10;
GO
For flere detaljer om SQL Server replikering, se vores omfattende vejledning.
7.2 Brug OSQL Backup-database
OSQL er et ældre kommandolinjeværktøj til SQL ServerSelvom Microsoft anbefaler at bruge SQLCMD i stedet, er OSQL stadig tilgængelig for bagudkompatibilitet med ældre scripts og systemer.
7.2.1 Grundlæggende OSQL-syntaks
OSQL-syntaks ligner SQLCMD:
osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: SQL Server instansnavn
- -d: Databasens navn
- -Q: Udfører forespørgsel og afslutter
- -OG: Bruger en betroet forbindelse (Windows-godkendelse)
- -U: Login brugernavn
- -P: Login kodeord
7.2.2 Oprettelse af sikkerhedskopi med OSQL
Sådan udfører du OSQL-backup-databaseoperationer:
- Åbne Kommandoprompt
- Bekræft at OSQL er tilgængelig i din SQL Server installation
- Udfør OSQL-backupkommandoen
Eksempel på fuld backup:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"
Eksempel på differentiel backup:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"
8. Tredjepart SQL Server Sikkerhedskopieringsværktøjer
Mens SQL Server Inkluderer indbyggede backupfunktioner, tredjepartsværktøjer tilbyder forbedrede funktioner, automatisering og administration i virksomhedsklassen til organisationer med komplekse krav. Disse løsninger leverer avanceret komprimering, centraliseret administration og strømlinede arbejdsgange til backup. SQL Server databaser på tværs af flere miljøer.
8.1 Veeam-sikkerhedskopiering til SQL Server
Veeam tilbyder omfattende databeskyttelsesløsninger, der er specielt designet til sikkerhedskopiering SQL Server databaser med minimal påvirkning af produktionssystemer.
Nøglefunktioner:
- Applikationsbevidst behandling til SQL Server sikkerhedskopieringskonsistens
- Sikkerhedskopiering og administration af transaktionslog
- Gendannelse på et bestemt tidspunkt med detaljerede gendannelsesmuligheder
- Integration med Veeam Backup & Replication for samlet databeskyttelse
- Automatiseret verifikation og validering af backup
- Understøttelse af Always On-tilgængelighedsgrupper
- VM-niveau og applikationsniveau SQL Server backupmuligheder
8.2 Barracuda-sikkerhedskopi til SQL Server
Barracuda leverer cloud-integrerede backupløsninger med forenklet administration til MS SQL Server sikkerhedskopiering af databaseoperationer.
Nøglefunktioner:
- Automatiseret SQL Server planlægning af backup
- Indbygget cloud-replikering til Barracuda Cloud Storage
- Global deduplikering og komprimering
- Muligheder for øjeblikkelig lokal gendannelse
- Webbaseret administrationskonsol
- Understøttelse af fuld, differentiel og transaktionslogbackup
- Ransomware-beskyttelse med uforanderlige sikkerhedskopier
8.3 Veritas NetBackup til SQL Server
Veritas NetBackup er en backupplatform i virksomhedsklassen, der tilbyder omfattende beskyttelse til SQL Server databaser på tværs af komplekse IT-miljøer.
Nøglefunktioner:
- Backupstyring i virksomhedsskala for tusindvis af SQL Server forekomster
- Avancerede deduplikerings- og komprimeringsalgoritmer
- Fleksible backuppolitikker og planlægning
- Support til alle SQL Server genopretningsmodeller
- Integration med tape librarier og cloudlagring
- Granulær gendannelse af databaser, tabeller og objekter
- Understøttelse af flere platforme (Windows, Linux) SQL Server)
- Automatiseret styring af backuplivscyklus
8.4 Commvault Komplet Backup og Gendannelse til SQL Server
Commvault leverer intelligent datahåndtering med omfattende backup SQL Server muligheder og avancerede automatiseringsfunktioner.
Nøglefunktioner:
- AI-drevet backupoptimering og anomalidetektion
- En samlet platform til backup, gendannelse og arkivering
- Avanceret SQL Server backupkomprimering (op til 90% reduktion)
- Automatiseret orkestrering af nødberedskab
- Live Sync for næsten nul RPO-beskyttelse
- Støtte til SQL Server Implementeringer i lokalt miljø, cloud-miljø og hybridmiljøer
- IntelliSnap til snapshot-baserede sikkerhedskopier
- Omfattende compliance- og e-discovery-funktioner
8.5 Cohesity DataProtect for SQL Server
Cohesity leverer næste generations datahåndtering med hyperkonvergeret infrastruktur til moderne SQL Server sikkerhedskopieringsoperationer.
Nøglefunktioner:
- Web-skala arkitektur for forenklet administration
- Muligheder for øjeblikkelig massegendannelse SQL Server databaser
- Applikationskonsistente snapshots
- Global deduplikering på tværs af alle sikkerhedskopier
- Native cloud-integration (AWS, Azure, Google Cloud)
- Indbyggede analyse- og overvågningsdashboards
- Klon og test databasefunktioner
- Ransomware-beskyttelse med uforanderlige snapshots
8.6 Red Gate SQL Backup Pro
Red Gate SQL Backup Pro er et specialiseret værktøj, der udelukkende fokuserer på optimering SQL Server sikkerhedskopierings- og gendannelsesoperationer med overlegen komprimering og ydeevne.
Nøglefunktioner:
- Brancheførende kompressionsforhold (op til 95%)
- Netværksrobusthed til sikkerhedskopiering SQL Server på tværs af upålidelige forbindelser
- Backupkryptering med 256-bit AES
- Verifikation af sikkerhedskopi og integritetskontrol
- Detaljeret backuphistorik og rapportering
- Integration med SQL Server ledelsesstudie
- Understøttelse af backup til netværksplaceringer og cloudlagring
- Parallel backup og gendannelse for hurtigere drift
9. Sådan gendannes SQL Server Database
9.1 Forståelse af gendannelsesprocessen
Gendannelse af en SQL Server Databasen genskaber databasen fra sikkerhedskopier. Gendannelsesprocessen læser sikkerhedskopien og rekonstruerer databasen til dens sikkerhedskopierede tilstand.
Vigtige overvejelser:
- Gendannelse overskriver den eksisterende database
- Brugere afbryder forbindelsen under gendannelse
- Gendannelsen skal følge backupsekvensen (fuld, derefter differentiel, derefter logfiler)
- Databasen er ikke tilgængelig under gendannelsen
9.2 Gendannelse af fuld sikkerhedskopi ved hjælp af SSMS
Følg disse trin for at gendanne en fuld databasebackup.
9.2.1 Trinvis gendannelsesproces
- Åbne SQL Server ledelsesstudie og opret forbindelse til din server
- In Objekt Explorer, Højreklik Databaser
- Type Gendan database
- I Kilde sektion, vælg Enhed
- Klik på knappen ... knap til at søge efter sikkerhedskopier
- Klik Tilføj og naviger til din .bak-fil
- Vælg backupfilen, og klik på OK
- I Bestemmelsessted afsnittet, indtast databasenavnet
- Gennemgå backupsættene for at gendanne
- Klik OK til stargendannelsen
9.2.2 Gendannelsesindstillinger og -valgmuligheder
Klik Indstillinger i venstre panel for at konfigurere:
- Overskriv den eksisterende database (MED ERSTATNING) – Tillader gendannelse over eksisterende database
- Bevar replikationstilstandene (MED KEEP_REPLICATION) - Behold SQL Server replikation tilstand
- Begræns adgang til den gendannede database (MED RESTRICTED_USER) – Grænser post-gendan adgang
- Genopretningstilstand – Vælg mellem GENDANNELSE MED GENDANNELSE eller INGEN GENDANNELSE
9.3 Gendannelse af differentiel backup
Differentiel gendannelse kræver både fuld og differentiel sikkerhedskopiering:
- Gendan først den fulde sikkerhedskopi med NORGEVINDELSE option
- Gendan derefter differentialbackup'en med RECOVERY option
T-SQL eksempel:
-- 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 Gendannelse med sikkerhedskopier af transaktionslogfiler
For gendannelse på et bestemt tidspunkt, gendan i rækkefølge:
- Gendan fuld backup med NORECOVERY
- Gendan differentiel backup med NORECOVERY (hvis tilgængelig)
- Gendan sikkerhedskopier af transaktionslogfiler i rækkefølge med NORECOVERY
- Gendan den endelige logbackup 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 Gendannelse på et bestemt tidspunkt
Gendan databasen til et bestemt tidspunkt ved hjælp af STOPAT-funktionen:
-- 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 Tabelgendannelse
SQL Server understøtter ikke direkte gendannelse på tabelniveau fra backupfiler. Der er dog stadig nogle løsninger.
9.6.1 Metode 1: Database-øjebliksbilleder (bedst til forebyggelse)
Databasesnapshots er den hurtigste måde at gendanne tabeldata på, hvis de oprettes, før problemet opstår. Et snapshot er en skrivebeskyttet, statisk visning af en database på et bestemt tidspunkt.
Oprettelse af et databasesnapshot:
-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data,
FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO
Gendannelse af tabeldata fra et snapshot:
USE ProductionDB;
GO
-- Replace entire table content
BEGIN TRANSACTION;
-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;
-- Clear current data
TRUNCATE TABLE dbo.Orders;
-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;
-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;
COMMIT TRANSACTION;
GO
Versionskrav: Database-snapshots er tilgængelige i SQL Server Enterprise Edition (alle versioner) og Standard Editiontarting med SQL Server 2016 SP1.
9.6.2 Metode 2: Gendan til temporary-database (Most Fælles)
Denne metode fungerer, når du har brug for at gendanne tabeldata efter et problem, og der ikke findes et snapshot:
- Gendan sikkerhedskopi til et temporary-database
- Kopiér tabeldata fra tempoetrary-database til den aktuelle database
9.7 Sidegendannelse
Sidegendannelse gendanner individuelle beskadigede sider uden at gendanne hele databasen, hvilket minimerer nedetid ved at tarHenter kun beskadigede sider. Denne funktion er kun tilgængelig under fuld- eller masseloggede gendannelsesmodeller og kræver en ubrudt kæde af transaktionslogbackups fra sidebackupen til den aktuelle logfil.
For at udføre sidegendannelse skal du først identificere beskadigede sider, tage en backup af tail-log-loggen, gendanne de specifikke sider og derefter anvende alle transaktionslogfiler:
-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');
-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;
-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO
Bemærk: Sidegendannelse er ikke tilgængelig under Simpel gendannelsesmodel. Du kan ikke gendanne sider fra systemtabeller eller primære filgruppemetadata.
9.8 Stykkevis gendannelse
Stykkevis gendannelse (delvis gendannelse) gendanner en database i etaper på filgruppeniveau, starmed den primære filgruppe. Dette bringer kritiske data online med det samme, mens mindre kritiske data gendannes i baggrunden. Under den simple gendannelsesmodel skal alle læse-skrive-filgrupper gendannes sammen med den primære filgruppe; kun skrivebeskyttede filgrupper kan gendannes separat. Under fuld- eller masseloggede gendannelsesmodeller kan hver filgruppe bringes online uafhængigt efter anvendelse af transaktionslogfiler.
| Genopretningsmodel | Stykkevis gendannelsesadfærd |
|---|---|
| Simpelt | Primære og alle læse-/skrive-filgrupper gendannet sammen. Skrivebeskyttede filgrupper gendannet separat. |
| Fuld/Masse-logget | Hver filgruppe blev gendannet uafhængigt på filgruppeniveau. |
Eksempel på fuld gendannelsesmodel – gendan først den primære filgruppe for at bringe databasen online, gendan derefter sekundære filgrupper, mens databasen forbliver operationel:
-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
Eksempel på simpel gendannelsesmodel:
-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;
-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO
9.9 Gendannelse ved hjælp af T-SQL-kommandoer
Komplet gendannelsesscript med filflytning:
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.10 Bekræftelse af sikkerhedskopiens integritet før gendannelse
Kontroller gyldigheden af backup uden at gendanne:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO
Denne kommando bekræfter, at sikkerhedskopieringssættet er komplet og læsbart, uden faktisk at gendanne databasen.
10. SQL Server Bedste praksis for sikkerhedskopiering
10.1 Udvikling af en backupstrategi
10.1.1 Vurdering af forretningskrav
Før du implementerer sikkerhedskopier, skal du vurdere:
- Datakritikalitet: Hvor vigtige er disse data for driften?
- Skift frekvens: Hvor ofte ændres data?
- Databasestørrelse: Hvor stor er databasen?
- Tilgængelige ressourcer: Hvilken lagerplads og båndbredde er tilgængelig?
- Overholdelseskrav: Hvilke regler skal du følge?
10.1.2 Definition af RTO og RPO
Recovery Time Objective (RTO): Maksimal acceptabel nedetid. Bestemmer, hvor hurtigt du skal genoprette driften.
Recovery Point Objective (RPO): Maksimalt acceptabelt datatab. Bestemmer backupfrekvensen.
| RTO/RPO-krav | Anbefalet backupstrategi |
|---|---|
| RPO: Timer, RTO: Timer | Daglig fuld + transaktionslog hver 1-2 time |
| RPO: Minutter, RTO: Timer | Daglige komplette sikkerhedskopier + logbackups hvert 15.-30. minut |
| RPO: Nær nul, RTO: Minutter | Altid på tilgængelighedsgrupper + hyppige logbackups |
| RPO: Dage, RTO: Dage | Ugentlig fuld + daglig difference |
10.2 Oprettelse af en sikkerhedskopieringsplan
10.2.1 Anbefalinger for frekvens
Typisk backupplan for produktionsdatabaser:
- Fuld sikkerhedskopiering: Ugentligt (søndag aften ved lav aktivitet)
- Differentielle sikkerhedskopier: Dagligt (hver nat)
- Sikkerhedskopier af transaktionslogfiler: Hvert 15.-30. minut i åbningstiden
- Kun kopieringsbackups: Efter behov til test eller udvikling
10.2.2 Balancering af ydeevne og beskyttelse
Overvej disse faktorer, når du planlægger:
- Offentlige timer: Kør fulde sikkerhedskopier i perioder med lav aktivitet
- Ressourcepåvirkning: Komprimering reducerer I/O, men øger CPU-forbruget
- Netværks båndbredde: Planlæg netværksbackups, når trafikken er lav
- Backup-vinduer: Sørg for, at sikkerhedskopier er færdige inden åbningstid
10.3 Bedste praksis for sikkerhedskopiering
10.3.1 Lagring på stedet vs. ekstern lagring
Sikkerhedskopier på stedet:
- Hurtigere backup- og gendannelsestider
- Nedre cost til højfrekvent adgang
- Sårbar over for lokale katastrofer
- Bedst til hurtige genopretningsscenarier
Off-site backups:
- Beskyttelse mod stedspecifikke katastrofer
- Overholdelse af krav til geografisk redundans
- Langsommere gendannelsestider
- Essentielt for katastrofeberedskab
10.3.2 Muligheder for backup i skyen
Fordele ved cloud-lagring:
- Azure Blob Storage: Native SQL Server integration, cost-effektiv ved sjælden adgang
- Amazon S3: Meget holdbare, fleksible opbevaringsniveauer
- Google Cloud Storage: Konkurrencedygtige priser, global tilgængelighed
10.3.3 Politikker for opbevaring af sikkerhedskopier
Politik for opbevaring af prøver:
- Gem daglige sikkerhedskopier i 7 dage
- Gem ugentlige sikkerhedskopier i 4 uger
- Gem månedlige sikkerhedskopier i 12 måneder
- Gem årlige sikkerhedskopier i 7 år (overholdelse af regler)
10.4 Komprimering og kryptering af sikkerhedskopier
Fordele ved kompression:
- Reducerer størrelsen på backupfiler med 50-70%
- Reducerer backuptiden
- Reducerer lagerpladsosts
- Reducerer netværksbåndbredden for fjernbackups
Bedste praksis for kryptering:
- Krypter altid sikkerhedskopier, der indeholder følsomme data
- Brug AES 256-bit kryptering
- Sikker certifikat- eller nøglehåndtering
- Dokumentér krypteringsnøgler og gem dem separat
10.5 Test og verificering af sikkerhedskopier
10.5.1 Regelmæssig gendannelsestest
Testprocedurer for gendannelse kvartalsvis eller månedligt:
- Gendan sikkerhedskopier til et testmiljø
- Bekræft dataintegritet og fuldstændighed
- Tjek applikationens funktionalitet
- Dokumentgendannelsestid (valider RTO)
- Identificer og løs eventuelle problemer
10.5.2 Brug af RESTORE VERIFYONLY
Automatiser validering af backup:
-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Kør verifikation umiddelbart efter fuldførelse af sikkerhedskopiering eller som en del af planlagt vedligeholdelse.
10.6 Automatisering og overvågning af backup
10.6.1 SQL Server Agentjob
Opret automatiserede backupjob:
- Udvid SQL Server Agent
i SSMS
- Højreklik Karriere og vælg Nyt job
- Navngiv jobbet (f.eks. "Daglig fuld sikkerhedskopiering")
- Føj til Trin med T-SQL backup-kommandoer
- Opret en Plan for udførelsestid
- Konfigurer Notifikationer for succes/fiasko
10.6.2 Vedligeholdelsesplaner
SQL Server Vedligeholdelsesplaner giver en visuel brugerflade til automatisering af backup:
- Naviger til Management -> Vedligeholdelsesplaner
- Højreklik og vælg Guide til vedligeholdelsesplan
- Vælg backupopgaver, der skal automatiseres
- Konfigurer backupplan og -indstillinger
- Opsæt rapportering og logføring
10.6.3 Backup-advarsler og -meddelelser
Konfigurer e-mail-notifikationer:
- Opsæt databasemail i SQL Server
- Opret advarsler ved sikkerhedskopieringsfejl
- Overvåg historikken for backupjob
- Send oversigtsrapporter til administratorer
10.7 Dokumentation og planlægning af katastrofeberedskab
Vedligehold omfattende dokumentation:
- Backup-plan: Hvornår og hvad der sikkerhedskopieres
- Opbevaringspolitikker: Hvor længe sikkerhedskopier opbevares
- Opbevaringssteder: Hvor sikkerhedskopier gemmes
- Gendannelsesprocedurer: Trinvise instruktioner til gendannelse
- Kontakt information: Nøglepersonale og leverandører
- Resultater af restitutionstest: Dokumenterede testresultater
11. Avanceret SQL Server Backup-scenarier
11.1 Sikkerhedskopiering af meget store databaser (VLDB)
11.1.1 Fil- og filgruppestrategier
For databaser, der overstiger flere hundrede gigabyte:
- Adskil skrivebeskyttede og læse-skrivebeskyttede data i forskellige filgrupper
- Sikkerhedskopier skrivebeskyttede filgrupper sjældent
- Fokuser hyppige sikkerhedskopier på aktive filgrupper
- Brug backups på filniveau for at få detaljeret kontrol
Eksempel på sikkerhedskopiering af 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 af backupydelse
Forbedr VLDB-backupydelsen:
- Stribede sikkerhedskopier: Skriv til flere filer samtidigt
- Compression: Reducer I/O- og lagerkrav
- Flere backup-enheder: Parallelisering af backup-operationer
- Hurtig opbevaring: Brug SSD'er til backupstaging
- Bufferantal: Forøg BUFFERCOUNT-muligheden
- Maksimal overførselsstørrelse: Optimer MAXTRANSFERSIZE-indstillingen
-- 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 Sikkerhedskopiering i Always On-tilgængelighedsgrupper
Always On Availability Groups fordeler backupbelastningen på tværs af replikaer:
- Konfigurer backuppræferencer (primær, sekundær eller enhver replika)
- Flyt sikkerhedskopier til sekundære replikaer for at reducere den primære arbejdsbyrde
- Brug COPY_ONLY-sikkerhedskopier på sekundære replikaer
- Overvåg indstillinger for backupprioritet
-- 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 Sikkerhedskopiering til databasespejling
I scenarier for databasespejling:
- Tag regelmæssigt backup af hoveddatabasen
- Sikkerhedskopier af transaktionslogge er afgørende for spejling
- Spejldatabasen er i GENDANNELSES-tilstand (kan ikke sikkerhedskopieres direkte)
- Overvej at sikkerhedskopiere spejlet efter failover
11.4 Sikkerhedskopiering til Azure Blob Storage
SQL Server kan sikkerhedskopiere direkte til Azure Blob Storage:
- Opret Azure Storage-konto
- Opret SQL Server legitimationsoplysninger til Azure-godkendelse
- Brug URL-syntaks til backupdestination
-- 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 Sikkerhedskopiering til URL
Fordele ved at sikkerhedskopiere til URL:
- Ubegrænset cloud-lagringskapacitet
- Geografisk redundans håndteres automatisk
- Prisfastsættelsesmodel, som du betaler
- Ingen lokal diskplads kræves
- Understøtter op til 64 URL'er pr. backup (striping)
11.6 Stribede sikkerhedskopier for ydeevne
Stripede sikkerhedskopier opdeler data på tværs af flere filer for hurtigere 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
Bemærk: Alle Stripe-filer er nødvendige for gendannelse. Hvis en fil mangler, bliver sikkerhedskopien ubrugelig.
12. Fejlfinding SQL Server Problemer med sikkerhedskopiering
12.1 Almindelige sikkerhedskopieringsfejl og løsninger
Fejl: "Operativsystemfejl 5: Adgang nægtet"
- Årsag: SQL Server Servicekontoen mangler tilladelser
- Opløsning: Giv skrivetilladelser til SQL Server servicekonto i backupmappen
Fejl: "Kan ikke åbne backup-enheden ... Enhedsfejl eller enhed offline"
- Årsag: Ugyldig sti eller utilgængelig netværksdeling
- Opløsning: Bekræft, at stien findes, kontroller netværksforbindelsen, og sørg for, at der er tilstrækkelig diskplads
Fejl: "Ikke nok plads på disken"
- Årsag: Utilstrækkelig diskplads til sikkerhedskopiering
- Opløsning: Frigør diskplads, brug komprimering, sikkerhedskopier til en anden placering
Fejl: "Database i brug. Databasen bruges af andre brugere"
- Årsag: Aktive forbindelser under gendannelse
- Opløsning: Brug indstillingen MED ERSTATNING eller afbryd brugernes forbindelse først
12.2 Problemer med sikkerhedskopieringsydelse
Diagnosticér langsomme sikkerhedskopier:
- Kontroller diskens I/O-ydeevne ved hjælp af Performance Monitor
- Overvåg sikkerhedskopieringsstatus med STATS-funktionen
- Anmeldelse SQL Server fejllog for flaskehalse
- Overvej komprimering for at reducere I/O
- Brug stribede sikkerhedskopier på tværs af flere diske
Forespørgsel for at overvåge sikkerhedskopieringsstatus:
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 Plads- og opbevaringsproblemer
Forebyg lagerproblemer:
- Implementer opbevaringspolitikker: Slet automatisk gamle sikkerhedskopier
- Brug kompression: Reducer størrelsen på backup-filer med 50-70%
- Arkivér til billigere lagerplads: Flyt gamle sikkerhedskopier til arkivlager
- Overvåg diskplads: Opsæt advarsler ved lav diskplads
- Estimeret størrelse på backup: Beregn forventet størrelse før sikkerhedskopiering
Estimeret størrelse på backup:
-- Estimate full backup size
EXEC sp_spaceused;
GO
12.4 Problemer med tilladelser og adgang
Nødvendige tilladelser til sikkerhedskopier:
- SIKKERHEDSKOPIERING AF DATABASE tilladelse
- db_backupoperator rollemedlemskab
- sysadmin serverrolle (for alle backup-handlinger)
Giv tilladelser til sikkerhedskopiering:
-- 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 Korrupte sikkerhedskopieringsfiler
Opdag og håndter korrupte sikkerhedskopier:
Bekræft sikkerhedskopieringsintegritet:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Aktivér CHECKSUM for fremtidige sikkerhedskopier:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO
Forebyggelsesstrategier:
- Brug altid CHECKSUM-indstillingen under sikkerhedskopiering
- Bekræft sikkerhedskopier umiddelbart efter oprettelse
- Test gendannelser regelmæssigt
- Gem sikkerhedskopier på pålidelig lagring
- Opbevar flere sikkerhedskopier
12.6 Gendan data fra beskadigede sikkerhedskopier
Hvis dine backupfiler er beskadigede, og du stadig vil gendanne data fra dem, kan du bruge tredjepartsværktøjer som f.eks. DataNumen SQL Recovery, som nedenfor:
- Start DataNumen SQL Recovery.
- Vælg den beskadigede backupfil som kildefil ved at ændre filteret til "Alle filer (*.*)":
- Indstil output .MDF-filen, hvis det er nødvendigt.
- Klik på “Star"t Gendannelse" og følg instruktionerne for at gendanne databasen.
- Efter gendannelsesprocessen vises en ny gendannelsesdatabase i SQL Server som indeholder alle de gendannede data.
13. SQL Server Backupsikkerhed
13.1 Sikring af backupfiler
Beskyt backupfiler mod uautoriseret adgang:
- Filsystemtilladelser: Begræns adgang til kun autoriserede administratorer
- Netværkssikkerhed: Brug sikre protokoller til netværksbackups
- Fysisk sikkerhed: Opbevar backupmedier på sikre steder
- Adgangslogning: Adgang til sikkerhedskopier af filer overvåges
13.2 Krypteringsmuligheder
SQL Server understøtter transparent backupkryptering:
Opret certifikat til 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
Krypteret sikkerhedskopi:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
);
GO
Vigtigt: Sikkerhedskopier certifikatet og den private nøgle separat. Uden dem kan krypterede sikkerhedskopier ikke gendannes.
-- 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 Adgangskontrol og tilladelser
Implementér princippet om mindste privilegier:
- Giv kun backuptilladelser til nødvendige konti
- Brug separate konti til sikkerhedskopiering og gendannelse
- Undgå at bruge en sa-konto til sikkerhedskopiering
- Regelmæssigt gennemgå tilladelser til backup
- Fjern tilladelser, når de ikke længere er nødvendige
13.4 Overholdelse af overholdelse
Opfyld lovgivningsmæssige krav:
- BNPR: Krypter sikkerhedskopier, der indeholder personoplysninger, implementer opbevaringspolitikker
- HIPAA: Krypter PHI i sikkerhedskopier, kontrollér adgang, vedligehold revisionsspor
- PCI DSS: Krypter sikkerhedskopier af kortholderdata, sikker sikkerhedskopiering
- SOX: Oprethold sikkerhedskopieringsintegritet og politikker for dokumentopbevaring
14. Overvågning og vedligeholdelse af backup-operationer
14.1 Sporing af backuphistorik
SQL Server gemmer backuphistorik 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
Find databaser uden nylige sikkerhedskopier:
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 Brug SQL Server Rapporter
SQL Server Management Studio inkluderer indbyggede backuprapporter:
- Højreklik på databasen i Object Explorer
- Type Rapporter -> Standardrapporter
- Vælg mellem tilgængelige rapporter:
- Sikkerhedskopierings- og gendannelseshændelser
- Alle sikkerhedskopier
- Transaktionslog forsendelsesstatus
14.3 Overvågningsværktøjer fra tredjepart
Kommercielle overvågningsløsninger:
- SQL Sentry: Omfattende overvågning og alarmering
- Redgate SQL-overvågning: Overvågning og diagnose i realtidostics
- SolarWinds Database Performance Analyzer: Ydelses- og backupovervågning
- Idera SQL Diagnoseostic-chef: Validering og alarmering af backup
14.4 Sundhedstjek af sikkerhedskopier
Opret en procedure for sundhedstjek:
-- 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 Ofte stillede spørgsmål om sikkerhedskopiering
15.1 Hvor ofte skal jeg sikkerhedskopiere SQL Server?
Hyppigheden af sikkerhedskopiering afhænger af dit gendannelsespunktsmål (RPO):
- Kritiske produktionsdatabaser: Fuld ugentlig, differentiel daglig log, hvert 15.-30. minut
- Standard produktionsdatabaser: Fuld ugentlig, differentiel daglig log, hver 1-2 time
- Udviklingsdatabaser: Fuld daglig eller ugentlig
- Skrivebeskyttede databaser: Fuld efter hver dataændring
15.2 Hvad er forskellen mellem fuld og differentiel backup?
En fuld sikkerhedskopi kopierer hele databasen, mens en differentiel sikkerhedskopi kun registrerer ændringer siden den sidste fulde sikkerhedskopi. Differentielle sikkerhedskopier er mindre og hurtigere, men kræver den grundlæggende fulde sikkerhedskopi til gendannelse.
15.3 Kan jeg sikkerhedskopiere SQL Server Mens den kører?
Ja, SQL Server understøtter online backup. Brugere kan fortsætte med at arbejde under backup-operationer. SQL Server bruger sin transaktionslog til at opretholde konsistens og sikre, at sikkerhedskopier er gyldige, selv med samtidige ændringer.
15.4 Hvor længe varer SQL Server Sikkerhedskopiering?
Varigheden af sikkerhedskopieringen varierer afhængigt af:
- Databasestørrelse: Større databaser tager længere tid
- Backuptype: Fuld sikkerhedskopiering tager længst tid
- Compression: Kan øge CPU-tiden, men reducere den samlede varighed
- Lagringshastighed: SSD'er betydeligt hurtigere end harddiske
- Serverbelastning: Højere aktivitet forsinker sikkerhedskopiering
Typiske intervaller: Det kan tage 5-15 minutter at sikkerhedskopiere en 10 GB database med komprimering på moderne hardware.
15.5 Hvor skal jeg opbevare SQL Server Sikkerhedskopier?
Bedste praksis: Følg 3-2-1-reglen:
- 3 kopier af dine data
- 2 forskellige lagringstyper (f.eks. disk og bånd/cloud)
- 1 kopiering uden for webstedet
Anbefalede steder:
- Lokal disk til hurtig gendannelse
- Netværkslagring til centraliseret administration
- Cloud-lagring (Azure, AWS) til nødberedskab
15.6 Hvad er filtypen .bak?
Filtypen .bak er standardfiltypen for SQL Server sikkerhedskopier af filer. Det er en konvention, ikke et krav – SQL Server Sikkerhedskopier fungerer med alle filtypenavne. Brug af .bak gør det dog let at identificere sikkerhedskopier, og det er standardpraksis i branchen.
15.7 Sådan sikkerhedskopieres SQL Server til netværksdrev?
Sådan sikkerhedskopierer du til et netværksdrev:
- Sørg SQL Server Servicekontoen har skrivetilladelser på netværksdelingen
- Brug UNC-stien i backup-kommandoen:
\\ServerName\ShareName\BackupFile.bak - Test forbindelsen før planlægning af automatiske sikkerhedskopier
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO
15.8 Kan jeg komprimere SQL Server Sikkerhedskopier?
Ja, SQL Server understøtter native backupkomprimering (Enterprise Edition eller Standard Edition)tarTing SQL Server 2016 SP1). Komprimering reducerer typisk backupstørrelsen med 50-70% og reducerer ofte backuptiden ved at reducere I/O, selvom det øger CPU-forbruget.
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO
16. konklusion
16.1 vigtige ting
Effektiv SQL Server Backupstrategier beskytter dine data og sikrer forretningskontinuitet. Husk disse vigtige punkter:
- Forstå typer af backup: Vælg passende backuptyper (fuld, differentiel, transaktionslog) baseret på dine gendannelseskrav
- Vælg den rigtige gendannelsesmodel: Fuld gendannelse af kritiske data, enkel til udviklingsdatabaser
- Implementer backupplan: Regelmæssige fulde sikkerhedskopier kombineret med differentielle og log-sikkerhedskopier minimerer datatab
- Testprocedurer for gendannelse: Sikkerhedskopier er kun værdifulde, hvis de kan gendannes
- Automatiser og overvåg: Brug SQL Server Agent, vedligeholdelsesplaner og overvågningsværktøjer
- Sikre sikkerhedskopier: Krypter følsomme data og kontrollér adgangen til backupfiler
- Opbevar kopier uden for butikken: Beskyt mod katastrofer på tværs af hele webstedet med cloud- eller fjernlagring
- Dokumenter alt: Vedligehold tydelig dokumentation af backup- og gendannelsesprocedurer
16.2 Næste trin og ressourcer
For at forbedre din SQL Server implementering af backup:
- Vurder din nuværende backupstrategi i forhold til bedste praksis
- Beregn dine RTO- og RPO-krav
- Test af gendannelsesprocedurer på ikke-produktionssystemer
- Gennemgå og opdater backupplaner regelmæssigt
- Implementer automatiseret overvågning og alarmering
- Træn teammedlemmer i gendannelsesprocedurer
Yderligere ressourcer:
- microsoft SQL Server Dokumentation: Officiel vejledning til backup og gendannelse
- SQL Server Backup-fællesskabsfora: Del erfaringer og løsninger
- Professionelle certificeringer: Microsoft-certificeret: Azure Database Administrator Associate
16.3 Anbefalede værktøjer og løsninger
Baseret på forskellige scenarier:
Små virksomheder:
- Native SQL Server sikkerhedskopiering med planlagt SQL Server Agentjob
- SQLBackupAndFTP til cloudintegration
- Azure Backup til SQL Server
Mellemstore virksomheder:
- SQL Server Vedligeholdelsesplaner
- Tredjepartsværktøjer som Redgate SQL Backup Pro
- Veeam Backup til SQL Server
Store virksomheder:
- Quest LiteSpeed for maksimal kompression
- Commvault eller Veritas NetBackup til administration af virksomhedsbackup
- Altid til tilgængelighedsgrupper for høj tilgængelighed
SQL Server Backup er fundamentalt for databaseadministration. Med korrekt planlægning, implementering og testning kan du sikre, at dine data forbliver beskyttet og kan gendannes, når det er nødvendigt.tarimplementering af disse bedste praksisser i dag for at sikre din SQL Server databaser.
Om forfatteren
Yuan Sheng er en senior databaseadministrator (DBA) med over 10 års erfaring inden for SQL Server miljøer og virksomhedsdatabaseadministration. Han har med succes løst hundredvis af databasegendannelsesscenarier på tværs af finansielle tjenester, sundhedsvæsenet og produktionsorganisationer.
Yuan har specialiseret sig i SQL Server databasegendannelse, løsninger til høj tilgængelighed og ydeevneoptimering. Hans omfattende praktiske erfaring omfatter administration af databaser på flere terabyte, implementering af Always On Availability Groups og udvikling af automatiserede backup- og gendannelsesstrategier til missionskritiske forretningssystemer.
Gennem sin tekniske ekspertise og praktiske tilgang fokuserer Yuan på at skabe omfattende vejledninger, der hjælper databaseadministratorer og IT-professionelle med at løse komplekse SQL Server udfordringer effektivt. Han holder sig opdateret med det nyeste SQL Server udgivelser og Microsofts udviklende databaseteknologier, og tester regelmæssigt gendannelsesscenarier for at sikre, at hans anbefalinger afspejler bedste praksis i den virkelige verden.
Har spørgsmål vedr SQL Server gendannelse eller brug for yderligere vejledning i fejlfinding af databaser? Yuan er velkommen feedback og forslag for at forbedre disse tekniske ressourcer.











