Fehler nach Verschieben der SQL-Datenbanken im SCCM
In einem Kundenprojekt ist den CONET-Fachleuten ein besonderes Problem aufgefallen, dessen Lösung wir Ihnen nicht vorenthalten wollen:
Ausgangslage:
1. SQL Server 2012 installiert
2. System Center Configuration Manager 2012 R2 installiert
3. Neue Partition erstellt und Freigaben eingerichtet
4. SCCM Service stopped (!Wichtig!)
5. Datenbanken ausgehangen, verschoben, neu eingehangen in dem SQL Server
Nach dem Aushängen und Einhängen der Datenbanken trat zunächst kein offensichtlicher Fehler auf: Der Fehler zeigte sich beim Kunden erst einen Tag später.
Die entsprechende Fehlermeldung erscheint im LogFile:
objreplmgr.log (im SMS-Verzeichnis)
Hier ist ersichtlich, dass der SCCM Server keine Verbindung mehr zur SQL-Datenbank herstellen kann.
Der Fehler ist auch im SCCM 2012 R2 sichtbar:
Der Error Code ist 620 und die Beschreibung lautet:
Microsoft SQL Server Reported SQL Message 50000, Severity 16: *** Unknown SQL Error!
Grund:
Der Grund liegt darin, dass bei der Default Installation der SQL TRUSTWORTHY auf “ON” steht. Wenn man aber dann die Datenbank aushängt und neu einhängt, wechselt er automatisch auf “Off”.
Lösung:
Die Berechtigungen lassen sich manuell ändern. Geben Sie dazu folgende SQL-Abfragen in Ihrer Datenbank an:
1. ALTER DATABASE <ConfigMgr DB> SET TRUSTWORTHY ON
2. EXEC sp_changedbowner ‘sa’
3. Nun bitte üperprüfen, ob die Leseberechtigungen gesetzt sind.
SQL Abfrage starten: DBCC USEROPTIONS
Sollte das nicht der Fall sein oder ein anderer Wert angezeigt werden,
dann Folgendes eingeben:
4. ALTER DATABASE <ConfigMgr DB>
SET ALLOW_SNAPSHOT_ISOLATION ON
5. ALTER DATABASE <ConfigMgr DB>
SET READ_COMMITTED_SNAPSHOT ON
6. SCCM Service neu starten und dann SCCM-Konsole öffnen
7. Problem sollte nun behoben sein
In den bislang betreuten Fällen hat dieses Vorgehen stets dafür gesorgt, das Problem zu beheben.
Dieses Skript bzw. diese Vorgehensweise wurde vom Autor auf den hier beschriebenen Plattformen unter den angegebenen Rahmenbedingungen erfolgreich getestet. Wenn Sie eigene Erfahrungen oder Fragen zum Einsatz haben, freuen wir uns über Ihre Kommentare. Haftungsausschluss: Die hier beschriebenen Scripts und Vorgehensweisen werden im gegenwärtigen Zustand und ohne jegliche Gewährleistung zur Verfügung gestellt. Alle Risiken, die aus der Verwendung oder Ausführung der hier beschriebenen Scripts und Vorgehensweisen entstehen, unterliegen vollständig Ihrer Verantwortung. In keinem Fall können CONET, unsere Autoren oder andere an der Bereitstellung der Inhalte Beteiligte im Zusammenhang mit den hier beschriebenen Scripts und Vorgehensweisen irgendwelchen Support leisten, noch für irgendwelche Schäden haftbar gemacht werden (einschließlich und ohne Einschränkung aller Schäden durch Geschäftsverluste, Geschäftsausfälle, den Verlust von Geschäftsinformationen oder andere finanzielle Verluste), die aus der Verwendung oder der Nichteignung zur Verwendung der hier beschriebenen Scripts und Vorgehensweisen entstehen.
Über den Autor
Dirk Machnitzke arbeitete als IT-Consultant bei CONET und unterstützte im Umfeld von Microsoft-Betriebsumgebungen die Planung, Beratung, Umsetzung und das Management von IT-Architekturlösungen auf Basis von Microsoft-Produkten.