tmueller
Goto Top

Script zum Kürzen der SharePoint LOG-Files auf SBS 2008

Hallo Zusammen,

ich weiß es ist ein altes Thema, dennoch habe ich mal wieder Probleme damit.

Bekanntermaßen wachsen die LOG-Files von SharePoint ins unermeßliche.
Ich habe nun folgende BAT und die zugehörige Script-Datei.
Aber sie will nicht, wo ist der Fehler?
Könnt Ihr mir bitte helfen?

BAT:

sqlcmd -S \\.\pipe\mssql$microsoft##ssee\sql\query -E -i C:\USERS\TMUELLER\DOCUMENTS\LOGSHRINK.SQL

SQL:

declare @configdb varchar(255);
declare @configdblog varchar(255);
declare @configdbcmd varchar(255);
select @configdb = ‘SharePoint_Config_ad568963-5033-41a9-9033-8fb30239fdbe_%’;
set @configdbcmd = ‘BACKUP database [' + RTRIM(@ConfigDB) + '] to disk=”C:\TEMP\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_ad568963-5033-41a9-9033-8fb30239fdbe%_log’;
set @configdbcmd = ‘use [' + RTRIM(@ConfigDB) + '] DBCC SHRINKFILE([' + RTRIM(@ConfigDB) + '_log],1)’;
execute(@ConfigDBCmd);
set @configdbcmd = ‘BACKUP database [' + RTRIM(@ConfigDB) + '] to disk=”C:\TEMP\AFTER.BKF”’;
execute(@ConfigDBCmd);
go

Er meldet Syntaxfehler.
Wie man sieht bin ich nicht fit auf diesem Gebiet, deswegen bitte ich euch um Hilfe.

MfG TiM

Content-Key: 168521

Url: https://administrator.de/contentid/168521

Printed on: April 25, 2024 at 04:04 o'clock

Member: Logan000
Logan000 Jun 23, 2011 at 09:27:15 (UTC)
Goto Top
Moin Moin

Er meldet Syntaxfehler.
Dann führe doch dein SQL Statement mal im Management Studio als Abfrage aus.
Dort bekommst du dann etwas genauerere Rückmeldungen.

Gruß L.
Member: TMueller
TMueller Jun 23, 2011 at 09:55:35 (UTC)
Goto Top
Das Management Studio habe ich gar nicht installiert.
Wollte ich mir auch gern sparen.
Die Konsole meldet folgendes:

Meldung '102' , Ebene '15' , Status '1' , Server 'SERVER\MICROSOFT##SSEE' , Zeile 4 'Incorrect Syntax near '''.'

MfG TiM.
Member: GuentherH
GuentherH Jun 23, 2011 at 10:53:35 (UTC)
Goto Top
Hallo.

Bekanntermaßen wachsen die LOG-Files von SharePoint ins unermeßliche.

Nur dann, wenn nie ein ordentlichen Backup durchgeführt wird face-wink

Das Management Studio habe ich gar nicht installiert.

Glaube ich nicht. Bei einem SBS 2008 wird diese per Default installiert face-wink

a) Wenn nicht sehr intensiv mit Sharepoint gearbeitet wird, stelle den Wiederherstellungsmodus auf einfach um
b) oder erstelle im Managementstudio ein Backup und kopiere dann das SQL Statement in einen Job - http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-serve ...

LG Günther
Member: Logan000
Logan000 Jun 23, 2011 at 11:09:43 (UTC)
Goto Top
Moin

Meldung '102' , Ebene '15' , Status '1' , Server 'SERVER\MICROSOFT##SSEE' , Zeile 4 'Incorrect Syntax near '''.'
Das klingt als hättest du die falschen Hochkommas verendet.

Kann an deinem Editor oder auch an deiner Tastatur liegen. (oder rwas auch immer)
Fakt ist in TSQL wird ASCII 39 ala Trennzeichen für text verwendet. (Also SHIFT + # auf einer deutschen Tastatur.)

Ich hab die mal im ersten Teil deines Skripts ersetzt:
declare @ConfigDB varchar(255);
declare @ConfigDBLog varchar(255);
declare @ConfigDBCmd varchar(255);
select @ConfigDB = 'SharePoint_Config_ad568963-5033-41a9-9033-8fb30239fdbe_%';  
.....
Probier das Mal aus.

Hier zeigt sich auch wieder wie sinnvoll die ist.

Gruß L.
Member: Outface
Outface Jun 23, 2011 at 11:16:24 (UTC)
Goto Top
Moin,

nach dem Einfügen Deines Codes in das SQL Server 2005 Management Studio Express, das in der Tat im SBS 2008 standardmäßig vorinstalliert geliefert wird, und dem Analysieren der Abfrage kommen folgende Fehlermeldungen:

Meldung 102, Ebene 15, Status 1, Zeile 4
Incorrect syntax near '‘'.
Meldung 102, Ebene 15, Status 1, Zeile 5
Incorrect syntax near '‘'.
Meldung 102, Ebene 15, Status 1, Zeile 5
Incorrect syntax near '”'.
Meldung 102, Ebene 15, Status 1, Zeile 7
Incorrect syntax near '‘'.
Meldung 911, Ebene 16, Status 1, Zeile 7
Could not locate entry in sysdatabases for database '' + RTRIM(@ConfigDB) + ''. No entry found with that name. Make sure that the name is entered correctly.

Nun, was haben die zu bedeuten?
Zuallererst: das Hochkomma ist das Hochkomma. Und kein Accent. Ersetze alle Vorkommen von ´ und ` durch ' und probier es nochmal.
Member: TMueller
TMueller Jun 23, 2011 at 11:22:21 (UTC)
Goto Top
Hallo.

Stimmt natürlich. Das Management Studio ist installiert.

Ich habe mittlerweile das richtige Script und ... es funktioniert.

logshrink.bat:

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

logshrink.sql:

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:\windows\temp\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:\windows\temp\after.bkf''';
execute(@ConfigDBCmd);
go

Auf C: legen, als Admin ausführen und alles wird gut.

Dennoch werde ich Deine Tipps beherzigen.
Danke dafür.

MfG TiM.