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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: Logan000
Logan000 23.06.2011 um 11:27:15 Uhr
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.
Mitglied: TMueller
TMueller 23.06.2011 um 11:55:35 Uhr
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.
Mitglied: GuentherH
GuentherH 23.06.2011 um 12:53:35 Uhr
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
Mitglied: Logan000
Logan000 23.06.2011 um 13:09:43 Uhr
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.
Mitglied: Outface
Outface 23.06.2011 um 13:16:24 Uhr
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.
Mitglied: TMueller
TMueller 23.06.2011 um 13:22:21 Uhr
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.