SQL Server giver en nem måde at oprette en backup af en database på. Sikkerhedskopier kan udføres enten med Transact-SQL, PowerShell eller via GUI.
Her vil jeg demonstrere, hvordan man opretter en sikkerhedskopi ved hjælp af SQL Operations Studio (nu kaldet Azure Data Studio) GUI, derefter ved hjælp af Transact-SQL og til sidst med SQL Server Powershell.
Opret en sikkerhedskopi via SQLOPS/Azure Data Studio GUI
-
Åbn Database Dashboard
I venstre rude skal du højreklikke på den database, du vil sikkerhedskopiere, og vælge Administrer .
Hvis du bruger SSMS, skal du i Objekt Explorer højreklikke på den database, du vil sikkerhedskopiere, og vælge Opgaver> Sikkerhedskopier... fra kontekstmenuen. Dette vil starte Backup-databasen dialogboks.
-
Start Backup-databasen Dialogboks
Klik på Backup knap.
-
Gennemgå indstillingerne
Denne dialogboks giver dig mulighed for at ændre enhver af indstillingerne, hvis det er nødvendigt.
For vores eksempel skal du lade det blive ved standardindstillingerne og klikke på Sikkerhedskopi for at oprette sikkerhedskopien.
Hvis du har specifikke sikkerhedskopieringskrav, kan du ændre sikkerhedskopieringstypen og/eller klikke på Avanceret konfiguration for at justere de avancerede konfigurationsindstillinger.
-
Sikkerhedskopieringen er fuldført
Når sikkerhedskopieringen er fuldført, vises en meddelelse, der bekræfter, at sikkerhedskopieringen lykkedes.
Sikkerhedskopier en database ved hjælp af Transact-SQL
Du kan udføre den samme sikkerhedskopiering som ovenfor ved hjælp af T-SQL.
For at gøre dette skal du åbne et nyt forespørgselsvindue og udføre en BACKUP
erklæring.
BACKUP
statement accepterer forskellige muligheder (ligesom GUI-indstillingen), men du kan også køre en simpel backup med et minimum af kode.
Nedenfor er et eksempel på et simpelt backup-script på et Linux- eller Mac-system. Scriptet angiver databasen, der skal sikkerhedskopieres, og placeringen, den skal sikkerhedskopieres til.
BACKUP DATABASE Music TO DISK = '/var/opt/mssql/data/Music.bak';
På et Windows-system vil stien bruge omvendte skråstreg:
BACKUP DATABASE Music TO DISK = 'C:\Backups\Music.bak';
Efter at have kørt denne kode, vil backupfilen blive placeret på den angivne placering.
Sikkerhedskopier en database ved hjælp af PowerShell
SQL Server 2017 understøtter Windows PowerShell, som er en script-shell, der typisk bruges til at automatisere administrations- og implementeringsopgaver.
PowerShell-sproget understøtter mere kompleks logik end Transact-SQL-scripts, hvilket giver dig mulighed for at bygge mere sofistikerede scripts til dine sikkerhedskopier og andre opgaver.
Følgende kode vil oprette en sikkerhedskopi ligesom de foregående eksempler. Bare udskift MyServer
med navnet på din server.
Backup-SqlDatabase -ServerInstance MyServer -Database Music
Du kan også angive en placering
Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'
Efter at have kørt denne kode, vil backupfilen blive placeret på standardplaceringen.
Du kan også angive -BackupAction Database
for eksplicit at angive, at det er en fuld backup. Dette er dog standardindstillingen.
Du kan se den fulde dokumentation for Backup-SqlDatabase
kommando på Microsofts websted.
Overskrivning af sikkerhedskopifiler
Hvis du udfører flere sikkerhedskopier ved at bruge det samme filnavn for sikkerhedskopieringsfilen, vil du måske bemærke, at hver gang du kører en sikkerhedskopi, øges filstørrelsen på sikkerhedskopifilen.
Dette skyldes, at hver efterfølgende backup føjer sig selv til den eksisterende fil. Det gør det, fordi du bruger det samme filnavn, og du ikke udtrykkeligt har angivet, at hver sikkerhedskopi skal overskrive enhver eksisterende fil.
Der er en mulighed, der giver dig mulighed for at overskrive den eksisterende fil.
- Brug af SQLOPS GUI , klik på Avanceret konfiguration og under Sikkerhedskopiering til det eksisterende mediesæt , vælg Overskriv alle eksisterende sikkerhedskopieringssæt .
- Brug af SSMS GUI , klik på Medieindstillinger i venstre menu i Backup-databasen dialogboksen, og vælg Overskriv alle eksisterende sikkerhedskopieringssæt i Overskriv medier sektion.
- Brug af SQL tilføje
WITH INIT
til SQL-sætningen. - Brug af Powershell , tilføj
-Initialize
til kommandoen.
Brug af unikke filnavne
Det er dog ofte en god idé at lave en fuld sikkerhedskopi med et unikt filnavn (typisk inklusive datoen i filnavnet). At have et unikt filnavn betyder, at hver sikkerhedskopi vil være en separat fil.
Afhængigt af størrelsen på din database, og hvor meget nye data der indtastes i den, kan du også ønske at supplere dine fulde sikkerhedskopier med differentielle sikkerhedskopier. En differentiel backup fanger kun de data, der er ændret siden den seneste fulde backup.