Δεν είμαι ειδικός στην SQL, και αυτό μου το θυμίζει κάθε φορά που πρέπει να κάνω κάτι πέρα από τα βασικά. Έχω μια δοκιμαστική βάση δεδομένων που δεν είναι μεγάλη σε μέγεθος, αλλά το αρχείο καταγραφής συναλλαγών σίγουρα είναι. Πώς μπορώ να διαγράψω το αρχείο καταγραφής συναλλαγών;
Ακολουθεί ένας απλός και πολύ άκομψος και ενδεχομένως επικίνδυνος τρόπος.
Υποθέτω ότι δεν κάνετε αντίγραφα ασφαλείας των αρχείων καταγραφής. (Τα οποία αποκόπτουν το αρχείο καταγραφής). Η συμβουλή μου είναι να αλλάξετε το μοντέλο ανάκτησης από full σε simple. Αυτό θα αποτρέψει τη διόγκωση του αρχείου καταγραφής.
Εάν δεν χρησιμοποιείτε τα αρχεία καταγραφής συναλλαγών για επαναφορές (δηλαδή κάνετε μόνο πλήρη αντίγραφα ασφαλείας), μπορείτε να ρυθμίσετε τη Λειτουργία αποκατάστασης σε "Απλή", και το αρχείο καταγραφής συναλλαγών θα συρρικνωθεί πολύ σύντομα και δεν θα γεμίσει ποτέ ξανά.
Εάν χρησιμοποιείτε SQL 7 ή 2000, μπορείτε να ενεργοποιήσετε την επιλογή "truncate log on checkpoint" στην καρτέλα επιλογών βάσης δεδομένων. Αυτό έχει το ίδιο αποτέλεσμα.
Αυτό δεν συνιστάται σε περιβάλλοντα παραγωγής προφανώς, καθώς δεν θα μπορείτε να επαναφέρετε σε ένα χρονικό σημείο.
Για να περικόψετε το αρχείο καταγραφής:
Για να συρρικνώσετε το αρχείο καταγραφής:
Δημιουργία αντιγράφου ασφαλείας του αρχείου καταγραφής [DBName] με No_Log
Συρρικνώστε τη βάση δεδομένων είτε με:
Χρησιμοποιώντας το Enterprise manager :- Δεξί κλικ στη βάση δεδομένων, Όλες οι εργασίες, Συρρίκνωση της βάσης δεδομένων, Αρχεία, Επιλογή αρχείου καταγραφής, OK.
Χρησιμοποιώντας την T-SQL :- Dbcc Shrinkfile ([Log_Logical_Name])
Μπορείτε να βρείτε το λογικό όνομα του αρχείου καταγραφής εκτελώντας την εντολή sp_helpdb ή αναζητώντας τις ιδιότητες της βάσης δεδομένων στο Enterprise Manager.