Nach langer Laufzeit kann sich auf einem SBS 2008 die Monitoring Datenbank auf eine beträchtliche Größe aufblähen. Dies führt u.a. zu langen Ladezeiten oder Fehlern der SBS Konsole.
Spätestens wenn die Datenbank ("SBSMonitoring.mdf" und "SBSMonitoring_log.LDF") eine Größe von 4 GB erreicht hat (SQL Express Maximum), sollte man handeln, da das Monitoring seinen Dienst einstellt.
zur Lösung des Problem kann ein Wartungsskript ausgeführt werden.
Dies entfernt (unnötige) Datensätze, die älter als 90 Tage sind, aus der Datenbank.
Download (Microsoft):
http://cid-d5fe25afb6c3615f.skydrive.live.com/self.aspx/.Public/updateSBSMonitoring.sql
Ausführung des Skripts:
sqlcmd -S %computername%\SBSMonitoring -E -i c:\path\to\updateSBSMonitoring.sql
Dieser Vorgang kann bei einer großen Datenbank mehrere Minuten bis Stunden dauern.
Schließlich sollte im Erfolgsfall erscheinen:
Changed database context to 'SBSMonitoring'
(1 rows affected)
Nun kann die Datenbank verkleinert werden:
- SQL Management Studio starten
- Mit der Instanz ".\SBSMONITORING" über "Windows Authentifizierung" verbinden
- Die Datenbank "SBSMonitoring" auswählen
- rechte Maustaste - Aufgaben - Verkleinern - Datenbank
Dies sollte nochmal mehrere Minuten benötigen.
Danach sollte sich die Größe der Datenbank deutlich (in den MB Bereich) reduziert haben.
Super. Hat bestens Funktioniert. Danke für den Tipp.
AntwortenLöschenWir haben das Wartungsskript an einem SBS 2011 ausprobiert, hier hatte die sbsmonitoring.mdf schon die 10240 MB Größe erreicht, leider läuft das Skript nicht durch, es kommt die selbe Fehlermeldung mit Ereignis ID 1105, wie in der Ereignisanzeige sonst auch. Gibt es sonst noch eine Möglichkeit die Datenbank zu verkleinern?
AntwortenLöschenIch habe die Erfahrung gemacht, dass man bei extrem großer DB bzw. stark ausgelasteten Servern die Schritte mehrmals wiederholen muss, da es zu Timeouts kommen kann.
AntwortenLöschenAlso nach Skript-Lauf, DB verkleinern, Größe checken, nochmal Skript laufen lassen, nochmal verkleinern, usw...
Bei mir wird die SBSMonitoring_log so groß, dass die Festplatte voll läuft.
AntwortenLöschenKann ich das irgendwie umgehen?
Das Transaktionsprotokoll kann wie hier beschrieben verkleinert werden:
Löschenhttp://www.faq-o-matic.net/2014/08/27/sql-server-transaktionsprotokoll-verkleinern/
der download link ist nicht mehr vorhanden. bitte aktualisieren oder hier rein posten. danke!
AntwortenLöschenBei mir funktioniert der Link nach wie vor.
LöschenTrotzdem für alle Fälle hier das Skript:
USE SBSMonitoring
UPDATE [SBSMonitoring].[dbo].[Settings] SET [Value] = 30 WHERE [Name] = 'CleanupPeriod'
EXECUTE [SBSMonitoring].[dbo].[CleanupDatabase]
CREATE NONCLUSTERED INDEX [_SBS_BLOG_index_WMICollectedData_5_K4_K1_K5_2] ON [dbo].[WMICollectedData] ([WMIPropertyID] ASC,[ID] ASC, [WMIInstanceID] ASC) INCLUDE ( [DateCollected]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
CREATE NONCLUSTERED INDEX [_SBS_BLOG_index_Reports_5_K2_K3_1_4] ON [dbo].[Reports] ([ConfigurationID] ASC, [DateGenerated] ASC) INCLUDE ([ID], [Data]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
CREATE NONCLUSTERED INDEX [_SBS_BLOG_index_WMICollectedData_5_K2D_K4_K5] ON [dbo].[WMICollectedData] ([DateCollected] DESC, [WMIPropertyID] ASC, [WMIInstanceID] ASC) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
CREATE INDEX [_SBS_BLOG_index_Alerts_8_7_] ON [SBSMonitoring].[dbo].[Alerts] ([DefinitionID], [ComputerID]) INCLUDE ([DateOccured])
CREATE STATISTICS [_SBS_BLOG_stat_WMICollectedData_5_1_4] ON [dbo].[WMICollectedData]([WMIInstanceID], [ID], [WMIPropertyID])
CREATE STATISTICS [_SBS_BLOG_dta_stat_WMICollectedData_4_1_5_2_3] ON [dbo].[WMICollectedData]([WMIPropertyID], [ID], [WMIInstanceID], [DateCollected], [StatusID])
CREATE STATISTICS [_SBS_BLOG_dta_stat_WMICollectedData_5_1_3_4] ON [dbo].[WMICollectedData]([WMIInstanceID], [ID], [StatusID], [WMIPropertyID])
CREATE STATISTICS [_SBS_BLOG_dta_stat_WMICollectedData_5_4_2] ON [dbo].[WMICollectedData]([WMIInstanceID], [WMIPropertyID], [DateCollected])
CREATE STATISTICS [_SBS_BLOG_stat_WMICollectedData_2_1_5] ON [dbo].[WMICollectedData]([DateCollected], [ID], [WMIInstanceID])
CREATE STATISTICS [_SBS_BLOG_stat_WMICollectedData_1_3_5_2] ON [dbo].[WMICollectedData]([ID], [StatusID], [WMIInstanceID], [DateCollected])
Hallo,
AntwortenLöschenwie groß kann die LOG-Datei werden, wenn das Script durchläuft? Meine DB ist auch 10GB groß und ich habe noch 60GB frei.
Gruß
Michael