Neuerstellen von Systemdatenbanken

Systemdatenbanken müssen neu erstellt werden, um Beschädigungsprobleme bei den Systemdatenbanken master, model, msdb oder resource zu beheben oder die Standardsortierung auf Serverebene zu ändern. Dieses Thema enthält schrittweise Anweisungen für die Neuerstellung von Systemdatenbanken.

Vor der Neuerstellung von Systemdatenbanken

Bei der Neuerstellung der Systemdatenbanken master, model, msdb und tempdb werden die Datenbanken abgelegt und an ihrem ursprünglichen Speicherort neu erstellt. Wenn in der REBUILD-Anweisung eine neue Sortierung angegeben wird, werden die Systemdatenbanken unter Verwendung dieser Sortiereinstellung erstellt. Alle Änderungen von Benutzern an diesen Datenbanken gehen verloren. Beispielsweise kann die master-Datenbank benutzerdefinierte Objekte, die msdb-Datenbank geplante Aufträge und die model-Datenbank Änderungen der Standardeinstellungen für Datenbanken enthalten.

Führen Sie die folgenden Tasks aus, bevor Sie die Systemdatenbanken neu erstellen, um sicherzustellen, dass Sie die Systemdatenbanken mit ihren aktuellen Einstellungen wiederherstellen können.

  1. Zeichnen Sie alle serverweiten Konfigurationswerte auf.

    SELECT * FROM sys.configurations;
    
  2. Zeichnen Sie alle Service Packs und Hotfixes auf, die auf die Instanz von SQL Server und die aktuelle Sortierung angewendet werden. Sie müssen diese Updates erneut anwenden, nachdem Sie die Systemdatenbanken neu erstellt haben.

    SELECT
    SERVERPROPERTY('ProductVersion ') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
    SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
    SERVERPROPERTY('Collation') AS Collation;
    
  3. Zeichnen Sie den aktuellen Speicherort aller Daten und Protokolldateien für die Systemdatenbanken auf. Durch die erneute Erstellung der Systemdatenbanken werden alle Systemdatenbanken an ihrem ursprünglichen Speicherort installiert. Wenn Sie System-Datenbankdaten oder Protokolldateien an einen anderen Speicherort verschoben haben, müssen Sie die Dateien erneut verschieben.

    SELECT name, physical_name AS current_file_location
    FROM sys.master_files
    WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
    
  4. Suchen Sie die aktuelle Sicherung der Datenbanken master, model und msdb.

  5. Wenn die Instanz von SQL Server als Replikationsverteiler konfiguriert wird, suchen Sie die aktuelle Sicherung der Verteilungsdatenbank.

  6. Stellen Sie sicher, dass Sie die geeigneten Berechtigungen haben, um die Systemdatenbanken neu zu erstellen. Um diesen Vorgang ausführen zu können, müssen Sie Mitglied der festen Serverrolle sysadmin sein. Weitere Informationen finden Sie unter Rollen auf Serverebene.

  7. Überprüfen Sie, ob Kopien der Daten und Protokollvorlagendateien der Datenbanken master, model und msdb auf dem lokalen Server vorhanden sind. Der Standardspeicherort für die Vorlagendateien ist C:\Programme\Microsoft SQL Server\MSSQL10.MSS QLSERVER\MSSQL\Binn\Vorlagen. Diese Dateien werden während der Neuerstellung verwendet und müssen vorhanden sein, um Setup erfolgreich ausführen zu können. Wenn sie fehlen, führen Sie das Reparaturfeature von Setup aus, oder kopieren Sie die Dateien manuell aus dem Installationsmedium. Um die Dateien auf dem Installationsmedium zu suchen, navigieren Sie zum entsprechenden Plattformverzeichnis (x86, x64 oder ia64) und dann zu setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Vorlagen.

Vorgehensweise zum Neuerstellen der Systemdatenbanken

Mithilfe der folgenden Vorgehensweise werden die Systemdatenbanken master, model, msdb und tempdb neu erstellt. Sie können die neu zu erstellenden Systemdatenbanken nicht angeben. Für gruppierte Instanzen muss diese Prozedur für den aktiven Knoten ausgeführt werden, und die SQL Server-Ressource in der entsprechenden Clusteranwendungsgruppe muss vor der Ausführung der Prozedur offline geschaltet werden.

Durch diese Vorgehensweise wird die resource-Datenbank nicht neu erstellt. Führen Sie hierzu die Schritte im Abschnitt "Vorgehensweise zum Neuerstellen der Ressourcendatenbank" weiter unten in diesem Thema aus.

So erstellen Sie Systemdatenbanken für eine Instanz von SQL Server neu:

  1. Legen Sie das SQL Server 2008-Installationsmedium in das Laufwerk ein, oder wechseln Sie über eine Eingabeaufforderung an den Speicherort der Datei setup.exe auf dem lokalen Server. Der Standardspeicherort auf dem Server ist C:\Programme\Microsoft SQL Server\100\Setup Bootstrap\Release.

  2. Geben Sie den folgenden Befehl in das Eingabeaufforderungsfenster ein. Die eckigen Klammern geben optionale Parameter an. Geben Sie den Befehl ohne die eckigen Klammern ein. Wenn Sie Windows Vista als Betriebssystem verwenden und die Benutzerkontensteuerung aktiviert ist, sind für die Ausführung des Setups erhöhte Rechte erforderlich. Die Eingabeaufforderung muss als Administrator ausgeführt werden.

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [/ SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]

    Parametername

    Beschreibung

    /QUIET oder /Q

    Gibt an, dass Setup ohne Benutzeroberfläche ausgeführt wird.

    /ACTION=REBUILDDATABASE

    Gibt an, dass die Systemdatenbanken von Setup neu erstellt werden.

    /INSTANCENAME=InstanceName

    Der Name der Instanz von SQL Server. Geben Sie MSSQLSERVER für die Standardinstanz ein. Geben Sie für eine benannte Instanz den Namen im Format server_name\instance_name ein. 

    /SQLSYSADMINACCOUNTS=accounts

    Gibt die Windows-Gruppen oder die individuellen Konten an, die der festen Serverrolle sysadmin hinzugefügt werden sollen. Wenn Sie mehr als ein Konto angeben, trennen Sie die Konten mit einem Leerzeichen. Geben Sie z. B. BUILTIN\Administrators MyDomain\MyUser ein. Wenn Sie ein Konto angeben, dessen Name ein Leerzeichen enthält, setzen Sie den Kontonamen in Anführungszeichen. Geben Sie beispielsweise "NT AUTHORITY\SYSTEM" ein.

    [ /SAPWD=StrongPassword ]

    Gibt das Kennwort für das SQL Serversa-Konto an. Dieser Parameter ist erforderlich, wenn die Instanz den gemischten Authentifizierungsmodus (SQL Server und Windows-Authentifizierung) verwendet. 

    SicherheitshinweisSicherheitshinweis
    Das sa-Konto ist ein bekanntes SQL Server-Konto und oft das Ziel böswilliger Benutzer. Es ist sehr wichtig, dass Sie ein sicheres Kennwort für die sa-Anmeldung verwenden.

    Geben Sie diesen Parameter für den Windows-Authentifizierungsmodus nicht an.

    [ /SQLCOLLATION=CollationName ]

    Gibt eine neue Sortierung auf Serverebene an. Dieser Parameter ist optional. Wenn keine Sortierung angegeben wird, wird die aktuelle Sortierung des Servers verwendet.

    Wichtiger HinweisWichtig
    Die Änderung der Sortierung auf Serverebene ändert die Sortierung vorhandener Benutzerdatenbanken nicht. Alle neu erstellten Benutzerdatenbanken verwenden die neue Sortierung standardmäßig.

    Weitere Informationen finden Sie unter Festlegen und Ändern der Serversortierung.

  3. Wenn Setup die Neuerstellung der Systemdatenbanken abgeschlossen hat, wechselt es ohne Meldungen zur Eingabeaufforderung zurück. Lesen Sie die Summary.txt-Protokolldatei, um zu überprüfen, ob der Prozess erfolgreich abgeschlossen wurde. Diese Datei befindet sich unter C:\Programme\Microsoft SQL Server\100\Setup Bootstrap\Logs.

Aufgaben nach der Neuerstellung

Nach der Neuerstellung der Datenbank müssen Sie möglicherweise die folgenden zusätzlichen Aufgaben ausführen:

  • Übernehmen Sie das letzte Service Pack und alle geeigneten Hotfixes.

  • Stellen Sie die letzten vollständigen Sicherungen der Datenbanken master, model und msdb wieder her. Weitere Informationen finden Sie unter Überlegungen zum Sichern und Wiederherstellen von Systemdatenbanken.

    Wichtiger HinweisWichtig

    Wenn Sie die Serversortierung geändert haben, stellen Sie die Systemdatenbanken nicht wieder her. Auf diese Weise wird die neue Sortierung durch die vorherige Sortiereinstellung ersetzt.

    Wenn keine Sicherung verfügbar ist, oder wenn die wiederhergestellte Sicherung nicht aktuell ist, erstellen Sie alle fehlenden Einträge neu. Erstellen Sie z. B. alle fehlenden Einträge für die Benutzerdatenbanken, Sicherungsmedien, SQL Server-Anmeldungen, Endpunkte usw. neu. Die beste Möglichkeit zur Neuerstellung der Einträge ist die Ausführung der ursprünglichen Skripts, mit denen sie erstellt wurden. 

SicherheitshinweisSicherheitshinweis

Es wird empfohlen, Sicherungen von Skripts zu erstellen. Auf diese Weise können Sie verhindern, dass sie von nicht autorisierten Personen geändert werden.

  • Sie müssen die Verteilungsdatenbank wiederherstellen, wenn die Instanz von SQL Server als Replikationsverteiler konfiguriert wird. Weitere Informationen finden Sie unter Sichern und Wiederherstellen replizierter Datenbanken.

  • Verschieben Sie die Systemdatenbanken an die Speicherorte, die Sie zuvor aufgezeichnet haben. Weitere Informationen finden Sie unter Verschieben von Systemdatenbanken.

  • Überprüfen Sie, ob die serverweiten Konfigurationswerte zu den Werten passen, die Sie zuvor aufgezeichnet haben.

Vorgehensweise zum Neuerstellen der Ressourcendatenbank

Mithilfe der folgenden Vorgehensweise wird die resource-Systemdatenbank neu erstellt. Wenn Sie die resource-Datenbank neu erstellen, gehen alle Service Packs und Hotfixes verloren und müssen daher noch einmal angewendet werden.

So erstellen Sie die Ressourcensystemdatenbank neu:

  1. Starten Sie auf dem SQL Server 2008-Verteilungsmedium das SQL Server-Setupprogramm (setup.exe).

  2. Klicken Sie im linken Navigationsbereich auf Wartung und dann auf Reparieren.

  3. Es werden Unterstützungsregeln für Setup und Dateiroutinen ausgeführt, um sicherzustellen, dass die erforderlichen Komponenten auf dem System installiert sind und dass der Computer den Setupüberprüfungsregeln entspricht. Klicken Sie zum Fortsetzen auf OK oder auf Installieren.

  4. Wählen Sie auf der Seite Instanz auswählen die zu reparierende Instanz aus, und klicken Sie dann zum Fortsetzen auf Weiter.

  5. Die Reparaturregeln werden ausgeführt, um den Vorgang zu überprüfen. Klicken Sie auf Weiter, um den Vorgang fortzusetzen.

  6. Klicken Sie auf der Seite Bereit zum Reparieren auf Reparieren. Wenn die Seite Abgeschlossen angezeigt wird, wurde der Vorgang abgeschlossen.

Problembehandlung von Fehlern bei der Neuerstellung

Syntaxfehler und andere Laufzeitfehler werden im Eingabeaufforderungsfenster angezeigt. Überprüfen Sie die SETUP-Anweisung auf folgende Syntaxfehler:

  • Fehlender Schrägstrich (/) vor jedem Parameternamen.

  • Fehlendes Gleichheitszeichen (=) zwischen dem Parameternamen und dem Parameterwert.

  • Leerzeichen zwischen dem Parameternamen und dem Gleichheitszeichen.

  • Kommas (,) oder andere Zeichen, die nicht in der Syntax angegeben sind.

Wenn der Neuerstellungsvorgang abgeschlossen ist, überprüfen Sie die SQL Server-Protokolle auf Fehler. Der Standardprotokollspeicherort ist C:\Programme\Microsoft SQL Server\100\Setup Bootstrap\Protokolle. Um die Protokolldatei zu suchen, die die Ergebnisse des Neuerstellungsprozesses enthält, wechseln Sie über eine Eingabeaufforderung zum Ordner "Protokolle", und führen Sie dann findstr /s RebuildDatabase summary*.* aus. Diese Suche führt Sie zu den Protokolldateien, die die Ergebnisse der Neuerstellung der Systemdatenbanken enthalten. Öffnen Sie die Protokolldateien, und überprüfen Sie sie auf relevante Fehlermeldungen.

Siehe auch

Konzepte

Änderungsverlauf

Aktualisierter Inhalt

Die Clusterinformationen wurden überarbeitet, um anzugeben, dass die SQL Server-Ressource in der entsprechenden Clusteranwendungsgruppe vor der Ausführung der Prozedur offline geschaltet werden muss.

Der Definition von /SQLSYSADMINACCOUNTS wurde die Anforderung hinzugefügt, dass Kontonamen, die Leerzeichen enthalten, in Anführungszeichen zu setzen sind.