Avatar billede dougheffernan Nybegynder
06. januar 2006 - 09:15 Der er 19 kommentarer og
1 løsning

Truncate en transaktionslog

Vores SQL Server kører Full recovery (ellers resulterer backup jobbene i en fejl-mail!), men nu er serveren ved at være lidt i underskud, harddisk-mæssigt. Jeg har fundet frem til at det skulle være muligt at bruge Truncate i forbindelse med en backup, hvorved den inaktive portion af transaktionsloggen slettes, men hvordan gør man det?
Avatar billede arne_v Ekspert
06. januar 2006 - 09:19 #1
hvis du laver en sqlserver backup af log så kan den jo genbruges

der findes også en grim option til at trunkere uden en backup, men ...
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 09:38 #2
Det jeg mener er at der f.eks. i BOL står en masse ord, men ingen syntax, som f.eks.
Kør stored procedure TRUNCATE med parameteren Transactionlog = whatever-loggen-nu-hedder.

Jeg aner ikke hvad jeg skal gøre/skrive/køre for at truncate transaktionsloggen! :(
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 09:40 #3
Eller som i KB873235:

Truncate the inactive transactions in your transaction log
When the transaction logs grow to an unacceptable limit, you must immediately back up your transaction log file. While the backup of your transaction log files is created, SQL Server automatically truncates the inactive part of the transaction log. The inactive part of the transaction log file contains the completed transactions, and therefore, the transaction log file is no longer used by SQL Server during the recovery process. SQL Server reuses this truncated, inactive space in the transaction log instead of permitting the transaction log to continue to grow and to use more space.

For additional information about the issues that you must consider when you make a backup of the transaction logs and the issues that you must consider when you restore the transaction log backups, visit the following topics in SQL Server Books Online:• Transaction log backups
• Transaction log backup and restore
You can also delete the inactive transactions from a transaction log file by using the Truncate method. For additional information about truncating the transaction logs, see the "Truncating the transaction log" topic in SQL Server Books Online.


Det siger mig ikke en ¤%#& om hvordan jeg frigiver pladsen...
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 09:43 #4
Når man nu ikke kan få det automatisk, så havde det været smart med en
Højreklik på database, vælg egenskaber, fanen Transaction Log. Klik på knappen Truncate! :)
Avatar billede arne_v Ekspert
06. januar 2006 - 09:50 #5
jo den siger nemlig præcis hvordan - når du laver backup bliver
pladsen frigivet til genbrug

backup = sqlserver backup
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 09:59 #6
Hmmm....så det vil sige at når den daglige backup kører, så vil den automatisk truncate transaktionsloggene for de databaser der ligger i jobben (user databases)?
Så forstår jeg ikke at en af transaktionsloggerne for en 1.2 GB database bliver VED med at fylde 1 GB og der er 2 af dem! (en for i går og en for i forgårs)!
Avatar billede arne_v Ekspert
06. januar 2006 - 10:01 #7
nej backuppen vil gøre at transaktions loggen kan genbruges (intern trunkering)

hvis du decideret vil krympe filen (ekstern trunkering) så mener jeg at du skal bruge
en dbcc kommando
Avatar billede arne_v Ekspert
06. januar 2006 - 10:02 #8
DBCC SHRINKFILE

smager vist lidt af fugl
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 10:07 #9
Ok, fandt noget af det, men hvordan er det nu jeg finder navnet på filen?
USE userDB
GO
DBCC SHRINKFILE (DataFil1, 7)
GO
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 10:08 #10
Hmmm...måske skulle jeg have klikket på Update-knappen inden jeg postede... :)
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 10:17 #11
Hmmm....selv med det rigtige filnavn, bliver transaktionsloggen ikke mindre... :(
og man kan jo heller ikke bare slette dem! ;)
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 10:20 #12
Det kan da heller ikke passe at der er 1 GB transaktioner pr. dag i en 1.3 GB database, det er jo ikke et booking/flyselsskab vi kører!
Avatar billede arne_v Ekspert
06. januar 2006 - 10:23 #13
først backup log
så dbcc shrink
Avatar billede arne_v Ekspert
06. januar 2006 - 10:23 #14
jeg mener at det er ret normalt at LDF og MDF er lige store med full recovery
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 10:26 #15
:(
Så er vi tilbage til spørgsmål 1: hvordan tager man backup af en transaktionslog?

Ja, det passer at LDF og MDF som regel er ca. lige store, vil det så sige at DBCC SHRINKFILE ikke hjælper?
Avatar billede dougheffernan Nybegynder
06. januar 2006 - 10:27 #16
Never mind, fandt det under All tasks.
Avatar billede arne_v Ekspert
06. januar 2006 - 10:30 #17
BACKUP LOG kommandoen

men det synes jeg at du sagde at du havde gjordt ????

en ekstern backup af MDF og LDF filerne er spild af tape plads, CPU og operatør tid
Avatar billede dougheffernan Nybegynder
17. januar 2006 - 10:35 #18
Det hjalp en del alligevel, men på trods heraf, investerer cheffen i flere harddiske, da serveren kører andre programmer, som tager en del diskplads.
Avatar billede dougheffernan Nybegynder
19. januar 2006 - 09:46 #19
Arne, et svar så jeg kan lukke spørgsmålet....? :)
Avatar billede arne_v Ekspert
19. januar 2006 - 14:13 #20
ok
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