SharePoint_Config Database Logfile viel zu Groß

Beim Small Business Server sollte man immer die Festplattenauslastung im Auge behalten.

Des öfteren ist mir nun schon untergekommen, das die SharePoint_Config Datenbank sehr Groß wird.

Hier noch die Original Fehlermeldung von Microsoft:

SBS 2008 BPA Reports that The Windows SharePoint Services configuration databases log file is getting large (currently over 1gb in size)

Aber es ist relativ einfach, das Datenbank Logfile wieder in seine Schranken zu weisen:
declare @ConfigDB varchar(255);
declare @ConfigDBLog varchar(255);
declare @ConfigDBCmd varchar(255);
select @ConfigDB =  name from sys.databases where name like 'SharePoint_Config_%';
set @ConfigDBCmd = 'BACKUP database [' + RTRIM(@ConfigDB) + '] to disk=''C:\_maintenance\tmp\sharepoint_config_before.bkf''';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'use [' + RTRIM(@COnfigDB) + ']';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'BACKUP LOG [' + RTRIM(@ConfigDB) + '] WITH TRUNCATE_ONLY';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'use [' + RTRIM(@COnfigDB) + ']';
execute(@ConfigDBCmd);
select @ConfigDBLog =  name from sys.database_files where name like 'SharePoint_Config%_log';
set @ConfigDBCmd = 'use [' +  RTRIM(@ConfigDB) + '] DBCC SHRINKFILE([' + RTRIM(@ConfigDB) + '_log],1)';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'BACKUP database [' + RTRIM(@ConfigDB) + '] to disk=''C:\_maintenance\tmp\sharepoint_config_after.bkf''';
execute(@ConfigDBCmd);
go

Den Code oben einfach kopieren und per Notepad als sharepoint_config_logshrink.sql im Ordner C:\_maintenance abspeichern. Ich erstelle hier immer ein Unterverzeichnis in C:\ mit dem Namen „_maintenace“. In diesem Ordner gibt es dann noch einmal einen Ordner „tmp“.

Dann öffnen wir die Eingabeaufforderung mit Administrationsrechten (rechte Maustaste -> Als Administrator ausführen) und setzen folgenden Befehl ab:

sqlcmd -S \\.\pipe\mssql$microsoft##ssee\sql\query -E -i c:\_maintenance\sharepoint_config_logshrink.sql

Danach ist die Logfile Datenbank wieder um einiges kleiner :)

Meistens gibt es dann auch das Logfile der Datenbank „ShareWebDb“, welches ebenfalls viel zu Groß ist.

Hier führen wir die gleichen Schritte wie oben aus, nur verwenden wir folgendes SQL Script:
declare @ConfigDB varchar(255);
declare @ConfigDBLog varchar(255);
declare @ConfigDBCmd varchar(255);
select @ConfigDB =  name from sys.databases where name like 'ShareWebDb%';
set @ConfigDBCmd = 'BACKUP database [' + RTRIM(@ConfigDB) + '] to disk=''C:\_maintenance\tmp\webdb_before.bkf''';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'use [' + RTRIM(@COnfigDB) + ']';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'BACKUP LOG [' + RTRIM(@ConfigDB) + '] WITH TRUNCATE_ONLY';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'use [' + RTRIM(@COnfigDB) + ']';
execute(@ConfigDBCmd);
select @ConfigDBLog =  name from sys.database_files where name like 'ShareWebDb_log';
set @ConfigDBCmd = 'use [' +  RTRIM(@ConfigDB) + '] DBCC SHRINKFILE([' + RTRIM(@ConfigDB) + '_log],1)';
execute(@ConfigDBCmd);
set @ConfigDBCmd = 'BACKUP database [' + RTRIM(@ConfigDB) + '] to disk=''C:\_maintenance\tmp\webdb_after.bkf''';
execute(@ConfigDBCmd);
go

Den Code oben einfach kopieren und per Notepad als sharewebdb_logshrink.sql im Ordner C:\_maintenance abspeichern.

Der Befehl für die Eingabeaufforderung lautet dieses mal nun:

sqlcmd -S \\.\pipe\mssql$microsoft##ssee\sql\query -E -i c:\_maintenance\sharewebdb_logshrink.sql

Danach ist auch diese Datenbank wieder auf eine normale Größe geschrumpft.

Share

6 Kommentare bisher »

  1. Martin Rienesl sagt

    am 2. November 2012 @ 18:32

    man sollte noch darauf hinweisen, daß die Scripts vor ausführung noch unbedingt an die jeweiligen Datenbanken angepasst werden müssen!!!

  2. Mike Harder sagt

    am 17. Dezember 2012 @ 01:06

    Es geht hier ja eigentlich um die Systemdatenbanken vom SBS 2008 – und hier sind die Datenbanken ja immer im Standard. In den beiden Scripten wird ja der DB Namen dynamisch ausgelesen:

    select @ConfigDB = name from sys.databases where name like ‘SharePoint_Config_%’;
    select @ConfigDB = name from sys.databases where name like ‘ShareWebDb%’;

    Die Datenbanken können nicht anders heißen – sonst wäre es keine SBS Installation 😉

    Sollen die Scripte für einen Stand-alone SharePoint Server angewendet werden – so heißen die DB’s vermutlich ähnlich – aber müssen dann an den SQL Server bzw. die SQL-Instanz angepasst werden..

  3. Wasi sagt

    am 11. Juni 2013 @ 09:21

    Oder man führt einfach nur das MicrosoftFixit50682.msi aus

  4. Mike Harder sagt

    am 11. Juni 2013 @ 18:47

    Das ist natürlich auch eine Möglichkeit :) Wobei ich sagen muss, das es mir meist lieber ist, die Änderungen manuell durchzuführen, da ich hier dann genau sehe, WAS ich mache – die MSI Datei kann ja ggf. noch ein paar Daten sammeln und wer weiß wohin „zurückmelden“ :)

  5. Andreas sagt

    am 5. Februar 2015 @ 12:28

    Bei mir funktioniert das leider gar nicht.
    Ich vermute, es liegt an den Hochkommata und Apostrophen – leider ist mein SQL etwas eingerostet…

  6. Mike Harder sagt

    am 9. Juni 2015 @ 13:49

    Habe nun mal die Formatierung angepasst – nun passen die Hochkommata und Apostrophen.

Komentar RSS · TrackBack URI

Hinterlasse einen Kommentar

Name: (erforderlich)

eMail: (erforderlich)

Website:

Kommentar: