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