Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Όταν χρησιμοποιείτε κατοπτρισμό βάσης δεδομένων στον Microsoft SQL Server 2012 ή στον Microsoft SQL Server 2014, ενδέχεται να πατήσετε μια συνθήκη διεκδίκησης και η δημιουργία ειδώλου βάσης δεδομένων εισέρχεται σε κατάσταση αναστολής.

Αιτία

Το πρόβλημα παρουσιάζεται επειδή, κατά την εκχώρηση μιας νέας σελίδας, ο SQL Server αποκτά ένα κλείδωμα X στη νέα σελίδα. Ο SQL Server θα τοποθετήσει το hobt_id (heap ή B-Tree ID) στο οποίο η νέα σελίδα ανήκει στην αίτηση κλειδώματος. Ωστόσο, ο SQL Server δεν μπορεί να τοποθετήσει το hobt_id σε κατοπτρισμό αρχείου καταγραφής και έχει ως αποτέλεσμα διαφορετική συμπεριφορά κλειδώματος μεταξύ του πρωτεύοντος και του ειδώλου. Αυτό μπορεί να εξηγηθεί λεπτομερώς ως εξής:

  1. T1 κρατήστε πατημένο ένα κλείδωμα IX στη σελίδα P1.

  2. T2 κάντε μια σελίδα διαιρεμένη στο P1, εκχωρήστε μια νέα σελίδα P2, μια συναλλαγή συστήματος TX χρησιμοποιείται εδώ, κρατάει ένα X Lock στο P2. Εδώ ο SQL Server δεν τοποθέτησε το hobt_id στο αρχείο καταγραφής κατοπτρισμού.

  3. Το TX κάνει μια μετεγκατάσταση κλειδώματος για το Τ1 για να μετακινήσει το κλείδωμα IX από το P1 στο P2.

  4. Δεσμευμένος TX, τώρα ο T2 μπορεί να χρησιμοποιήσει τη σελίδα P2 και το T2 να αποκτήσει ένα άλλο κλείδωμα IX στη σελίδα P2.

  5. Ο T1 έχει δεσμευτεί, τώρα ο T2 είναι ο μόνος που κατέχει ένα κλείδωμα IX στο P2.

  6. Μετά την τοποθέτηση πολλών τοποθετήσεων, εμφανίζεται μια κλιμάκωση κλειδώματος, στον πρωτεύοντα, ο T2 απελευθερώνει το ΙΧ στο P2, αλλά στον καθρέφτη, κατά τη διάρκεια της κλιμάκωσης κλειδώματος, το T2 δεν απελευθέρωσε το κλείδωμα IX.

  7. Μετά τη μεγάλη διαγραφή, η σελίδα P2 έγινε κενή και έχει αποδεσμευτεί.

  8. Το T3 χρειάζεται μια νέα σελίδα και συμβαίνει να εκχωρείται P2, αυτό απαιτεί κλείδωμα X, αλλά στο είδωλο, αυτό το βήμα απέτυχε λόγω του βήματος 6.

Στο είδωλο, το βήμα 6 δεν απελευθερώνει το κλείδωμα IX, επειδή το hobt_id στο μπλοκ κλειδώματος είναι εσφαλμένο. Αυτή η εσφαλμένη hobt_id έρχεται κατά τη διάρκεια του βήματος 2 και επειδή ο SQL Server δεν τοποθετεί το hobt_id στο αρχείο καταγραφής κατοπτρισμού. συνήθως δεν βλέπετε κανένα πρόβλημα, επειδή το TX στο βήμα 2 είναι πολύ σύντομο και το κλείδωμα μπλοκ με εσφαλμένο hobt_id θα κυκλοφορήσει όταν δεσμευτεί. Ωστόσο, εξαιτίας της μετεγκατάστασης κλειδώματος στο βήμα και τα παρακάτω βήματα (4 και 5), αυτό το μπλοκ κλειδώματος με εσφαλμένο hobt_id διατηρείται και, τέλος, προκαλεί το πρόβλημα. Το πρωτεύον δεν έχει αυτό το πρόβλημα, επειδή χρησιμοποιεί ένα σωστό hobt_id στο βήμα 2. Ωστόσο, η εγγραφή του αρχείου καταγραφής δεν έχει σωστές hobt_id.

Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:

Λύση

Για να επιλύσετε αυτό το πρόβλημα, προετοιμάστε ξανά το είδωλο για να τερματίσετε την κατάσταση αναστολής.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×