Avatar billede metric Nybegynder
31. juli 2003 - 10:50 Der er 19 kommentarer

Hvordan tømmer jeg MS SQL logfiler (LDF)

Hej,

Jeg har et problem med min Microsoft SQL Server 7. Logfilerne vokser og vokser og mit spørgsmål er så hvordan jeg tømmer dem. De ligger i data-mappen og hedder LDF til efternavn.

Håber nogen kan hjælpe.

Lasse
Avatar billede arne_v Ekspert
31. juli 2003 - 10:59 #1
Det bruger du DUMP TRANASCTION kommandoen til.

Hvis du vil være meget grov så bruger du:
  DUMP TRANSACTION WITH NO_LOG
Avatar billede arne_v Ekspert
31. juli 2003 - 11:01 #2
(den sidste laver ikke en backup af loggen men smider den kun væk)
Avatar billede Slettet bruger
31. juli 2003 - 11:06 #3
Hvis du ikke har behov for at gemme loggen kan du lave et job som kører 1 gang om dagen, f.eks. som gør ovenstående for dig.
Avatar billede metric Nybegynder
31. juli 2003 - 11:14 #4
arne_v: Det lyder som det jeg har brug for.

1. Skal den ikke have databasenavnet med som parameter?
2. Jeg har aldrig haft brug for transaction loggen, så mon ikke det er ok at slette den helt (WITH NO_LOG) ?
Avatar billede arne_v Ekspert
31. juli 2003 - 11:20 #5
Den udføres for current database.

Som du vælger med USE kommandoen.

(evt. indpakket i en combo box)
Avatar billede arne_v Ekspert
31. juli 2003 - 11:21 #6
Du kan bruge log-filen til at genskabe din database hvis du har
en backup af selve databasen og alle log-filer siden den backup.
Avatar billede arne_v Ekspert
31. juli 2003 - 11:24 #7
Hvis man aldrig bruger log, så kan man enable:

truncate log on checkpoint
Avatar billede metric Nybegynder
31. juli 2003 - 11:27 #8
Hvis jeg benytter følgende kommando på project-databasen
----
DUMP TRANSACTION project
----

Får jeg følgende fejl:
----
There is no current database backup. This log backup cannot be used to roll forward a preceding database backup.
Server: Msg 3207, Level 16, State 1, Line 1
Backup or restore requires at least one backup device. Rerun your statement specifying a backup device.
Server: Msg 3013, Level 16, State 1, Line 1
Backup or restore operation terminating abnormally.
----

What to do?
Avatar billede arne_v Ekspert
31. juli 2003 - 11:30 #9
Den normale DUMP TRANSACTION laver en backup af log-filen og den skal have
et sted at smide den backup.

DUMP TRANSACTION WITH NO_LOG

bør virke uden.
Avatar billede metric Nybegynder
31. juli 2003 - 11:42 #10
Godt, så er der taget backup af loggen - hvordan gøres filen så mindre?
Avatar billede arne_v Ekspert
31. juli 2003 - 11:47 #11
Nu er filen tømt d.v.s. at nu varer det et godt stykke tid
inden den vokser igen.

Mne krympe selve filen ?

Det ved jeg ikk eom man kan. Men prøv inde i Enterprise Manager.
Avatar billede clausc Nybegynder
31. juli 2003 - 13:08 #12
Check helpen på:

BACKUP LOG <Database-name> WITH TRUNCATE_ONLY

og

dbcc shrinkfile (<file-name>, truncateonly)
Avatar billede Slettet bruger
31. juli 2003 - 13:22 #13
Kan ikke huske om dette også virker til 7'eren.
Hvis du H-klikker på databasen i Enterprise Manager kan du under All Tasks vælge Shrink, hvis du går derind er der en knap som hedder files, klik på den og nu kan du vælge din logfil og shrinke den.
Avatar billede janus_007 Nybegynder
04. august 2003 - 12:51 #14
Hvis du ikke skal bruge transactionloggen til noget, så er den bedste måde at sætte recoverymodel til 'Simple', så vil den ikke logge dine transactioner!

Men om det er smart er jo en helt anden sniksnak ;O)

ps. lad være med at frigive diskplads hvis du ikke laver din recovery model  om. dvs. lad være med at køre dbcc shrinkfile (<file-name>, truncateonly)
Avatar billede a63548 Nybegynder
06. august 2003 - 23:29 #15
Vær opmærksom på at Trunkcate_only ikke bør anvendes i driftmiljøer.
Men loggen vil automatisk blive mindre, såfremt man laver sikkerhedskopi af sin database. Alle transaktioner der er "committed", det vil sige at de er skrevet ned i databasen vil blive slettet fra loggen. Det er altså kun den aktive del af loggen der vil være tilstede.
Opret en maintenanceplan, der tager fuld backup af databasen med jævne mellemrum.
Så får man ingen problemer.
Blot fordi man aldrig har haft brug for at restore en database og tilhørende transaktionslog, skal man ikke undlade at foretage disse administrative tiltag.

Der findes kun tre slags data:
1) De data man stadig har.
2) De data man har tage sikkerhedskopi af.
3) De data man har mistet.

De fleste har på et eller andet tidspunkt haft flest af type 3)
Avatar billede arne_v Ekspert
18. august 2003 - 23:44 #16
metric>

Tid at lukke spørgsmålet ?
Avatar billede jangravgaard Nybegynder
21. august 2003 - 14:38 #17
Man kan også gøre følgende :

EXEC sp_detach_db 'pubs', 'true'



EXEC sp_attach_db @dbname = N'pubs',
  @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
  @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

Lidt forklaring :

Første "EXEC" sørger for at detache databasen, således man kan fjerne .log og .mdf filerne uden problemer. Hvis man skriver "true" i slutningen af linjen, får man IKKE opdateret sin stat over databasen. Hvis man vil det skal man skrive "false". Når første EXEC er udført, kan man flytte sin .log fil til anden mappe og lave en ny fil og ligge samme sted. Herefter køres anden EXEC. Denne vil muligvis brokke sig, men ved anden udførelse har den selv dannet en ny og "ægte" .log fil og herefter kan man køre anden EXEC igen. Så burde db'en være lille og god igen......
Avatar billede jangravgaard Nybegynder
21. august 2003 - 14:40 #18
glemte lige at sige : 'pubs' er databasenavnet som skal tømmes....
Der kan findes mere information hos MS på http://msdn.microsoft.com/library/en-us/tsqlref/ts_sp_da-di_83fm.asp
Avatar billede arne_v Ekspert
10. september 2003 - 22:29 #19
Tid at lukke spørgsmålet ?
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