Avatar billede steen Nybegynder
12. februar 2004 - 09:18 Der er 6 kommentarer og
1 løsning

Transaktionslog på 8,7 Gb.

Hej exp.

Jeg har en db, hvis datafil fylder 8 Mb. men transaktionsloggen fylder 8,7 Gb. Det er jo et problem. Hele databasen kører med standardsettings....

Jeg har fundet fluebenet "Auto shrink" men er det den rigtige vej, (og hvorfor sker der ikke noget med størrelsen når jeg har aktiveret den) og hvad har det af konsekvenser, og hvorfor løber den egentlig løbsk. Har også en anden db der er væsentlig større, men der holder transaktionsloggen sig på en pæn størrelse.

/Steen
Avatar billede trer Nybegynder
12. februar 2004 - 09:22 #1
Svaret er nej. Hold dig fra Autoshrink - aldrig slå det til.

"Problemet" er at du kører med fuld recovery model og aldrig har taget en fuld database backup inkl. en log backup.

Det der sker er, at alle transaktioner lagres i logfilen og den tømmes først når du tager en backup.  Det er rigtig smart, fordi du så kan genskabe en database udfra backuppen til et vilkårligt tidspunkt - ikke bare til det tidspunkt hvor du har taget en backup.

Hvis du ikke har behov for at kunne lave point-in-time recover som det hedder, så skal du sætte recovery model til simple. Ellers skal du blot sørge for, at du tager backup fx hver dag.
Avatar billede trer Nybegynder
12. februar 2004 - 09:23 #2
Og bagefter skal du shrinke database loggen.  Det gør du ved at højre klikke på databasen, vælge all tasks og shrink.
Avatar billede arne_v Ekspert
12. februar 2004 - 09:28 #3
Dovne personer kunne finde på at enable "truncate log on checkpoint".
Avatar billede carpediem Nybegynder
12. februar 2004 - 09:29 #4
Jeg vil ikke give trer ret.
Hvis du ikke har brug for pit recovery, så kan du blot sætte din database til simple recovery model, og slå autoshrink til. Hvis ikke du slår autoshrink til, vil logfilen aldrig blive mindre, medmindre du kører en backup af loggen, hvor du truncater den, for derefter at køre en shrink på logfilen.

Hvor stor logfilen bliver, har intet at gøre med hvor stor databasen er, men derimod hvor meget aktivitet der er på databasen. Dvs, hver gang du laver en insert, update eller delete bliver der tilføjet en record til loggen.

Så du kan sagtens have en kæmpedatabase, med en lille logfil, hvis du kun bruger databasen til at trække data ud fra.
Avatar billede trer Nybegynder
12. februar 2004 - 09:38 #5
truncate log on checkpoint er det samme som simple recovery model.

Autoshrink fungerer som carpediem siger, problem er bare, at mens den shrinker vil databasen stort set ikke kunne tilgås, det samme når den vokser. Effekten er præcis den samme som når Windows udvider sin swap fil - alt andet standser.

Når man har simple recovery skal der kun være plads til én transaktion i loggen - og så er det væsentligt bedre blot at sætte en fast størrelse på logfilen.
Avatar billede trer Nybegynder
12. februar 2004 - 09:41 #6
Du kan i øvrigt ikke køre en logbackup på en database der er i simple recovery model.
Avatar billede steen Nybegynder
12. februar 2004 - 09:44 #7
Perfekt.... det kører nu ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester