Freitag, 20. April 2012

MSDB beim MSSQL reparieren

als gerade ein Kollege anrief das die DTS Pakete unserers SQL Server 2000 Clusters Probleme machen mußte ich feststellen das MCDBA Kenntnisse mangels Nutzung weg sind. Es stellte sich heraus das die MSDB Datenbank korrupt war was dazu führte das Jobs abstürzten. Wir hatten zwar die Datenbank immer brav gesichert aber auch die Sicherung war korrupt gesichert worden. Unschönerweise hatte sich der SQL Server nicht per Mail melden können weil vergessen wurde bei einer Exchangemigration das MAPI Profil des SQL Agents zu aktualisieren. Also galt wieder das Motto: "Du hast keine Chance! Nutze Sie!"
In einem MSDN Forum bin ich dann auf die richtige Lösung gestoßen. Wir melden uns mit der osql Konsole am Server an.


Use msdb


Go

sp_dboption ‘msdb’, ’single_user’, ‘true’

GO

DBCC CHECKDB(‘msdb’, REPAIR_REBUILD)

go

sp_dboption ‘msdb’, ’single_user’, ‘false’
natürlich war unsere Datenbank so kaputt das nur noch der Parameter REPAIR_ALLOW_DATA_LOSS
half. Falls der Server rummeckert das man die DB nicht in den Einzelbenutzermodus setzen kann müssen andere User und Dienste die die MSDB nutzen hart über Verwaltung/Aktuelle Aktivität getrennt werden.




Keine Kommentare: