jump to navigation

Transcation log is full 6 Ιουνίου 2006

Posted by Νικόλας in SQL.
Tags: ,
2 Σχόλια

Πρωί πρωί, μόλις έφτασα στο γραφείο, χτυπά το τηλέφωνο:

Πελάτης – Σβήνω, χάνομαι, πήγα να μπώ στο πρόγραμμα και μου έβγαλε ένα μύνημα «Transaction log is full»! Δεν μπορώ να μπω, δεν δουλεύει τίποτα, χάνομαι, σβήνω, τρέχα!

Εγώ – …

Τρέχω λοιπόν στο πελάτη και βρίσκω ένα Transcation Log το οποίο έχε απλώσει σε όλο το δίσκο… 74GB ήταν το αθεόφοβο σε 80άρη δίσκο.

– Βρε καλό μου, βρέ χρυσό μου, κάνε shrink

– Τσού (εκεί, κολλημένο στα 74GB)

– Βρε δεν πάς στην ευχή του Θεού και της Παναγίας, λέω εγώ;

Stop τον SQL Server, Delete το LDF, αντιγραφή του MDF σε άλλο σημείο στο σκληρό και με λίγα λόγια ότι κάνουμε στη περίπτωση που έχουμε SQL database marked as SUSPECT.

Μέγα Λάθος!!! Δεν μου έκατσε με τίποτα (αν και πρέπει να το ψάξω … αύριο τώρα, γιατί πήγε 1.00)

Τέλως πάντων με τα πολλά η λύση βρέθηκε και είναι η εξής:

1. Από Enterprise Manager -> Properties -> Options -> Recovery Model: Simple

2. Εκτελώ το παρακάτω script

USE dbName

GO

DBCC SHRINKFILE(dbName_log, 1)

BACKUP LOG dbName WITH TRUNCATE_ONLY

DBCC SHRINKFILE(dbName_log, 1)

GO

3. Από Enterprise Manager -> Properties -> Options -> Recovery Model: Full (ΜΕΓΑ λάθος! απορώ γιατί το έγραψα. Με Full Recovery Model, μετά από λίγο καιρό έχεις ένα LDF, μεγαλύτερο από όλη τη βάση του ΚΕΠΥΟ!!!)

4. ΕΤΟΙΜΟΣ!

Links που βρήκα χρήσιμα: