sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2016:Återställ en databas

Precis som med databassäkerhetskopiering kan du i SQL Server 2016 återställa en databas genom att använda antingen Transact-SQL, PowerShell eller via SQL Server Management Studio GUI.

Här kommer jag att visa hur man återställer en databas med SQL Server Management System GUI och sedan med Transact-SQL.

Återställ en databas via GUI

I det här exemplet kommer vi att återställa en säkerhetskopia av en helt ny databas som heter WideWorldImporters .

WideWorldImporters databasen är en exempeldatabas som tillhandahålls av Microsofts SQL Server Team för att visa hur SQL Servers funktioner kan användas i ett verkligt scenario.

Denna process kommer att skapa en ny databas som heter WideWorldImporters . Databasen kommer att innehålla olika objekt (såsom tabeller, vyer, lagrade procedurer, etc). Den kommer också att innehålla exempeldata, så det finns ingen anledning att lägga till egna.

Ladda ner databasbackupfilen

Innan du börjar ladda ner databasen (från GitHub).

  • Ladda ner WideWorldImporters-Full.bak fil om du använder Evaluation, Developer eller Enterprise Edition av SQL Server.
  • Eller ladda ner WideWorldImporters-Standard.bak fil om du använder SQL Server Standard Edition.
  1. Starta Återställ databas Dialogrutan

    I objektutforskaren högerklickar du på Databaser nod och välj Återställ databas... från den sammanhangsberoende menyn.

  2. Välj säkerhetskopieringsfilen

    Under Källa rubrik, välj Enhet och klicka på ellipsknappen ( ... ) för att starta Välj säkerhetskopieringsenheter dialogrutan.

  3. Välj säkerhetskopieringsfilen

    Se till att File är markerat klickar du på Lägg till för att bläddra till databasen .bak-fil och lägga till den.

    När du har lagt till säkerhetskopian och den är listad under Säkerhetskopieringsmedia: , klicka på OK för att avsluta den här dialogrutan.

  4. Kontrollera inställningarna

    Olika fält i Återställ databas dialogrutan kommer att fyllas i baserat på säkerhetskopian som du valde.

    Klicka på OK för att återställa databasen.

    Du kan (valfritt) klicka på Verifiera säkerhetskopieringsmedia för att testa att det inte finns några problem med säkerhetskopian innan du kör återställningsprocessen.

  5. Framgångsmeddelande

    Du kommer att få ett meddelande som informerar dig om att databasen har återställts.

    Klicka på OK för att avsluta.

  6. Kontrollera databasen

    Navigera till WideWorldImporters databas och utöka dess noder för att granska dess olika objekt såsom tabeller, vyer, lagrade procedurer, etc.

    Du kan börja arbeta med denna databas direkt. Till exempel att köra SELECT * FROM Website.Suppliers; kommer att returnera en lista över leverantörer som använder Website.Suppliers visa.

Återställ en databas med Transact-SQL

  • Du kan utföra samma databasåterställning som ovan med SQL.

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

    RESTORE uttalandet accepterar olika alternativ (precis som GUI-alternativet), men du kan också köra en enkel återställning med ett minimum av kod.

    Exempelkod

    Nedan är ett exempel på ett enkelt återställningsskript som anger databasfilen som ska återställas och måldatabasen.

    Den anger också var data och loggfiler kommer att finnas.

    Efter att ha kört den här koden, WideWorldImporters databas kommer att skapas.

    Ta bort den befintliga databasen först genom att köra följande kod:

    USE master;
    DROP DATABASE WideWorldImporters;

    Du kan också ta bort en databas via Objektutforskaren genom att högerklicka på databasnamnet och välja Ta bort från den sammanhangsberoende menyn.

    Kontrollera nu att databasen inte längre finns med i objektutforskaren. Du kanske måste högerklicka på Databaser och klicka på Uppdatera innan den försvinner.

    När du har bekräftat att databasen inte längre finns på din server, kör följande skript för att få tillbaka den:

    USE master;
    RESTORE DATABASE WideWorldImporters  
    FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\WideWorldImporters-Full.bak'   
    WITH    
        MOVE N'WWI_Primary' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.mdf',    
        MOVE N'WWI_UserData' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_UserData.ndf',    
        MOVE N'WWI_Log' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters.ldf',    
        MOVE N'WWI_InMemory_Data_1' 
            TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\WideWorldImporters_InMemory_Data_1';

    Visa ett framstegsmeddelande

    Du kan använda STATS alternativet för att få en uppdatering om hur återställningsprocessen fortskrider.

    Till exempel STATS=10 kommer att resultera i 10 procent bearbetade , 20 procent bearbetade , etc när databasen återställs.

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

Du kan nu använda den här databasen för att prova olika saker. Experimentera gärna med det. Fråga data, ta bort data, släpp objekt, vad som helst. När allt kommer omkring, om du förstör det helt, kan du alltid återställa databasen från säkerhetskopian.


  1. Hur man hanterar en tabellkolumn med ett reserverat SQL-sökord?

  2. Gör en ackumulerad summa i view oracle

  3. Välja slumpmässiga rader med MySQL

  4. Villkorlig aggregeringsprestanda