Τρόπος αντιμετώπισης προβλημάτων σφαλμάτων συνέπεια βάσης δεδομένων ανά CHECKB DBCC

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 2015748 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Όταν εκτελείται το CHECKDB DBCC (ή άλλα παρόμοια εντολές όπως CHECKTABLE), το ERRORLOG διακομιστή SQL εγγράφεται ένα μήνυμα όπως το εξής:

2010-03-31 22:07:06.34 spid53 DBCC CHECKDB (mydb) εκτελείται από MYDOMAIN\theuser εντόπισε σφάλματα 15 και επιδιόρθωση σφαλμάτων 0.Χρόνος: 0 ώρες 0 λεπτά 0 δευτερόλεπτα. Στιγμιότυπο εσωτερική βάση δεδομένων έχει διαιρεθεί σημείο LSN = 00000026:0000089d:0001 και πρώτη LSN = 00000026:0000089c:0001. Πρόκειται για ένα ενημερωτικό μήνυμα.Απαιτείται καμία ενέργεια χρήστη. 

Αυτό το μήνυμα εμφανίζει πόσα σφάλματα συνέπειας της βάσης δεδομένων που βρέθηκαν και πόσα έχουν επιδιορθωθεί (Εάν μια επιλογή επιδιόρθωσης που χρησιμοποιήθηκε με την εντολή). Αυτό το μήνυμα καταγράφεται επίσης για την καταγραφή συμβάντων εφαρμογής Windows ως μήνυμα επίπεδο πληροφοριών με αναγνωριστικό συμβάντος = 8957 (ακόμα και αν αναφέρονται σφάλματα αυτό το μήνυμα είναι ένα μήνυμα επίπεδο πληροφοριών).

Οι πληροφορίες του μηνύματος που ξεκινά με "εσωτερική βάση δεδομένων στιγμιότυπο..." εμφανίζεται μόνο αν CHECKDB DBCC εκτελέστηκε ηλεκτρονικά, δηλαδή εάν η βάση δεδομένων δεν βρίσκεται σε λειτουργία SINGLE_USER.Αυτό συμβαίνει επειδή για μια ηλεκτρονική CHECKDB DBCC, χρησιμοποιείται ένα στιγμιότυπο εσωτερική βάση δεδομένων για να παρουσιάσετε ένα συνεπές σύνολο δεδομένων για να ελέγξετε.

Αυτό το άρθρο δεν θα περιγράφουν τον τρόπο αντιμετώπισης κάθε συγκεκριμένο σφάλμα που αναφέρθηκε από CHECKDB DBCC αλλά μάλλον η γενική προσέγγιση, εάν αναφερθούν σφάλματα.Οποιαδήποτε αναφορά σε CHECKDB σε αυτό το άρθρο ισχύει επίσης για CHECKTABLE DBCC και CHECKFILEGROUP, εκτός αν αναφέρεται ρητά.

Αιτία

CHECKDB DBCC ελέγχει τη φυσική και λογική συνέπεια σελίδες βάσεων δεδομένων, γραμμών, εκχώρησης σελίδων, τις σχέσεις του ευρετηρίου, πίνακα systerm την ακεραιότητα αναφορών και άλλους ελέγχους δομή. Εάν κάποια από αυτές οι έλεγχοι αποτύχουν (ανάλογα με τις επιλογές που έχετε επιλέξει), τα σφάλματα θα αναφερθούν ως μέρος της εντολής.

Την αιτία αυτών των ζητημάτων μπορεί να διαφέρει από την καταστροφή του συστήματος αρχείων, υποκείμενες ζητημάτων υλικού συστήματος, το πρόγραμμα οδήγησης εκδίδει, κατεστραμμένες σελίδες στη μνήμη ή σε προβλήματα με τον SQL Server Engine.Ανάγνωση μέσω της ενότητας "Προτεινόμενη αντιμετώπιση" για περισσότερες πληροφορίες σχετικά με τον τρόπο για να εντοπίσετε την αιτία των σφαλμάτων που αναφέρονται.

Προτεινόμενη αντιμετώπιση

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

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

CHECKDB βρέθηκαν σφάλματα εκχώρησης 0 και 15 σφάλματα συνέπειας της βάσης δεδομένων 'mydb'.
repair_allow_data_loss είναι το επίπεδο ελάχιστες επιδιόρθωσης για τα σφάλματα που εντοπίστηκαν από DBCC CHECKDB (mydb

Η σύσταση επιδιόρθωσης είναι το ελάχιστο επίπεδο επιδιόρθωσης για να προσπαθήσετε να επιλύσετε όλα τα σφάλματα από CHECKDB. Αυτό δεν σημαίνει ότι αυτή η επιλογή επιδιόρθωσης στην πραγματικότητα θα διορθώσετε όλα τα σφάλματα. Επιπλέον, όχι όλα τα σφάλματα που αναφέρονται μπορεί να απαιτούν αυτό το επίπεδο επιδιόρθωσης για να επιλύσετε το σφάλμα.Αυτό σημαίνει ότι δεν έχουν όλα τα σφάλματα που αναφέρθηκαν από CHECKDB όταν προτείνεται repair_allow_data_loss θα προκαλέσει απώλεια δεδομένων.Επιδιόρθωση πρέπει να εκτελεστεί για να προσδιορίσετε αν η επίλυση ενός σφάλματος θα προκαλέσει απώλεια δεδομένων.Μια τεχνική για να βοηθήσετε περιορισμός των ποιο θα είναι το επίπεδο επιδιόρθωσης για κάθε πίνακα είναι η χρήση CHECKTABLE DBCC για οποιονδήποτε πίνακα αναφέρει σφάλμα.Αυτό θα εμφανίσει ποια το ελάχιστο επίπεδο επισκευής για ένα δεδομένο πίνακα.

Για να εντοπίσετε την αιτία του γιατί παρουσιάστηκαν σφάλματα συνέπειας της βάσης δεδομένων, λάβετε υπόψη τις εξής μεθόδους:

  • Ελέγξτε το αρχείο καταγραφής συστήματος των Windows για κάθε επίπεδο συστήματος, προγράμματος οδήγησης ή δίσκο που σχετίζονται με σφάλματα
  • Ελέγξτε την ακεραιότητα του συστήματος αρχείων με την εντολή chkdsk.
  • Εκτελέστε οποιοδήποτε διαγνωστικό πρόγραμμα που παρέχονται από τους κατασκευαστές του υλικού για τον υπολογιστή ή/και το σύστημα δίσκου.
  • Work with your hardware vendor or device manufacturer to ensure:
    • The hardware devices and the configuration confirms to the I/O requirements of SQL Server
    • The device drivers and other supporting software components of all devices in the I/O path are updated
  • Consider using a utility like SQLIOSim on the same drive as the databases that have reported the consistency errors.SQLIOSim is a tool independent of the SQL Server Engine to test the integrity of I/O for the disk system. Note that SQLIOSim ships with SQL Server 2008 and does not reuiqre a separate download.
  • Check for any other errors reported by SQL Server such as Access Violations.These types of problems may lead to database corruption so be sure to resolve these errors first.
  • Ensure your databases are using the PAGE_VERIFY CHECKSUM option.If checksum errors are being reported, these are indicators that the consistency errors have occurred after SQL Server has written pages to disk so your disk system should be thoroughly checked.See How to Troubleshoot Msg 824 in SQL Server for more information about checksum errors.
  • Look for Msg 832 errors in the ERRORLOG.These are indicators that pages may be damaged while they are in cache before written to disk.See How to Troubleshoot Msg 832 in SQL Server for more information.
  • Try to restore a database backup you know that is "clean" (no errors from CHECKDB) and transaction log backups you know span the time when the error was encountered.If you can "replay" this problem by restoring a "clean" database backup and transaction logs then contact Microsoft Technical Support for assistance.
  • Data Purity errors can be a problem with the application inserting or updating invalid data into SQL Server tables.For more information about troubleshooting Data Purity errors see the following article: Troubleshooting DBCC Error 2570 in SQL server 2005

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

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

Εάν όλα τα σφάλματα που εντοπίστηκαν από CHECKDB, πρόσθετα μηνύματα ως εξής αναφέρονται στην ERRORLOG του για τους σκοπούς της αναφοράς σφάλματος:

έκδοση χρήση spid53 22:07:06.34 'dbghelp.dll' 2010-03-31 '4.0.5'
2010-03-31 22:07:06.35 spid53 ** η ένδειξη νήματος - spid = 0, EC = 0x00000000855F5EB0
2010-03-31 22:07:06.35 spid53 *** αποστέλλονται C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\LOG\SQLDump0012.txt η ένδειξη στοίβας
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53 *
spid53 22:07:06.35 2010-03-31 * BEGIN ένδειξης ΣΦΑΛΜΆΤΩΝ ΣΤΟΊΒΑΣ:
spid53 22:07:06.35 2010-03-31 * 03/31/10 22: 07: 06 spid 53
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * DBCC καταστροφή της βάσης δεδομένων
2010-03-31 22:07:06.35 spid53 *
spid53 22:07:06.35 2010-03-31 * byte που 84 Buffer εισαγωγής -
spid53 22:07:06.35 2010-03-31 * dbcc checkdb(mydb)
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53      * -------------------------------------------------------------------------------
spid53 22:07:06.35 2010-03-31 * μικρής ένδειξης σφαλμάτων στοίβας
22:07:06.38 2010-03-31 spid53 υπογραφή στοίβας για την ένδειξη σφαλμάτων είναι 0x00000000000001E8
κωδικός 0x20002001 επιστροφής διαδικασίας ένδειξης εξωτερικών spid53 22:07:07.42 2010-03-31.
Πληροφορίες σφάλματος έχει υποβληθεί για την αναφορά σφαλμάτων Watson.

Τα αρχεία που χρησιμοποιούνται για την αναφορά σφαλμάτων περιλαμβάνουν ένα αρχείο .txt SQLDump <nnn>.Αυτό το αρχείο μπορεί να είναι χρήσιμη για λόγους ιστορικού, επειδή περιέχει μια λίστα με τα σφάλματα που εντοπίστηκαν από CHECKDB σε μορφή XML.

Για να διαπιστώσετε κατά την τελευταία φορά που εκτελέστηκε CHECKDB DBCC χωρίς σφάλματα εντοπίστηκαν για μια βάση δεδομένων (η τελευταία γνωστή καθαρή CHECKDB), ελέγξτε το ERRORLOG διακομιστή SQL για ένα μήνυμα όπως τα παρακάτω στοιχεία για τη βάση δεδομένων ή μια βάση δεδομένων συστήματος (αυτό το μήνυμα είναι γραμμένη ως μήνυμα πληροφοριών επίπεδο αρχείο καταγραφής συμβάντων της εφαρμογής των Windows με αναγνωριστικό συμβάντος = 17573):

2010-04-01 10:13:59.80 CHECKDB spid7s βάσης δεδομένων 'πρωτεύον' ολοκληρώθηκε χωρίς σφάλματα σε 22:11:11.417 2010-03-31 (τοπική ώρα).Πρόκειται για ένα ενημερωτικό μήνυμα, δεν απαιτείται καμία ενέργεια χρήστη

Σημείωση Αυτό είναι ένα άρθρο «ΤΑΧΕΙΑΣ ΔΗΜΟΣΙΕΥΣΗΣ» που δημιουργήθηκε απευθείας από τον οργανισμό υποστήριξης της Microsoft. Οι πληροφορίες που περιλαμβάνονται σε αυτό το άρθρο, παρέχονται ως απόκριση σε θέματα που προκύπτουν. Ως αποτέλεσμα της ταχύτητας διάθεσής του, το υλικό ενδέχεται να έχει τυπογραφικά λάθη και να αναθεωρηθεί ανά πάσα στιγμή χωρίς ειδοποίηση. Ανατρέξτε στους Όρους χρήσης για άλλα ζητήματα.

Ιδιότητες

Αναγν. άρθρου: 2015748 - Τελευταία αναθεώρηση: Τρίτη, 28 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Λέξεις-κλειδιά: 
kbmt KB2015748 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:2015748

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com