sql >> Database >  >> RDS >> Sqlserver

SQL Server 2016:een database herstellen

Net als bij databaseback-ups kunt u in SQL Server 2016 een database herstellen met Transact-SQL, PowerShell of via de GUI van SQL Server Management Studio.

Hier laat ik zien hoe u een database kunt herstellen met behulp van de GUI van het SQL Server Management System en vervolgens met Transact-SQL.

Een database herstellen via de GUI

In dit voorbeeld gaan we een back-up herstellen van een gloednieuwe database genaamd WideWorldImporters .

De WideWorldImporters database is een voorbeelddatabase die wordt geleverd door het SQL Server-team van Microsoft om te demonstreren hoe de functies van SQL Server kunnen worden gebruikt in een realistisch scenario.

Dit proces maakt een nieuwe database aan met de naam WideWorldImporters . De database zal verschillende objecten bevatten (zoals tabellen, views, opgeslagen procedures, enz.). Het bevat ook voorbeeldgegevens, dus het is niet nodig om uw eigen gegevens toe te voegen.

Download het databaseback-upbestand

Voordat u begint, download de database (van GitHub).

  • Download de WideWorldImporters-Full.bak bestand als u de Evaluation, Developer of de Enterprise Edition van SQL Server gebruikt.
  • Of download de WideWorldImporters-Standard.bak bestand als u SQL Server Standard Edition gebruikt.
  1. Lanceer de database herstellen Dialoogvenster

    Klik in de Objectverkenner met de rechtermuisknop op de Databases knooppunt en selecteer Database herstellen... vanuit het contextmenu.

  2. Selecteer het back-upbestand

    Onder de Bron kop, selecteer Apparaat en klik op de ellipsenknop ( ... ) om de Selecteer back-upapparaten . te starten dialoogvenster.

  3. Selecteer het back-upbestand

    Ervoor zorgen dat Bestand is geselecteerd, klikt u op Toevoegen om naar het database .bak-bestand te bladeren en het toe te voegen.

    Zodra u het back-upbestand heeft toegevoegd en het wordt vermeld onder Back-upmedia: , klik op OK om dit dialoogvenster te sluiten.

  4. Controleer de instellingen

    Verschillende velden in de database herstellen dialoogvenster wordt gevuld op basis van het back-upbestand dat u hebt geselecteerd.

    Klik op OK om de database te herstellen.

    U kunt (optioneel) klikken op Back-upmedia verifiëren om te testen of er geen problemen zijn met het back-upbestand voordat u het herstelproces uitvoert.

  5. Succesbericht

    U ontvangt een bericht dat de database met succes is hersteld.

    Klik op OK om te eindigen.

  6. Controleer de database

    Navigeer naar de WideWorldImporters database en breid de knooppunten uit om de verschillende objecten te bekijken, zoals tabellen, weergaven, opgeslagen procedures, enz.

    U kunt direct met deze database aan de slag. Bijvoorbeeld:SELECT * FROM Website.Suppliers; zal een lijst met leveranciers retourneren met behulp van de Website.Suppliers bekijken.

Een database herstellen met Transact-SQL

  • U kunt hetzelfde databaseherstel als hierboven uitvoeren met SQL.

    Open hiervoor een nieuw queryvenster en voer een RESTORE . uit verklaring.

    De RESTORE statement accepteert verschillende opties (net als de GUI-optie), maar je kunt ook een eenvoudige restore uitvoeren met een minimum aan code.

    Voorbeeldcode

    Hieronder ziet u een voorbeeld van een eenvoudig herstelscript dat het te herstellen databasebestand en de doeldatabase specificeert.

    Het specificeert ook waar de gegevens en logbestanden zich zullen bevinden.

    Na het uitvoeren van deze code, de WideWorldImporters database zal worden aangemaakt.

    Verwijder eerst de bestaande database door de volgende code uit te voeren:

    USE master;
    DROP DATABASE WideWorldImporters;

    U kunt een database ook verwijderen via Object Explorer door met de rechtermuisknop op de databasenaam te klikken en Verwijderen te selecteren. vanuit het contextmenu.

    Controleer nu of de database niet langer wordt vermeld in de Objectverkenner. Mogelijk moet u met de rechtermuisknop klikken op Databases en klik op Vernieuwen voordat het verdwijnt.

    Zodra je hebt bevestigd dat de database niet meer bestaat op je server, voer je het volgende script uit om het terug te brengen:

    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';

    Een voortgangsbericht weergeven

    U kunt de STATS . gebruiken optie om een ​​update te ontvangen over de voortgang van het herstelproces.

    Bijvoorbeeld STATS=10 resulteert in 10 procent verwerkt , 20 procent verwerkt , enz. terwijl de database wordt hersteld.

    U kunt de volledige syntaxis zien voor de RESTORE verklaring op de Microsoft-website.

U kunt deze database nu gebruiken om verschillende dingen uit te proberen. Experimenteer er gerust mee. Gegevens opvragen, gegevens verwijderen, objecten neerzetten, alles. Immers, als je het helemaal verknoeit, kun je de database altijd herstellen vanuit het back-upbestand.


  1. Kan opgeslagen procedure 'dbo.aspnet_CheckSchemaVersion' niet vinden

  2. Inleiding tot PL/SQL Bulk Collect in Oracle Database

  3. Gebruikersaccountbeheer, rollen, machtigingen, authenticatie PHP en MySQL

  4. Problemen met de postgresql COPY-opdracht met Rails op een andere server