sql >> Database teknologi >  >> RDS >> Sqlserver

Sikkerhedskopier en database i SQL Server 2017

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

  1. Å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.

  2. Start Backup-databasen Dialogboks

    Klik på Backup knap.

  3. 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.

  4. 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.


  1. Sådan opretter du forbindelse til en MySQL-datakilde i Visual Studio

  2. MySQL - Hvordan unpivot kolonner til rækker?

  3. Sådan bruger du GO Statement i SQL Server til at indsætte poster i Identity Column - SQL Server / T-SQL Tutorial Del 42

  4. PSQL kommandolinjeargumenter i DO-script