sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2016:Säkerhetskopiera en databas

SQL Server ger ett enkelt sätt att skapa en säkerhetskopia av en databas. Säkerhetskopiering kan göras antingen med Transact-SQL, PowerShell eller via SQL Server Management Studio GUI.

Här kommer jag att demonstrera hur man skapar en säkerhetskopia med SQL Server Management System GUI, sedan använder Transact-SQL och slutligen med SQL Server Powershell.

Skapa en säkerhetskopia via GUI

  1. Starta Säkerhetskopiera databasen Dialogrutan

    I objektutforskaren högerklickar du på databasen du vill säkerhetskopiera och väljer Tasks> Back Up... från den sammanhangsberoende menyn.

  2. Granska säkerhetskopieringsinställningarna

    Denna dialogruta ger dig möjlighet att ändra någon av inställningarna om det behövs.

    För vårt exempel, lämna det på standardinställningarna och klicka på OK för att skapa säkerhetskopian.

    Du kan ändra databasen här om du av misstag valde fel i föregående steg.

  3. Säkerhetskopieringen är klar

    Du får ett meddelande när säkerhetskopieringen är klar.

    Klicka på OK för att stänga meddelandet och dialogrutan.

    Säkerhetskopieringsfilen kommer nu att finnas på den angivna platsen.

Säkerhetskopiera en databas med Transact-SQL

  • Du kan utföra samma säkerhetskopiering som ovan med SQL.

    För att göra detta, öppna ett nytt frågefönster och kör en BACKUP uttalande.

    BACKUP statement accepterar olika alternativ (precis som GUI-alternativet), men du kan också köra en enkel säkerhetskopiering med ett minimum av kod.

    Exempelkod

    Nedan är ett exempel på ett enkelt säkerhetskopieringsskript som anger databasen som ska säkerhetskopieras och platsen som den ska säkerhetskopieras till.

    Efter att ha kört den här koden kommer säkerhetskopian att finnas på den angivna platsen.

    BACKUP DATABASE Music  
    TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\Music.bak';

    Du kan se hela syntaxen för BACKUP uttalande på Microsofts webbplats.

Säkerhetskopiera en databas med PowerShell

SQL Server 2016 stöder Windows PowerShell, som är ett skriptskal, som vanligtvis används för att automatisera administrations- och distributionsuppgifter.

PowerShell-språket stöder mer komplex logik än Transact-SQL-skript, vilket ger dig möjligheten att bygga mer sofistikerade skript för dina säkerhetskopior och andra uppgifter.

  1. Öppna PowerShell

    Högerklicka på databasen och välj Starta Powershell .

  2. Kör kommandot Backup

    Ange kommandot för att skapa säkerhetskopian och tryck på Retur (eller Return , beroende på ditt tangentbord).

    Säkerhetskopieringen kommer att köras omedelbart.

    Exempelkod

    Följande kod kommer att skapa en säkerhetskopia precis som de tidigare exemplen. Byt bara ut MyServer med namnet på din server.

    Efter att ha kört den här koden kommer säkerhetskopian att placeras på standardplatsen.

    Backup-SqlDatabase -ServerInstance MyServer -Database Music

    Du kan också ange en plats

    Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\Music.bak'

    Du kan också ange -BackupAction Database att uttryckligen ange att det är en fullständig säkerhetskopia. Detta är dock standardalternativet.

    Du kan se hela dokumentationen för Backup-SqlDatabase kommandot på Microsofts webbplats.

Skriv över säkerhetskopior

Om du körde alla ovanstående exempel exakt som de är, kanske du har märkt att varje gång du körde det ökade filstorleken på säkerhetskopian.

Detta beror på att varje efterföljande säkerhetskopia lägger till sig själv i den befintliga filen.

Det gör detta för att vi använder samma filnamn och vi har inte uttryckligen specificerat att varje säkerhetskopia ska skriva över någon befintlig fil.

Det finns ett alternativ som låter dig skriva över den befintliga filen.

  • Använda GUI , klicka på Mediealternativ i den vänstra menyn i Säkerhetskopiera databasen dialogrutan och välj Skriv över alla befintliga säkerhetskopior i Skriv över media avsnitt.
  • Använder SQL lägg till WITH INIT till SQL-satsen.
  • Använda Powershell , lägg till -Initialize till kommandot.

Spara säkerhetskopior

Det är dock ofta en bra idé att skapa en fullständig säkerhetskopia med ett unikt filnamn (vanligtvis inklusive datum i filnamnet). Att ha ett unikt filnamn innebär att varje säkerhetskopia blir en separat fil.

Beroende på storleken på din databas och hur mycket ny data som läggs in i den, kanske du vill komplettera dina fullständiga säkerhetskopior med differentiella säkerhetskopior. En differentiell säkerhetskopiering fångar endast de data som har ändrats sedan den senaste fullständiga säkerhetskopieringen.


  1. Returnera tabellprivilegier från en länkad server i SQL Server (T-SQL-exempel)

  2. TYP Definitionsändring i Oracle 21c

  3. Ta bort inledande nollor från varchar sql-utvecklare

  4. Hur kan du se om ett PL/SQL-paket, en procedur eller en funktion används?