Delen via


De hoofddatabase herstellen (Transact-SQL)

Van toepassing op:SQL Server

In dit artikel wordt uitgelegd hoe u de master database herstelt vanuit een volledige databaseback-up.

Waarschuwing

In het geval van herstel na noodgevallen moet het exemplaar waar de master database wordt hersteld, zo dicht mogelijk bij een exacte overeenkomst met het origineel liggen. Dit herstelexemplaren moeten minimaal dezelfde versie, editie en patch zijn, en moeten dezelfde functies en dezelfde externe configuratie (hostnaam, clusterlidmaatschap, enzovoort) hebben als het oorspronkelijke exemplaar. Als u dit niet doet, kan dit leiden tot niet-gedefinieerd sql Server-exemplaargedrag, met inconsistente functieondersteuning en is niet gegarandeerd levensvatbaar.

De master-database herstellen

  1. Start de serverinstantie in eenpersoonsmodus.

    U kunt SQL Server starten met behulp van de -m of -f opstartparameters. Zie opstartopties voor Database Engine Service voor meer informatie over opstartparameters.

    Voer vanaf een opdrachtprompt de volgende opdrachten uit en zorg ervoor dat u MSSQLXX.instance vervangt door de juiste mapnaam:

    cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn
    sqlservr -c -f -s <instance> -mSQLCMD
    
    • De -mSQLCMD parameter zorgt ervoor dat alleen sqlcmd verbinding kan maken met SQL Server.
    • Gebruik -s MSSQLSERVER voor een standaardexemplarennaam
    • -c BEGINT SQL Server als een toepassing om Service Control Manager te omzeilen om de opstarttijd te verkorten

    Als het SQL Server-exemplaar niet kan worden gestart vanwege een beschadigde master database, moet u eerst de systeemdatabases opnieuw bouwen. Zie Systeemdatabases opnieuw opbouwen voor meer informatie.

  2. Verbinding maken met SQL Server met behulp van sqlcmd vanuit een ander opdrachtpromptvenster:

    sqlcmd -S <instance> -E -d master
    
  3. Als u een volledige databaseback-up van masterwilt herstellen, gebruikt u de volgende RESTORE-instructiesTransact-SQL instructie:

    RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
    

    Met de REPLACE optie wordt SQL Server geïnstrueerd om de opgegeven database te herstellen, zelfs wanneer er al een database met dezelfde naam bestaat. De bestaande database, indien aanwezig, wordt verwijderd. In de modus voor één gebruiker wordt u aangeraden de RESTORE DATABASE instructie in het sqlcmd-hulpprogramma in te voeren. Zie Sqlcmd gebruiken voor meer informatie.

    Belangrijk

    Nadat master is hersteld, wordt het exemplaar van SQL Server afgesloten en wordt het sqlcmd proces beëindigd. Voordat u het serverexemplaar opnieuw start, verwijdert u de opstartparameter voor single-user. Zie SQL Server Configuration Manager voor meer informatie: Opstartopties voor de server configureren.

  4. Start het serverexemplaar opnieuw op als een service, zonder opstartparameters te gebruiken.

  5. Ga verder met andere herstelstappen, zoals het herstellen van andere databases, het koppelen van databases en het corrigeren van niet-overeenkomende gebruikers.

Voorbeelden

In het volgende voorbeeld wordt de master-database hersteld op het standaardserverexemplaar. In het voorbeeld wordt ervan uitgegaan dat het serverexemplaar al wordt uitgevoerd in de modus voor één gebruiker. In het voorbeeld wordt sqlcmd gestart en wordt een RESTORE DATABASE instructie uitgevoerd waarmee een volledige back-up van een database van master wordt hersteld vanaf een schijfapparaat: Z:\SQLServerBackups\master.bak.

Voor een benoemd exemplaar moet de opdracht sqlcmd de -S<computer-name>\<instance-name> optie opgeven.

C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO