Γιατί δεν λειτουργεί DBCC SHRINKFILE ασυνέπεια σε μια δουλειά βάσης δεδομένων;

ψήφοι
1

DBCC SHRINKFILE πάντα λειτουργεί όταν το τρέχω με το χέρι σε ένα αρχείο καταγραφής, ακόμα και όταν παίρνω το ακόλουθο μήνυμα:

'Cannot shrink log file 2 (Claim_Log) because all logical log files are in use.'

Όταν το τρέχω από μια δουλειά, όμως, συρρικνώνεται μόνο το αρχείο καταγραφής περίπου το ένα τρίτο του χρόνου. Οι άλλες φορές, απλά παραμένει μεγάλη (περίπου 150GB). Δεν υπάρχει ποτέ οποιοδήποτε λάθος διαφορετικό από εκείνο που αναφέρονται παραπάνω. Αυτή είναι η δήλωση που χρησιμοποιώ:

DBCC SHRINKFILE (N'Claim_log' , 0, TRUNCATEONLY)

Έχω «Συμπερίληψη εξόδου βήμα στην ιστορία» είναι ενεργοποιημένη στο βήμα εργασίας. Υπάρχει κάτι άλλο που μπορώ να κάνω για να πάρετε περισσότερες πληροφορίες σχετικά με το γιατί αυτό δεν λειτουργεί εκεί;

Επεξεργασία: Εδώ είναι το πλήρες μήνυμα από το ημερολόγιο:

'Executed as user: *. Cannot shrink log file 2 (Claim_Log) because all logical
log files are in use. [SQLSTATE 01000] (Message 9008)  DBCC execution completed. 
If DBCC printed error messages, contact your system administrator. [SQLSTATE 01000]
(Message 2528).  The step succeeded.'

Έχω ήδη δοκιμάσει κλοτσιές τους χρήστες από την db και θέτοντας το σε κατάσταση ενός χρήστη.

Δημοσιεύθηκε 09/12/2008 στις 17:27
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
2

Έλυσα πρόσφατα ένα παρόμοιο θέμα, βρήκα ότι το sys.databases, log_reuse_wait_desc ήταν ίσο με το «αντιγραφή». Προφανώς αυτό σημαίνει κάτι με την έννοια του SQL Server περιμένει για μια εργασία αντιγραφής για να ολοκληρωθεί προτού να χρησιμοποιήσετε ξανά το χώρο καταγραφής.

Ωστόσο αντιγραφή δεν είχε χρησιμοποιηθεί στην DB μας, ούτε στον server μας. Θα πρέπει να είναι σε θέση να καθαρίσει την κατάσταση εκτελώντας «sp_removedbreplication»? Ωστόσο για μένα «sp_removedbreplication» δεν έλυσε το πρόβλημα. Αντ 'αυτού SQL μόλις επέστρεψε λέγοντας ότι η βάση δεδομένων δεν ήταν μέρος ενός αναπαραγωγής ...

Βρήκα την απάντησή μου εδώ:

Βασικά θα έπρεπε να δημιουργήσει μια αναπαραγωγή, επαναφορά όλων των δεικτών αναπαραγωγής στο μηδέν? στη συνέχεια, διαγράψτε την αντιγραφή που μόλις είχε κάνει. δηλαδή

Execute SP_ReplicationDbOption {DBName},Publish,true,1
GO
Execute sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
GO
DBCC ShrinkFile({LogFileName},0)
GO
Execute SP_ReplicationDbOption {DBName},Publish,false,1
GO
Απαντήθηκε 06/07/2011 στις 05:10
πηγή χρήστη

ψήφοι
2

δοκιμάστε την έκδοση της CHECKPOINT εντολή πρώτο, τότε συρρικνώνεται τα αρχεία καταγραφής

που λαμβάνονται από BOL ( http://msdn.microsoft.com/en-us/library/aa226036(SQL.80).aspx )

Δυνάμεις όλα τα βρώμικα σελίδες για την τρέχουσα βάση δεδομένων για να γραφτεί στο δίσκο. Dirty σελίδες είναι δεδομένα ή τις σελίδες ημερολογίου τροποποιηθεί μετά την έναρξη της προσωρινής μνήμης buffer, αλλά οι τροποποιήσεις δεν έχουν ακόμη γραφτεί στο δίσκο. Για περισσότερες πληροφορίες σχετικά με το αρχείο καταγραφής περικοπή, δείτε Περικοπή του αρχείου καταγραφής συναλλαγών.

Απαντήθηκε 09/12/2008 στις 18:01
πηγή χρήστη

ψήφοι
0

Σημαίνει τη στιγμή το αρχείο καταγραφής είναι σε χρήση και το σημείο ελέγχου θέμα για το οποίο Check Point θα γράφει σε datfile που δεν γράφτηκε στο αρχείο δεδομένων από το αρχείο καταγραφής συναλλαγών (Dirty σελίδες). Έλεγχος υπάρχει τρέχουσα δραστηριότητα συνεχίζεται ή όχι,

Ελέγξτε τη χρήση ενεργού συναλλαγών Το 2005 SELECT * FROM sys.dm_tran_session_transactions

2000 DBCC loginfo

κάνει καλό σχέδιο => 1.Δημιουργία σχέδιο συντήρηση Για δημιουργία αντιγράφων ασφαλείας του μητρώου (σχέδιο Made).

Απαντήθηκε 29/08/2009 στις 06:18
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more