Gå til innhold

Slette transaction log mssql server


Anbefalte innlegg

Videoannonse
Annonse

Nei. Transaksjonsloggen er helt livsnødvendig for SQL Server. Hvis du ikke vil ta backup av den så kan du sette databasens recovery model til Simple. Da vil transaksjonsloggen i prinsippet kun inneholde informasjon som behøves for rollback/commit og undo/redo informasjon ved recovery når SQL Server startes opp. (les mer i BOL hva dette innebærer).

Endret av kaffenils
Lenke til kommentar

Men jeg kan jo sette en maksstørrelse på denne. Hvor stor bør den være? Nå er den på 2.3 GB for en db på 23MB, så det virker litt digert... Nå står den på "File growthg by percent: 10%", som da vil være 10% av hva? og "Maximum file size: Unrestricted"

Lenke til kommentar

Ja, du kan sette en maksstørrelse, men når loggen når denne størrelsen og ikke kan utvides mer så kan du heller gjøre endringer i databasen.

 

Grunnen til at den er diger er jo at alle transaksjoner logges. Sett recovery model til Simple, reduser filstørrelsen til f.eks. 50MB og se om den fortsatt vokser i det uendelige.

 

Du kan få en beskrivelse over hva årsaken til at deler (virtuelle log filer, se BOL: virtual logs) i transaksjonsloggen ikke ikke gjenbrukes ved å liste kolonnen log_reuse_wait_desc i viewet sys.databases.

 

Ellers så kan du google DBCC LOGINFO (udokumentert DBCC kommando) for å få detaljert over virtuelle log filer i en fysisk transaksjonslogg.

Lenke til kommentar
Så jeg kan sette Maximum file size til f.eks 50MB, selv om filen pr i dag er på 2300MB?

 

Har satt den til Simple i alle fall.

 

Ikke sett maks størrelse. Lag heller en jobb som rutinemessig shrink'er filen til en størrelse du har valg. F.eks. 1Gb.

 

Ved å sette maks størrelse vil du kunne oppleve at databasen din plutselig blir "read-only" på grunn av at transaksjonsloggen er full.

Lenke til kommentar
Så jeg kan sette Maximum file size til f.eks 50MB, selv om filen pr i dag er på 2300MB?

 

Har satt den til Simple i alle fall.

 

Ikke sett maks størrelse. Lag heller en jobb som rutinemessig shrink'er filen til en størrelse du har valg. F.eks. 1Gb.

 

Ved å sette maks størrelse vil du kunne oppleve at databasen din plutselig blir "read-only" på grunn av at transaksjonsloggen er full.

Er det en ting du ikke skal gjøre, unntatt i enkelte svært spesielle tilfeller, så er det i hvert fall det du anbefaler her. Man skal IKKE ha en jobb som regelmessig shrinker loggfilen, men snarere sørge for at loggfilen er stor nok og således ikke trenger å vokse, og ei heller krympes. Unntaket vil typisk være tilfeller hvor det loggfilene vokser seg svært store i enkelte "spesielle" tilfeller, som f eks årlig registrering/innlesing av data.

Lenke til kommentar
Så jeg kan sette Maximum file size til f.eks 50MB, selv om filen pr i dag er på 2300MB?

 

Har satt den til Simple i alle fall.

 

Ikke sett maks størrelse. Lag heller en jobb som rutinemessig shrink'er filen til en størrelse du har valg. F.eks. 1Gb.

 

Ved å sette maks størrelse vil du kunne oppleve at databasen din plutselig blir "read-only" på grunn av at transaksjonsloggen er full.

Er det en ting du ikke skal gjøre, unntatt i enkelte svært spesielle tilfeller, så er det i hvert fall det du anbefaler her. Man skal IKKE ha en jobb som regelmessig shrinker loggfilen, men snarere sørge for at loggfilen er stor nok og således ikke trenger å vokse, og ei heller krympes. Unntaket vil typisk være tilfeller hvor det loggfilene vokser seg svært store i enkelte "spesielle" tilfeller, som f eks årlig registrering/innlesing av data.

 

Enig i det, men 1GB burde i de fleste tilfeller være stort nok så lenge han bruker Simple Recovery Model :)

Lenke til kommentar
Men dere mener altså at bare ved å sette den til Simple, så vil filen holde seg relativt liten?

 

Ja. Men vær klar over at aktive transaksjoner i en virtuell log medfører at denne (den virtuelle loggen) ikke kan gjenbrukes.

 

Vær også klar over at du ikke bør sette for liten "size" og "growth increment" på log filen da dette kan påvirke ytelsen negativt ved at den fysiske log filen da vil endre opp med mange små virtuelle log filer.

 

Fra "Transaction log physical architecture" i BOL:

The only time virtual log files affect system performance is if the log files are defined by small size and growth_increment values. If these log files grow to a large size because of many small increments, they will have lots of virtual log files. This can slow down database startup and also log backup and restore operations. We recommend that you assign log files a size value close to the final size required, and also have a relatively large growth_increment value
Lenke til kommentar
Kan jeg uten problemer bruke valget "Auto shrink" under "Options" for databasen?

 

Det vil gå ut over ytelsen både når filene krympes og når de deretter må utvides igjen. Så får du selv bestemme deg for (og teste) om denne ytelsesredusksjonen er akseptabel.

Lenke til kommentar
Hvis recovery model er Simple så skal virtuelle log filer som ikke er aktive gjenbrukes, og log filen vil derfor ikke vokse.

Med mindre det kommer en ekstremt stor transaksjon, men det er jo ikke akkurat noe problem her etter det jeg har forstått.

Lenke til kommentar
  • 2 uker senere...

Vel, jeg synes nå ikke det er greit å ikke gjøre jobben skikkelig. Hvis du har råd til å forkaste transaksjonsloggen, så skal recovry model være satt til simple. SÅ kan du krympe loggen, til en størrelse som er så stor at du ikke forventer at loggen trenger å vokse.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...