Προσθήκη για να εντοπίσετε προβλήματα που έχουν αναφερθεί εισόδου/εξόδου οφείλονται στην παλιά αναγνώσεις ή χαθεί εγγραφές Διαγνωστικά του SQL Server

Σφάλμα #: 470086 (SQL Server 8.0)

Συμπτώματα

Εάν χαθεί λειτουργικού συστήματος, προγράμματος οδήγησης ή υλικού αιτία προβλημάτων εγγραφής συνθήκες ή παλιές συνθήκες ανάγνωσης, μπορείτε να δείτε μηνύματα λάθους που σχετίζονται με την ακεραιότητα δεδομένων, όπως σφάλματα 605, 823, 3448, 3456. Ενδέχεται να λάβετε μηνύματα λάθους παρόμοια με τα ακόλουθα παραδείγματα:

16:43:04.57 2003-07-24 spid63 Getpage: bstat = 0x9, sstat = 0x800, το χώρο προσωρινής αποθήκευσης
pageno spid63 16:43:04.57 2003-07-24 είναι/θα πρέπει να είναι: objid είναι/θα πρέπει να είναι:
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424

2003-07-24 16:43:04.57 spid63... IAM δηλώνει τη σελίδα που έχει εκχωρηθεί σε αυτό το αντικείμενο

2003-07-24 16:52:37.67 spid63 σφάλμα: 605, σοβαρότητας: 21, κατάσταση: 1
spid63 16:52:37.67 2003-07-24 μπορεί να λάβει η λογική σελίδα (1:7040966) στη βάση δεδομένων 'pubs' ανήκει σε αντικείμενο «συντακτών', όχι σε αντικείμενο «τίτλοι»...

2003-07-24 16:52:40.99 spid63 σφάλμα: 3448, σοβαρότητας: 21, κατάσταση: 1
2003-07-24 16:52:40.99 spid63 θα μπορούσε να αναιρέσει εγγραφή καταγραφής (63361:16876:181), για το Αναγνωριστικό συναλλαγής (0:159696956), στη σελίδα (1:7040977), η βάση δεδομένων 'pubs' (βάση δεδομένων ID 12). Πληροφορίες για τη σελίδα: LSN = (63192:958360:10), ο τύπος = 2. Καταγραφή πληροφοριών: κωδικός διεργασίας = 2, περιβάλλον 1..

Σφάλμα spid66 14:31:35.92 2003-07-09: 823, σοβαρότητας: 24, κατάσταση: 2
2003-07-09 14:31:35.92 spid66 εισόδου/εξόδου (Αναγνωριστικό σελίδας εσφαλμένη) Εντοπίστηκε σφάλμα κατά την ανάγνωση στη μετατόπιση 0x00000016774000 στο αρχείο 'h:\sql\MSSQL\data\tempdb.mdf'...

2010-02-06 15:57:24.14 spid17s σφάλμα: 3456, σοβαρότητας: 21, κατάσταση: 1.
2010-02-06 15:57:24.14 spid17s δεν ήταν δυνατό να επανάληψη εγγραφή καταγραφής (58997:5252:28), για το Αναγνωριστικό συναλλαγής (0:109000187), στη σελίδα (1:480946), η βάση δεδομένων 'Βάση_δεδομένων' (17 Αναγνωριστικό βάσης δεδομένων). Σελίδα: LSN = (58997:5234:17), ο τύπος = 3. ΑΡΧΕΙΟ ΚΑΤΑΓΡΑΦΗΣ: Κωδικός διεργασίας = 2, περιβάλλον 5, PrevPageLSN: (58997:5243:17). Επαναφορά από ένα αντίγραφο ασφαλείας της βάσης δεδομένων, ή να επιδιορθώσετε τη βάση δεδομένων.

Περισσότερες πληροφορίες

Η Microsoft παρουσίασε τις δυνατότητες εκτεταμένη παρακολούθηση, ξεκινώντας με το SQL Server 2000 Service Pack 4 και τα Διαγνωστικά έχουν τμήμα του προϊόντος σε SQL Server 2005 και νεότερες εκδόσεις. Αυτές οι δυνατότητες έχουν σχεδιαστεί για τον εντοπισμό εισόδου/εξόδου που σχετίζονται με εξωτερικά προβλήματα και αντιμετώπιση προβλημάτων σχετικά με τα μηνύματα λάθους που περιγράφονται στην ενότητα "Συμπτώματα"

Εάν λάβετε οποιοδήποτε από τα μηνύματα λάθους που αναφέρονται στην ενότητα "Συμπτώματα" και δεν είναι δυνατό να αναλυθεί από ένα συμβάν, όπως μια φυσική μονάδα δίσκου αστοχία, στη συνέχεια, εξετάστε γνωστά προβλήματα με SQL Server, το λειτουργικό σύστημα, τα προγράμματα οδήγησης και το υλικό. Τα Διαγνωστικά προσπαθήστε να παρέχουν πληροφορίες σχετικά με τις δύο παρακάτω συνθήκες:
  • Απώλεια εγγραφής: Μια επιτυχημένη κλήση προς το WriteFile API, αλλά το λειτουργικό σύστημα, ένα πρόγραμμα οδήγησης ή την προσωρινή αποθήκευση ελεγκτή δεν σωστά εκκένωση των δεδομένων με τα φυσικά μέσα Παρόλο που SQL Server ενημερώνεται ότι η εγγραφή ολοκληρώθηκε με επιτυχία.
  • Παλιά ανάγνωση: Επιτυχή κλήση του API τη συνάρτηση ReadFile , αλλά το λειτουργικό σύστημα, ένα πρόγραμμα οδήγησης ή την προσωρινή αποθήκευση ελεγκτή επιστρέφει εσφαλμένα μια παλαιότερη έκδοση των δεδομένων.
Για παράδειγμα, η Microsoft έχει επιβεβαιώσει σενάρια όπου μια κλήση WriteFile API επιστρέφει ως επιτυχημένο, αλλά μια άμεση, επιτυχής ανάγνωση του ίδιου μπλοκ δεδομένων επιστρέφει τα παλαιότερα δεδομένα, συμπεριλαμβανομένων των δεδομένων που πιθανώς είναι αποθηκευμένο σε ένα υλικό ανάγνωσης μνήμης cache. Ορισμένες φορές, αυτό το ζήτημα παρουσιάζεται εξαιτίας ενός ζητήματος cache ανάγνωσης. Σε άλλες περιπτώσεις, τα δεδομένα εγγραφής στην πραγματικότητα ποτέ δεν γράφονται στον φυσικό δίσκο.

Για να ενεργοποιήσετε πρόσθετες διαγνωστικών για αυτούς τους τύπους προβλημάτων, SQL Server έχει προστεθεί σημαία παρακολούθησης 818. Μπορείτε να καθορίσετε τη σημαία παρακολούθησης 818 ως παράμετρο εκκίνησης,-T818, για τον υπολογιστή που εκτελεί SQL Server, ή μπορείτε να εκτελέσετε την ακόλουθη δήλωση:
DBCC TRACEON(818, -1)

Η σημαία παρακολούθησης 818 ενεργοποιεί ένα buffer δακτυλίου στη μνήμη που χρησιμοποιείται για την παρακολούθηση, την τελευταία επιτυχημένη 2.048 εγγραφής λειτουργίες που εκτελούνται από τον υπολογιστή που εκτελεί τον SQL Server, μη συμπεριλαμβανομένης της ταξινόμησης και του αρχείου εργασίας εισόδων/εξόδων. Όταν προκύπτουν σφάλματα όπως σφάλμα 605, 823 ή 3448, το εισερχόμενο buffer καταγραφής ακολουθία αριθμός (LSN) τιμή συγκρίνεται με την πρόσφατη λίστα εγγραφής. Εάν το LSN που ανακτάται κατά τη λειτουργία ανάγνωσης είναι παλαιότερη από αυτήν που καθορίζεται κατά τη διαδικασία εγγραφής, ένα νέο μήνυμα λάθους καταγράφεται στο αρχείο καταγραφής σφαλμάτων του SQL Server. Οι περισσότερες λειτουργίες εγγραφής του SQL Server προκύψει ως σημεία ελέγχου ή εγγραφών lazy. Μια εγγραφή lazy είναι μια εργασία στο παρασκήνιο που χρησιμοποιεί ασύγχρονων I/O. Η υλοποίηση του buffer δακτυλίου είναι ελαφριά, πράγμα που καθιστά τις επιδόσεις επηρεάζουν στο σύστημα αμελητέα.

Το παρακάτω μήνυμα υποδηλώνει ότι SQL Server δεν έλαβε ένα σφάλμα από την κλήση του API WriteFile ή η κλήση τη συνάρτηση ReadFile API. Ωστόσο, όταν το LSN επανεξετάσθηκαν, η τιμή δεν ήταν σωστός:

SQL Server εντόπισε ένα επίπεδο OS/υλικού που έχουν αναφερθεί ανάγνωσης ή εγγραφής πρόβλημα στη σελίδα (1:75007) της βάσης δεδομένων 12

LSN επέστρεψε (63361:16876:181), LSN αναμένεται (63361:16876:500)

Επικοινωνήστε με τον προμηθευτή του υλικού και να λάβετε υπόψη Απενεργοποίηση προσωρινής αποθήκευσης μηχανισμούς για να διορθώσετε το πρόβλημα

Ξεκινώντας με το SQL Server 2005, το μήνυμα λάθους θα αναφερθεί ως:

SQL Server εντόπισε ένα λογικό σφάλμα εισόδου/εξόδου με συνέπεια: ανάγνωση παλιά. Αυτό παρουσιάστηκε κατά τη διάρκεια μιας << ανάγνωση >> της σελίδας << PAGEID >> στη βάση δεδομένων ID << DBID >> στη μετατόπιση << ΦΥΣΙΚΉ ΜΕΤΑΤΌΠΙΣΗ >> στο αρχείο << ΌΝΟΜΑ ΑΡΧΕΊΟΥ >>. Πρόσθετα μηνύματα στο αρχείο SQL Server σφάλμα αρχείου καταγραφής ή σύστημα καταγραφής συμβάντων ενδέχεται να παρέχουν περισσότερη λεπτομέρεια. Αυτή είναι μια συνθήκη σοβαρό σφάλμα που απειλεί την ακεραιότητα της βάσης δεδομένων και πρέπει να διορθωθούν αμέσως. Ολοκλήρωση έλεγχος συνέπειας πλήρη βάσεων δεδομένων (DBCC CHECKDB). Αυτό το σφάλμα μπορεί να προκληθεί από πολλούς παράγοντες, Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα SQL Server Books Online.

Σε αυτό το σημείο, είτε της ανάγνωσης μνήμης cache περιέχει μια παλιότερη έκδοση της σελίδας ή τα δεδομένα δεν έχει εγγραφεί σωστά στο φυσικό δίσκο. Και στις δύο περιπτώσεις (μια εγγραφή χαθεί ή μια παλιά ανάγνωση), SQL Server αναφέρει ένα εξωτερικό πρόβλημα με το λειτουργικό σύστημα, το πρόγραμμα οδήγησης ή τα επίπεδα του υλικού.

Σε περίπτωση 3448 σφάλμα κατά την προσπάθεια επαναφοράς μιας συναλλαγής που έχει σφάλμα 605 ή σφάλμα 823, στον υπολογιστή που εκτελεί τον SQL Server αυτόματα κλείνει τη βάση δεδομένων και προσπαθεί να ανοίξει και να ανακτήσει τη βάση δεδομένων. Η πρώτη σελίδα που αντιμετωπίζει σφάλμα 605 ή σφάλμα 823 θεωρείται μια εσφαλμένη σελίδα και διατηρείται το αναγνωριστικό σελίδας από τον υπολογιστή που εκτελεί τον SQL Server. Κατά την ανάκτηση (πριν από την επανάληψη φάση) κατά την ανάγνωση του αναγνωριστικού εσφαλμένη σελίδα, το πρωτεύον λεπτομέρειες σχετικά με την κεφαλίδα σελίδας καταγράφονται στο αρχείο καταγραφής σφαλμάτων του SQL Server. Αυτή η ενέργεια είναι σημαντικό, γιατί είναι χρήσιμο να γίνει διάκριση μεταξύ απώλεια εγγραφής και ανάγνωσης παλιά σενάρια.

Ενδέχεται να μπορείτε να δείτε τις ακόλουθες δύο κοινές συμπεριφορές σε παλιά ανάγνωση σενάρια:
Οι συμπεριφορές που αναφέρεται στην προηγούμενη παράγραφο υποδεικνύουν ένα πρόβλημα ανάγνωσης προσωρινής αποθήκευσης και μπορούν συχνά να επιλυθούν με την απενεργοποίηση της μνήμης cache ανάγνωσης. Τις ενέργειες που περιγράφονται στην προηγούμενη παράγραφο, συνήθως αναγκαστικά μια ακύρωση cache και την επιτυχημένη αναγνώσεις που προκύπτουν εμφάνιση ότι το φυσικό μέσο που έχει ενημερωθεί σωστά. Η συμπεριφορά απώλεια εγγραφής εμφανίζεται όταν η σελίδα που έχει διαβάσει ακόμα την παλαιότερη έκδοση των δεδομένων, ακόμα και μετά από μια αναγκαστική εκκαθάριση των μηχανισμών προσωρινής αποθήκευσης.

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

Η Microsoft έχει παρατηρήσει επίσης συνθήκες που δεν πληρούν τα κριτήρια για 605 σφάλμα ή σφάλμα 823 αλλά προκαλούνται από την ίδια δραστηριότητα παλιά ανάγνωση ή απώλεια εγγραφής. Σε ορισμένες περιπτώσεις, εμφανίζεται μια σελίδα να ενημερώνεται δύο φορές, αλλά με το ίδιο LSN τιμή. Αυτή η συμπεριφορά μπορεί να προκύψει, εάν το Αναγνωριστικό αντικειμένου και το Αναγνωριστικό σελίδας είναι σωστή (ήδη εκχωρηθεί στο αντικείμενο σελίδας) και μια αλλαγή είναι κάνει στην σελίδα και να καθαρίζονται από το δίσκο. Η επόμενη σελίδα ανάκτησης επιστρέφει μια παλαιότερη εικόνα και, στη συνέχεια, πραγματοποιείται μια δεύτερη αλλαγή. Το αρχείο καταγραφής συναλλαγών του SQL Server, δείχνει ότι η σελίδα ενημερώθηκε δύο φορές με την ίδια τιμή LSN. Αυτή η ενέργεια γίνεται ένα πρόβλημα κατά την προσπάθεια επαναφοράς μιας σειράς αρχείων καταγραφής συναλλαγών ή με προβλήματα συνέπεια δεδομένων, όπως ξένου κλειδιού αποτυχίες ή λείπουν καταχωρήσεις δεδομένων. Το ακόλουθο μήνυμα λάθους παρουσιάζεται ένα παράδειγμα αυτή η συνθήκη:

Σφάλμα: 3456, σοβαρότητας: 21, κατάσταση: 1 δεν ήταν δυνατό να επανάληψη εγγραφή καταγραφής (276666:1664:19), για το Αναγνωριστικό συναλλαγής (0:825853240), στη σελίδα (1:1787100) της βάσης δεδομένων "συντάκτες" (7). Σελίδα: LSN = (276658:4501:9), ο τύπος = 1. ΑΡΧΕΙΟ ΚΑΤΑΓΡΑΦΗΣ: Κωδικός διεργασίας = 4, περιβάλλον 2, PrevPageLSN: (275565:3959:31)...

Ορισμένα σενάρια περιγράφονται με περισσότερες λεπτομέρειες στις παρακάτω λίστες:
  • LSN SequenceAction1Checkpoint
    2Begin Transaction
    3Table created or truncated
    4Inserts (Pages allocated)
    5Newly allocated page written to disk by Lazy Writer
    6Select from table – Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID
    7Rollback of transaction initiated

  • LSN SequenceAction1Checkpoint
    2Begin Transaction
    3Page Modification
    4Page written to disk by Lazy Writer
    5Page read in for another modification (stale image returned)
    6Page Modified for a second time but because of stale image does not see first modification
    7Rollback – Fails – Transaction Log shows two different log records with the same PREV LSN for the page

Τελεστές SQL Server 'ταξινόμηση' Εκτέλεση δραστηριοτήτων εισόδου/εξόδου, κυρίως προς και από τη βάση δεδομένων tempdb . Αυτές οι λειτουργίες εισόδου/εξόδου είναι παρόμοια με τις λειτουργίες εισόδου/εξόδου του buffer; Ωστόσο, ήδη έχουν σχεδιαστεί να χρησιμοποιούν λογική ανάγνωσης "Επανάληψη" για να προσπαθήσετε να επιλύσετε παρόμοια ζητήματα. Τα Διαγνωστικά πρόσθετες εξηγούνται σε αυτό το άρθρο δεν ισχύουν για αυτές τις λειτουργίες εισόδου/εξόδου.

Η Microsoft έχει παρατηρήσει ότι η αρχική αιτία για την ακόλουθη ταξινόμηση ανάγνωση αποτυχίες είναι γενικά μια παλιά ανάγνωση ή μια απώλεια εγγραφής:

20:13:31.38 2003-04-01 spid122 SQL Server διεκδίκησης: αρχείο: < p:\sql\ntdbms\storeng\drs\include\record.inl > γραμμή = 1447 Αποτυχία διεκδίκησης = ' m_SizeRec > 0 & & m_SizeRec < = MAXDATAROW'.

09:51:41.12 2003-03-29 ταξινόμησης spid57 ανάγνωση αποτυχία (Αναγνωριστικό εσφαλμένη σελίδα). PageID = (0x1:0x13e9), dbid = 2, αρχείο = e:\program files\Microsoft SQL Server\mssql\data\tempdb.mdf. Επανάληψη.

2003-03-29 09:51:41.13 spid57 σφάλμα: 823, σοβαρότητας: 24, κατάσταση: 7
Εντοπίστηκε σφάλμα εισόδου/εξόδου spid57 2003-03-29 09:51:41.13 (Αναγνωριστικό εσφαλμένη σελίδα) κατά την ανάγνωση στη μετατόπιση 0x000000027d2000 στο αρχείο 'e:\program files\Microsoft SQL Server\mssql\data\tempdb.mdf'...

* 00931097 Module(sqlservr+00531097) (utassert_fail + 000002E3)
* 005B1DA8 Module(sqlservr+001B1DA8) (RecBase::Resize+00000091)
* 00407EE7 Module(sqlservr+00007EE7) (RecBase::LocateColumn+00000012)
* 00852520 Module(sqlservr+00452520) (mergerow + 000000A4)
* 008522B3 Module(sqlservr+004522B3) (merge_getnext+00000285)
* 0085207D Module(sqlservr+0045207D) (mergenext+0000000D)
* 004FC5FB Module(sqlservr+000FC5FB) (getsorted+00000021)

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

Επειδή μια παλιά ανάγνωση ή απώλεια εγγραφής ως αποτέλεσμα αποθήκευσης δεδομένων η οποία δεν αναμένεται, ενδέχεται να παρουσιαστεί ένα ευρύ φάσμα συμπεριφορών. Μπορεί να εμφανίζεται ως δεδομένα που λείπουν, αλλά κάποια από τα περισσότερο συνηθισμένα συμπτώματα δεδομένα που λείπουν εμφανίζεται ως ευρετήριο καταστροφών, όπως σφάλμα 644 ή σφάλμα 625:

Σφάλμα 644 σοβαρότητας επιπέδου 21 μήνυμα κειμένου δεν βρέθηκε η καταχώρηση ευρετηρίου για RID ' %. * hs' στο ευρετήριο σελίδα % S_PGID, Αναγνωριστικό ευρετηρίου %d, της βάσης δεδομένων ' %. * ls'.

Κείμενο του μηνύματος σφάλματος 625 σοβαρότητας επιπέδου 21 δεν είναι δυνατό να ανάκτηση γραμμών από τη σελίδα % S_PGID από RID, επειδή το ΑναγνωριστικόΥποδοχής (%d) δεν είναι έγκυρη.

Ορισμένοι πελάτες έχουν αναφέρει λείπουν γραμμές μετά την εκτελούν δραστηριότητες πλήθος γραμμών. Αυτό το ζήτημα οφείλεται σε μια εγγραφή που έχει χαθεί. Ίσως η σελίδα που έπρεπε να συνδέονται με την αλυσίδα σελίδα ευρετήριο συμπλέγματος. Εάν η εγγραφή χάθηκε φυσικά, τα δεδομένα θα χαθούν επίσης.

Σημαντικό Εάν αντιμετωπίζετε κάποιο από τις συμπεριφορές, ή εάν είστε επιφυλακτικοί παρόμοια προβλήματα καθώς και απενεργοποίηση προσωρινής αποθήκευσης μηχανισμούς, η Microsoft συνιστά που μπορείτε να αποκτήσετε την πιο πρόσφατη ενημερωμένη έκδοση για SQL Server και το πιο πρόσφατο Simulator καταπόνησης εισόδου/εξόδου διακομιστή SQL. Η Microsoft επίσης συνιστά να εκτελέσετε μια αυστηρή αναθεώρηση το λειτουργικό σας σύστημα και τις σχετικές ρυθμίσεις παραμέτρων.

Σημείωση Η Microsoft έχει επιβεβαιώσει ότι στην περιοχή σπάνιων και βαρέων φορτίων εισόδου/εξόδου, ορισμένες πλατφόρμες υλικού μπορεί να επιστρέψει μια παλιά ανάγνωση. Εάν τα εκτεταμένα διαγνωστικά υποδεικνύουν μια πιθανή παλιά ανάγνωση/απώλεια εγγραφής συνθήκη, επικοινωνήστε με τον προμηθευτή του υλικού σας για άμεση Παρακολούθηση ασφαλείας και ελέγξτε με το βοηθητικό πρόγραμμα SQLIOSim .

SQL Server απαιτεί συστήματα για την υποστήριξη εγγυημένη παράδοση σε σταθερό μέσο αποθήκευσης, όπως αναφέρονται στο τις Απαιτήσεις πρόγραμμα αξιοπιστίας εισόδου/εξόδου διακομιστή SQL. Για περισσότερες πληροφορίες σχετικά με τις απαιτήσεις εισόδου και εξόδου για το μηχανισμό διαχείρισης βάσης δεδομένων SQL Server, ανατρέξτε στην ενότητα Microsoft SQL Server βάση δεδομένων μηχανισμό εισόδου/εξόδου απαιτήσεις.
Ιδιότητες

Αναγνωριστικό άρθρου: 826433 - Τελευταία αναθεώρηση: 17 Ιαν 2017 - Αναθεώρηση: 3

Σχόλια