Freigeben über


Wiederherstellen der master-Datenbank (Transact-SQL)

Gilt für:SQL Server

In diesem Thema erfahren Sie, wie Sie die master-Datenbank von einer vollständigen Datenbanksicherung wiederherstellen.

Warnung

Bei der Notfallwiederherstellung sollte die Instanz, auf die die master-Datenbank wiederhergestellt wird, so genau wie möglich mit der ursprünglichen Datenbank übereinstimmen. Diese Wiederherstellungsinstanz sollte mindestens die gleiche Version, Edition und Patchebene aufweisen sowie über die gleiche Auswahl an Features und die gleiche externe Konfiguration (Hostname, Clustermitgliedschaft usw.) wie die ursprüngliche Instanz verfügen. Andernfalls kann dies zu einem nicht definierten SQL Server-Instanzverhalten mit inkonsistenter Featureunterstützung führen und ist nicht garantiert lebensfähig.

Wiederherstellen der master-Datenbank

  1. Starten Sie die Serverinstanz im Einzelbenutzermodus.

    Sie können SQL Server entweder mit den Startparametern -m oder -f starten. Weitere Informationen zu Startparametern finden Sie unter Startoptionen des Datenbankmoduldiensts.

    Führen Sie in einer Eingabeaufforderung die folgenden Befehle aus und stellen Sie sicher, dass Sie MSSQLXX.instance durch den entsprechenden Ordnernamen ersetzen:

    cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn
    sqlservr -c -f -s <instance> -mSQLCMD
    
    • Der Parameter -mSQLCMD stellt sicher, dass nur sqlcmd eine Verbindung mit SQL Server herstellen kann.
    • Verwenden Sie für einen Standard-Instanznamen -s MSSQLSERVER
    • -c startet SQL Server als Anwendung, um den Dienststeuerungsmanager zu umgehen und die Startzeit zu verkürzen.

    Wenn die SQL Server-Instanz aufgrund einer beschädigten master-Datenbank nicht gestartet werden kann, müssen Sie zuerst die Systemdatenbanken neu erstellen. Weitere Informationen finden Sie unter Neuerstellen von Systemdatenbanken.

  2. Herstellen einer Verbindung mit SQL Server mithilfe von SQLcmd über ein anderes Eingabeaufforderungsfenster:

    sqlcmd -S <instance> -E -d master
    
  3. Verwenden Sie zum Wiederherstellen einer vollständigen Datenbanksicherung von master die folgenden RESTORE-AnweisungenTransact-SQL-Anweisung:

    RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
    

    Die REPLACE Option weist SQL Server an, die angegebene Datenbank auch dann wiederherzustellen, wenn bereits eine Datenbank mit demselben Namen vorhanden ist. Die vorhandene Datenbank wird ggf. gelöscht. Im Einzelbenutzermodus wird empfohlen, die RESTORE DATABASE Anweisung in das sqlcmd-Hilfsprogramm einzugeben. Weitere Informationen finden Sie unter Verwenden von sqlcmd.

    Wichtig

    Nachdem master wiederhergestellt wird, wird die Instanz von SQL Server heruntergefahren und der sqlcmd Prozess wird beendet. Vor dem Neustarten der Serverinstanz muss der Einzelbenutzer-Startparameter entfernt werden. Weitere Informationen finden Sie unter SQL Server Configuration Manager: Konfigurieren von Serverstartoptionen.

  4. Starten Sie die Serverinstanz normal als Dienst neu, ohne dass Startparameter verwendet werden.

  5. Fahren Sie mit anderen Wiederherstellungsschritten fort, z.B. dem Wiederherstellen anderer Datenbanken, dem Anhängen von Datenbanken und dem Korrigieren von Benutzerabweichungen.

Beispiele

Im folgenden Beispiel wird die master -Datenbank auf der Standardserverinstanz wiederhergestellt. In diesem Beispiel wird vorausgesetzt, dass die Serverinstanz bereits im Einzelbenutzermodus ausgeführt wird. Das Beispiel startet sqlcmd und führt eine RESTORE DATABASE Anweisung aus, mit der eine vollständige Datenbanksicherung master von einem Datenträgergerät wiederhergestellt wird: Z:\SQLServerBackups\master.bak.

Für eine benannte Instanz muss der Sqlcmd-Befehl die -S<computer-name>\<instance-name> Option angeben.

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