Zum Inhalt wechseln


Foto

Sharepoint Datenbank Frage zu log.ldf File


  • Bitte melde dich an um zu Antworten
19 Antworten in diesem Thema

#1 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 21. Juli 2008 - 09:10

Hallo !

Habe auf einen 2k3-Standart Server einen Sharepoint Service 3.0 laufen.
Dieses Objekt ist derzeit im Teststatus. Ich arbeite mit diesem Portal testweise bevor ich es produktiv einsetzen möchte.

Die Datenbank ist die normal (kleine) Datenbank die der Service 3.0 mitbringt. Die Grenze von 4 GB ist mir bekannt :-)

Jetzt hab ich ein File unter Windows\SYSMSI\SSEE\MSSQL.2005\MSSQL\DATA
das sich so nennt: WSS_Content_log.LDF

Laut Info-Leiste wird mir mitgeteilt das es eine Log-Datei ist.
Meine Daten-Datei (wss_content.mdf) ist 3 GB groß. Die Log-Datei ist 6 GB groß.

Kann man die Log-Datei einstellen, was abgespeichert etc wird ?!

Wer kann helfen ?

Gruß Michael
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#2 Lian

Lian

    Moderator

  • 19.990 Beiträge

 

Geschrieben 21. Juli 2008 - 09:25

Hallo,

erstmal vorneweg: SQL Log Files sind ähnlich wie Exchange Log Files Transaktionslogs, also keine reinen Informationslogdateien.
Diese Transaktionslogs sind für die interne Datenbankverwaltung notwendig.

Folgende Möglichkeiten hast Du das Transaktionslog zu beeinflussen:
How to stop the transaction log of a SQL Server database from growing unexpectedly

Das allerdings afaik nur auf einem "richtigen" MS SQL Server.
–––
Microsoft MVP [Cloud and Datacenter Management - High Availability]

#3 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 21. Juli 2008 - 09:37

Moin,

Folgende Möglichkeiten hast Du das Transaktionslog zu beeinflussen:


für eine Datenbank, die nur per Vollbackup gesichert wird (dürfte auf die meisten zutreffen), ist dabei vor allem der Punkt "Change the recovery model." relevant. Dadurch bleibt das Log stets überschaubar.

Bleibt man beim standardmäßigen "Full recovery model", muss man zwingend regelmäßig das Log sichern (Backup) - zusätzlich (!) zur Vollsicherung. Sonst läuft die Platte irgendwann voll.

Das allerdings afaik nur auf einem "richtigen" MS SQL Server


Nö, das kann der kleine auch. Dem fehlen allerdings die Verwaltungstools. Mit folgendem Kommando kann man das erledigen:

ALTER DATABASE NameDerDatenbank SET RECOVERY SIMPLE

Das geht entweder über einen Kommandozeilenclient wie isql oder sqlcmd (je nach Version) oder halbgrafisch über einen Miniclient wie Ofarim:

faq-o-matic.net » Ofarim Free: SQL-Client

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#4 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 21. Juli 2008 - 11:31

für eine Datenbank, die nur per Vollbackup gesichert wird (dürfte auf die meisten zutreffen), ist dabei vor allem der Punkt "Change the recovery model." relevant. Dadurch bleibt das Log stets überschaubar.


Vollbackup ? ich mach das über den stsadm Befehl (stsadm -o backup -url <website> -filename <speicherort>

Kann man das darunter verstehen ?

ALTER DATABASE NameDerDatenbank SET RECOVERY SIMPLE


was mach ich da genau ? beschreibe ich damit das keine "Log-Dateien" mehr geschrieben werden ?


Im Vorfeld schon mal danke!

Gruß Michael
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#5 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 21. Juli 2008 - 11:54

Moin,

Kann man das darunter verstehen ?


nein. Ich rede von einem Backup der SQL-Datenbanken.

was mach ich da genau ? beschreibe ich damit das keine "Log-Dateien" mehr geschrieben werden ?


Nein, du stellst ein, dass die Logdateien (verkürzt gesagt) im laufenden Betrieb überschrieben werden können. In der Normaleinstellung werden neue Einträge immer hinten angehängt, bis eine explizite Sicherung des Logs erfolgt. Der "Simple"-Modus überschreibt alte Einträge innerhalb der Datei.

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#6 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 21. Juli 2008 - 12:00

Nein, du stellst ein, dass die Logdateien (verkürzt gesagt) im laufenden Betrieb überschrieben werden können. In der Normaleinstellung werden neue Einträge immer hinten angehängt, bis eine explizite Sicherung des Logs erfolgt. Der "Simple"-Modus überschreibt alte Einträge innerhalb der Datei.


ok gut. Wann speichert er die Logdateien eigentlich immer ? (finde für den Sharepoint Service 3.0 nichts genaues, wann das stattfindet.

Macht er das automatisch ? und sobald so eine Sicherung automatisch erfolgt, hab ich dann statt 6 GB nur noch (ca) 100mb ? weil das neue überschreibt das alte Log File ?

Edit: bzw. wo soll man den Befehl eingeben ? unter C:\windows\sysmsi\myssql.2005\mysql ??? oder mit diesem Verwaltungstool das du geschrieben hast ?
sri für meine etwas "du..." Fragen, aber ich bin da noch nicht so der "Checker" :-)

Gruß Michael
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#7 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 21. Juli 2008 - 12:09

Die Logdateien werden kontinuierlich geschrieben: Immer wenn etwas an der DB geändert wird, schreibt der Server das erst ins Log, dann ändert er die Daten im RAM. Die Änderung in der DB-Datei erfolgt nur "von Zeit zu Zeit".

Das sorgt für Konsistenz auch bei Serverausfällen (alle erfolgten Änderungen können aus dem Log wiederhergestellt werden) und erzeugt gleichzeitig eine hohe Performance (weil die "große" DB-Datei nur "selten" angefasst wird).

Daher ist das Log auch zwingend erforderlich und steht immer im Zugriff. Die Frage ist, ob Änderungen, die in die DB-Datei geschrieben wurden, noch im Log bleiben. Bei "Simple" bleiben sie nicht, bei "Full" bleiben sie (darauf könnte man dann Backupstrategien aufbauen).

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#8 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 21. Juli 2008 - 12:19

ok gut soweit verstanden :-)
jetzt nur die Frage, brauche ich so ein SQL-Tool oder kann ich es ganz "normal" auf der Kommandozeile eingeben ?

Die Frage ist sicherlich, muss die Log-Datei "full" gesichert werden oder nur simple...ich mein, ich hab ca. 3GB Daten in dem Sharepoint und dieser läuft seit April 08 und hat schon mehr als das doppelte als Log-Datei...schon heftig.

Gruß Michael
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#9 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 21. Juli 2008 - 13:23

Äh - das habe ich doch schon beantwortet.

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#10 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 21. Juli 2008 - 19:48

Servus!

sri stimmt...aber dennoch wieder ein Problem, hab mir das omatic runtergeladen und gestartet, meine Daten eingegeben (SQL-Server, Servername, und dann eben in dem Textfeld den Befehl eingegeben, den du mir geschrieben hast.)

Leider sagt er immer, der Befehl sei nicht bekannt, bzw. die Verbindung zum Server nicht aktiv. Nur der Server läuft auf der gleichen Maschine.

Gibt es keine Möglichkeit das mit sagen wir mal Boardmittel einzugrenzen, dass das File nicht mehr anwächst ?
Würde ich es löschen (sri kenn mich mit den Transactions-Packs nicht so aus) würde ich mehr kaputt wie gut machen oder ?
(Mein Gedankengang wäre, File löschen und dann würde ein neues wieder angelegt werden.) ???

Gruß Michael
PS: für SQL sollte ich mir mal ein Buch zulegen...ich stoss hierbei arg an meine Grenzen...ist mir noch recht suspekt :-(

(dennoch vielen DANK schon mal....)
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#11 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 21. Juli 2008 - 19:54

Es wäre am besten, wenn du nicht irgendwelche unbedachten Sachen machst. Manipulationen an den Datenbankdateien sind eine hervorragende Methode, die Datenbank unbrauchbar zu machen.

Wie ich dir auch schon schrieb, gibt es - je nach SQL-Server-Version - das Kommandozeilentool isqlw bzw. osqlw oder sqlcmd. Die rufst du in einem CMD-Fenster auf. Mit /? erhältst du wie bei jedem CMD-Tool die Hilfe. Damit kannst du ein SQL-Kommando ausführen.

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#12 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 21. Juli 2008 - 20:12

Hi!

das war die Idee eines Naiven :-) wär auch zu schön gewesen, wenn es so einfach funktioniert :-) (wobei dann kann es auch ein jeder)

ich probiers mal mit den Programmen aus, die du geschrieben hast, dennoch vielen Dank für deine Ausdauer :-)


Gruß Michael
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#13 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 22. Juli 2008 - 21:05

Hi !

ich wieder :-) so jetza, ich hab mir die Software Microsoft SQL Server Management Studio Express runtergeladen und habe mich so angemeldet:

\\.\pipe\mssql$microsoft##ssee\sql\query

und bin auf die entsprechende Datenbank gegangen und habe dann eine Abfrage gestartet => alter database wss_content set recovery simple

wss_content => Name der Datenbank.

Diese Abfrage wurde mit Erfolg abgeschlossen...stand jedenfalls in der Statusleiste.

Habe ich es so richtig gemacht ? bzw. wann merke ich, dass er jetzt nicht mehr die Files hinten dran hängt sondern immer wieder das Transaction-File neu schreibt ?

Vielen Dank wieder mal :-)

Gruß Michael
PS: Gut N8!
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#14 calibra22

calibra22

    Board Veteran

  • 778 Beiträge

 

Geschrieben 28. Juli 2008 - 11:11

Hi!

ich mal wieder :-)
ich habe jetzt das abgeändert wie es oben steht, wird das log.ldf-File nicht mehr kleiner ?

Ich seh dass er zwar das File nochmals beschrieben hat, aber das File wurde nicht größer, aber auch nicht kleiner ?!

Bleibt das File so ? bzw. erst mit Neuinstallation wird das dann besser ?


Gruß Michael
PS: Vielen Dank schon mal im Voraus
Alles Gelingen hat sein Geheimnis, alles Misslingen seine Gründe!
-------------------------------------------------

#15 NilsK

NilsK

    Expert Member

  • 12.347 Beiträge

 

Geschrieben 28. Juli 2008 - 11:39

Moin,

nein, SQL Server verkleinert von selbst keine Dateien. Das tut man manuell. Folgender Artikel sollte dir dabei helfen:

How to use the DBCC SHRINKFILE statement to shrink the transaction log file in SQL Server 2005

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!