Αλγόριθμοι αποθήκευσης δεδομένων και καταγραφής SQL Server 7.0, SQL Server 2000 και SQL Server 2005 επεκτείνουν την αξιοπιστία των δεδομένων

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

Σε αυτήν τη σελίδα

Περίληψη

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

Για να μάθετε περισσότερα σχετικά με τις βασικές έννοιες των κινητήρων SQL Server 7.0 και τον SQL Server 2000, ανατρέξτε στο θέμα "ARIES (αλγόριθμος για αποκατάσταση και απομόνωση Exploiting σημασιολογία): μέθοδος ανάκτησης συναλλαγών συνοδευτικά πρόστιμο-υποδιαίρεση κλείδωμα και μερικής αντιστροφής πρόσω εγγραφής χρήση καταγραφής", ACM συναλλαγές σε συστήματα βάσεων δεδομένων. Αυτό το έγγραφο δημιουργήθηκε με Chunder Mohan.

Αυτό το έγγραφο αντιμετωπίζει τεχνικές SQL Server 7.0, SQL Server 2000 και SQL Server 2005 για να επεκτείνετε την αξιοπιστία των δεδομένων και ακεραιότητας που σχετίζεται με αποτυχίες.

Συνιστάται να διαβάσετε τα ακόλουθα άρθρα της Microsoft Knowledge Base για περαιτέρω διευκρίνιση για προσωρινή αποθήκευση και εναλλακτικές συζητήσεις αποτυχία λειτουργίας:
86903 Περιγραφή της προσωρινής αποθήκευσης ελεγκτές δίσκου στον SQL Server
46091 Χρήση του σκληρού δίσκου ελεγκτή προσωρινής αποθήκευσης με SQL Server
234656 Χρήση προσωρινής αποθήκευσης δίσκου με SQL Server

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

Πριν να ξεκινήσετε τη συζήτηση εις βάθος, ορισμένοι όροι που χρησιμοποιούνται σε αυτό το άρθρο καθορίζονται στην παρακάτω ενότητα.
Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
ΌροςΟρισμός
ΜπαταρίαςΜπαταρία ξεχωριστά και μεταφρασμένη αντιγράφων ασφαλείας διευκόλυνση άμεσα διαθέσιμες και ελέγχεται από το μηχανισμό αποθήκευσης για να αποτρέψετε την απώλεια δεδομένων.
ΣΗΜΕΙΩΣΗ Δεν είναι αδιάλειπτη παροχή ενέργειας (UPS). UPS εγγυάται κάθε εγγραφής δραστηριότητες και να αποσυνδεθεί από τη συσκευή προσωρινής αποθήκευσης.
Μνήμη cacheΜηχανισμός ενδιάμεσης αποθήκευσης που χρησιμοποιείται για τη βελτιστοποίηση της φυσικής λειτουργίες εισόδου/εξόδου και τη βελτίωση των επιδόσεων.
Τροποποιημένο σελίδαςΗ σελίδα που περιέχει δεδομένα τροποποιήσεις που πρέπει να εκκενώνεται σταθερή αποθήκευσης. Για περισσότερες πληροφορίες που αφορούν τα buffer προβληματικό σελίδας, ανατρέξτε στην τεκμηρίωση του SQL Server Books Online.
ΑποτυχίαΟτιδήποτε μπορεί να προκαλέσει μια μη αναμενόμενη διακοπή ρεύματος της διαδικασίας του SQL Server. Παραδείγματα: ενέργειας διακοπής ρεύματος, επαναφορά υπολογιστή, σφάλματα μνήμης, άλλα ζητήματα υλικού, κατεστραμμένους τομείς, μονάδα διακοπές, αποτυχίες του λειτουργικού Συστήματος, και ούτω καθεξής.
ΕκκαθάρισηΕπιβολή του buffer προσωρινής αποθήκευσης στο σταθερό χώρο αποθήκευσης.
ΑσφάλισηΑντικείμενο συγχρονισμού που χρησιμοποιείται για την προστασία της φυσικής συνέπειας ενός πόρου.
Σταθερή αποθήκευσηςΟποιοδήποτε μέσο που παραμένει διαθέσιμο σε αποτυχίες συστήματος.
Καρφιτσωμένα σελίδαςΣελίδα που παραμένει στα δεδομένα στη μνήμη cache και δεν είναι δυνατή η εκκαθάριση σταθερή αποθήκευσης μέχρι να είναι ασφαλείς όλες τις εγγραφές στο συσχετισμένο αρχείο καταγραφής σε μια θέση αποθήκευσης σταθερή.
Σταθερή αποθήκευσηςΊδιο με σταθερή αποθήκευσης.
Μεταβλητό χώρο αποθήκευσηςΟποιοδήποτε μέσο που θα Not παραμένουν ανέπαφα μέσω αποτυχίες.
SQL Server 2005, SQL Server 2000, SQL Server 7.0, παλαιότερες εκδόσεις του SQL Server και πολλά προϊόντα της κύριας βάσης δεδομένων στην αγορά σήμερα χρησιμοποιούν το πρωτόκολλο WAL (Write πρόσω καταγραφή).

Πρωτόκολλο WAL (Write πρόσω καταγραφή)

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

Το έγγραφο ARIES ορίζει WAL ως:
Το πρωτόκολλο WAL διεκδικήσεις εγγραφές καταγραφής που αντιπροσωπεύει τις αλλαγές σε ορισμένα δεδομένα πρέπει ήδη στο σταθερό χώρο αποθήκευσης πριν να επιτραπεί να αντικαταστήσετε την προηγούμενη έκδοση των δεδομένων σε σταθερή αποθήκευσης τροποποιημένα δεδομένα. Αυτό σημαίνει ότι το σύστημα δεν επιτρέπεται να γράψει μια ενημερωμένη σελίδα έκδοση σταθερή αποθήκευσης της σελίδας τουλάχιστον μέχρι τμήματα Αναίρεση εγγραφές καταγραφής που περιγράφουν τις ενημερωμένες εκδόσεις στη σελίδα έχουν εγγραφεί στο σταθερό χώρο αποθήκευσης.
Για περισσότερες πληροφορίες σχετικά με την καταγραφή εγγραφής μπροστά, ανατρέξτε στην τεκμηρίωση του SQL Server Books Online.

SQL Server και το WAL

SQL Server 2005, SQL Server 2000, SQL Server 7.0 και παλιότερες εκδόσεις του SQL Server χρησιμοποιούν το πρωτόκολλο WAL. Για να εξασφαλιστεί η ορθή committal μια συναλλαγή, όλες οι εγγραφές καταγραφής που σχετίζεται με τη συναλλαγή πρέπει να στερεώνεται στο σταθερό χώρο αποθήκευσης.

Να διευκρινιστεί αυτό, εξετάστε το ακόλουθο παράδειγμα συγκεκριμένα (για αυτό το παράδειγμα, ας υποθέσουμε ότι δεν υπάρχει ευρετήριο και η σελίδα που επηρεάζονται είναι σελίδα 150).
BEGIN TRANSACTION
   INSERT INTO tblTest VALUES (1)
COMMIT TRANSACTION
				
Τώρα αναλύστε τη δραστηριότητα σε simplistic καταγραφή βήματα:
Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
ΠρότασηΕνέργειες που εκτελούνται
BEGIN TRANSACTIONΕγγράφονται στην περιοχή προσωρινής αποθήκευσης καταγραφής αλλά δεν είναι απαραίτητο να εκκενώσει σταθερή αποθήκευσης επειδή SQL Server έχει πραγματοποιήσει αλλαγές στο φυσικό.
INSERT INTO tblTest1. Ανάκτηση δεδομένων 150 σελίδα στη μνήμη cache δεδομένων SQL Server, αν δεν είναι ήδη διαθέσιμες.

2. Η σελίδα είναι μανδαλωμένη, καρφιτσωμένα, και επισημανθεί ως προβληματικός, και λαμβάνονται κατάλληλα κλειδωμάτων.

3. Μια εγγραφή καταγραφής εισαγωγής είναι ενσωματωμένες και προστίθεται στη μνήμη cache του αρχείου καταγραφής.

4. Μια νέα γραμμή προστίθεται στη σελίδα δεδομένων.

5. Το κλείθρο αποδεσμεύεται.

6. Οι εγγραφές καταγραφής που σχετίζεται με τη συναλλαγή ή σελίδα πρέπει να εκκενώνεται στο σημείο αυτό επειδή όλες οι αλλαγές που παραμένουν στο μεταβλητό χώρο αποθήκευσης.
ΟΛΟΚΛΉΡΩΣΗ ΣΥΝΑΛΛΑΓΉΣ1. Μια εγγραφή ολοκλήρωσης καταγραφής σχηματίζεται και εγγραφές καταγραφής που σχετίζεται με τη συναλλαγή πρέπει να εγγραφεί στο σταθερό χώρο αποθήκευσης. Η συναλλαγή δεν θεωρείται δεσμεύεται έως ότου εγγραφές καταγραφής έχουν αντιστοιχιστεί σωστά στο σταθερό χώρο αποθήκευσης.

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

3. Συναλλαγών κλειδώματα έχουν κυκλοφορήσει.
Μην συγχέεται με το κλείδωμα και καταγραφή. Παρότι είναι σημαντικές, κλείδωμα και καταγραφή είναι ξεχωριστά ζητήματα κατά το χειρισμό του WAL. Στο παραπάνω παράδειγμα, SQL Server 7.0, SQL Server 2000 και SQL Server 2005 γενικά κρατήστε το κλείθρο στη σελίδα 150 για το χρόνο είναι απαραίτητο να εκτελέσετε αλλαγές φυσική εισαγωγή στη σελίδα, δεν ολόκληρη η ώρα της συναλλαγής. Τον τύπο κλειδώματος κατάλληλα καθορίζεται για την προστασία των γραμμών, περιοχής, σελίδα ή πίνακα όπως είναι απαραίτητο. Ανατρέξτε στα ηλεκτρονικά βιβλία SQL Server Books Online κλειδώματος ενότητες για περισσότερες λεπτομέρειες σχετικά με τους τύπους κλειδώματος.

Εξετάζοντας το παράδειγμα με περισσότερες λεπτομέρειες, θα μπορεί να ρωτήσετε τι συμβαίνει όταν εκτελεστεί διεργασίες LazyWriter ή σημείων ελέγχου. SQL Server 7.0, SQL Server 2000 και SQL Server 2005 εκδίδει όλα τα κατάλληλα Εκκαθαρίσεις στο σταθερό χώρο αποθήκευσης για εγγραφές καταγραφής συναλλαγών που σχετίζεται με το προβληματικό και καρφιτσωμένων σελίδα. Αυτό εξασφαλίζει το πρωτόκολλο WAL μια σελίδα δεδομένων εγγράφονται ποτέ στο σταθερό χώρο αποθήκευσης μέχρι την εκκαθάριση των εγγραφών συσχετισμένο αρχείο καταγραφής συναλλαγών.

Χώρου αποθήκευσης SQL Server και σταθερή

SQL Server 7.0, SQL Server 2000 και SQL Server 2005 βελτίωση λειτουργίες σελίδα καταγραφής και δεδομένων, συμπεριλαμβάνοντας τις γνώσεις μεγέθη τομέα δίσκου (συνήθως 512 byte).

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

SQL Server 7.0, SQL Server 2000 και SQL Server 2005 χρησιμοποιήστε σελίδες 8 KB δεδομένων και καταγραφής (εάν εκκαθάριση) σε πολλαπλάσια του μεγέθους τομέα. (Οι περισσότερες μονάδες δίσκου χρησιμοποιήστε 512 byte ως το προεπιλεγμένο μέγεθος τομέα.) Στην περίπτωση αποτυχίας, του SQL Server να λογαριασμού για λειτουργίες εγγραφής μεγαλύτερο από έναν τομέα υιοθετώντας καταγραφής ισοτιμίας και τεχνικές Σκισμένες εγγραφής.

Ανίχνευση σχισμένης σελίδας

Η παρακάτω ενότητα προέρχεται από τον SQL Server 7.0 Books Online που περιγράφει την Ανίχνευση σχισμένης σελίδας:
Αυτή η επιλογή σας επιτρέπει να εντοπίσει τις ημιτελείς λειτουργίες εισαγωγής/εξαγωγής που οφείλονται σε διακοπές ρεύματος ή άλλες διακοπές λειτουργίας SQL Server. Όταν είναι αληθής, προκαλεί bit για να αναστραφεί για κάθε τομέα 512 byte σε μια σελίδα 8 kilobyte (KB) βάση δεδομένων κάθε φορά που είναι γραμμένο στη σελίδα στο δίσκο. Εάν bit σε εσφαλμένη κατάσταση όταν η σελίδα είναι νεότερη διαβάζεται από τον SQL Server, στη συνέχεια στη σελίδα έχει γραφτεί λανθασμένα. Εντοπίστηκε Ανίχνευση σχισμένης σελίδας. Σκισμένες σελίδες ανιχνεύονται συνήθως κατά την αποκατάσταση, επειδή είναι πιθανό η ανάγνωση από ανάκτησης κάθε σελίδα που έχει γραφτεί λανθασμένα.

Παρόλο που οι σελίδες βάσης δεδομένων SQL Server είναι 8 KB, δίσκους εκτελεί λειτουργίες εισόδου/εξόδου, χρησιμοποιώντας ένα τομέα 512 byte. Επομένως, καταγράφονται 16 τομείς ανά σελίδα βάσης δεδομένων. Ανίχνευση σχισμένης σελίδας μπορεί να προκύψει εάν το σύστημα αποτύχει (για παράδειγμα, λόγω διακοπής ρεύματος) μεταξύ του χρόνου, το λειτουργικό σύστημα εγγράφει τον πρώτο τομέα 512 byte στο δίσκο και την ολοκλήρωση της λειτουργίας 8 KB I/O. Εάν ο πρώτος τομέας της σελίδας βάσης δεδομένων είναι γραμμένο με επιτυχία πριν από την αποτυχία, της σελίδας βάσης δεδομένων στο δίσκο θα εμφανίζεται ως ενημερώθηκε, παρόλο που δεν μπορεί να έχει επιτυχία.

Χρήση της μνήμης cache ελεγκτή δίσκου μπαταρίας μπορεί να εξασφαλίσει επιτυχή εγγραφή δεδομένων στο δίσκο ή δεν εγγράφονται καθόλου. Στην περίπτωση αυτή, το κάνετε σύνολο σχίσιμο εντοπισμός σελίδας την τιμή true, για δεν είναι απαραίτητη.
ΣΗΜΕΙΩΣΗ Ανίχνευση σχισμένης σελίδας είναι ενεργοποιημένη από προεπιλογή στον SQL Server 7.0. Δείτε sp_dboption Για να ενεργοποιήσετε την ανίχνευση του συστήματός σας.

Ισοτιμία καταγραφής

Έλεγχος ισοτιμίας στο αρχείο καταγραφής είναι παρόμοια με την Ανίχνευση σχισμένης σελίδας. Κάθε τομέας 512-byte περιέχει bit ισοτιμίας. Αυτά τα bit ισοτιμίας πάντα γράφονται με εγγραφή καταγραφής και αξιολογείται όταν ανακτηθεί εγγραφή καταγραφής. Επιβάλλοντας καταγραφής εγγράφει σε ένα όριο 512-byte, SQL Server 7.0, SQL Server 2000 και SQL Server 2005 να εξασφαλίσετε ότι committal λειτουργίες εγγράφονται πλήρως στους τομείς φυσικού δίσκου.

Οι αλλαγές παρέχουν συνέπεια αυξημένη δεδομένων, ακόμη και σε προηγούμενες εκδόσεις του SQL Server.

Εκδόσεις παλαιότερες από την έκδοση 7.0 του SQL Server

Προηγούμενες εκδόσεις του SQL Server από την έκδοση 7.0 δεν παρείχε καταγραφής ισοτιμίας ή εγκαταστάσεις ανίχνευσης Σκισμένες bit. Πράγματι, αυτές οι εκδόσεις να γράψετε στην ίδια σελίδα καταγραφής πολλές φορές μέχρι εγγραφές καταγραφής γέμισμα σελίδας καταγραφής 2 KB. Αυτό μπορεί να εκθέσει συναλλαγές που έχουν ολοκληρωθεί με επιτυχία. Εάν έχει την επανεγγραφή σελίδα καταγραφής κατά την αποτυχία, τομέας με δεσμευμένη συναλλαγή μπορεί να δεν λάβετε επανεγγραφή σωστά.

Επιπτώσεις στην απόδοση

Όλες τις εκδόσεις του SQL Server, ανοίξτε το αρχείο καταγραφής και αρχεία δεδομένων χρησιμοποιώντας τα Win32 Η διασύνδεση CreateFile η συνάρτηση. Το dwFlagsAndAttributes μέλος περιλαμβάνει το FILE_FLAG_WRITE_THROUGH επιλογή όταν ανοιχτεί από τον SQL Server.
FILE_FLAG_WRITE_THROUGH
Καθοδηγεί το σύστημα εγγραφής μέσω οποιουδήποτε ενδιάμεσου cache και να μεταβείτε απευθείας στο δίσκο. Το σύστημα εξακολουθεί να cache λειτουργίες εγγραφής, αλλά δεν lazily εκκαθάριση.

Επιλογή FILE_FLAG_WRITE_THROUGH εξασφαλίζει ότι όταν μια εγγραφή λειτουργία επιστρέφει επιτυχημένη ολοκλήρωση αποθηκεύονται σωστά τα δεδομένα στο σταθερό χώρο αποθήκευσης. Αυτό ευθυγραμμίζεται με το πρωτόκολλο WAL διασφάλιση των δεδομένων.
Πολλές μονάδες δίσκου (SCSI και IDE) περιέχουν πλακέτας μνημών cache 512 KB, 1 MB, ή μεγαλύτερο. Ωστόσο, μνημών cache του δίσκου συνήθως βασίζονται σε πυκνωτές και όχι μια λύση μπαταρίας. Αυτές προσωρινή αποθήκευση μηχανισμοί δεν μπορεί να εγγυηθεί κύκλου εγγράφει μέσω μιας ενέργειας ή παρόμοια αποτυχία σημείο. Μόνο εγγυώνται την ολοκλήρωση των λειτουργιών εγγραφής τομέα. Αυτό είναι ειδικά γιατί το Σκισμένες εγγραφής και καταγραφής ανίχνευσης ισοτιμίας δημιουργήθηκαν σε SQL Server 7.0, SQL Server 2000 και SQL Server 2005. Όπως οι μονάδες δίσκου θα συνεχίσει να αυξάνεται σε μέγεθος, να μεγαλώσει το μνημών cache και μπορούν να εκθέσουν μεγαλύτερες ποσότητες δεδομένων κατά τη διάρκεια μιας αποτυχίας.

Πολλοί προμηθευτές υλικού παρέχουν λύσεις ελεγκτή δίσκου μπαταρίας. Αυτές οι μνήμες cache ελεγκτή να διατηρούν τα δεδομένα προσωρινής αποθήκευσης για μερικές ημέρες και ακόμη και να επιτρέψετε την προσωρινή αποθήκευση υλικού μπορούν να τοποθετηθούν σε έναν δεύτερο υπολογιστή. Όταν αποκαθίσταται σωστά ενέργειας, τα unwritten δεδομένα εντελώς εκκαθάριση πριν επιτραπεί περαιτέρω πρόσβαση δεδομένων. Πολλά από αυτά επιτρέπουν ποσοστό ανάγνωση έναντι cache εγγραφής θα καθοριστούν για βέλτιστες επιδόσεις. Ορισμένα περιέχουν περιοχές αποθήκευσης μεγάλης μνήμης. Στην πραγματικότητα, για ένα πολύ συγκεκριμένο τμήμα της αγοράς, ορισμένοι προμηθευτές υλικού παρέχουν υψηλής ποιότητας δίσκου μπαταρίας προσωρινή αποθήκευση ελεγκτή συστήματα με 6 GB της μνήμης cache. Αυτά μπορεί να βελτιώσει σημαντικά τις επιδόσεις της βάσης δεδομένων.

Για προχωρημένους προσωρινής αποθήκευσης υλοποιήσεις θα χειριστεί το FILE_FLAG_WRITE_THROUGH αίτηση απενεργοποιώντας δεν cache ελεγκτή επειδή παρέχουν δυνατότητες true επανεγγραφή της μια επαναφορά συστήματος, διακοπής ρεύματος ή άλλο σημείο αποτυχίας.

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

Τομέας παραγγελίας

Μια κοινή τεχνική που χρησιμοποιείται για να αυξήσετε τις επιδόσεις I/O είναι τομέας παραγγελίας. Για να αποφύγετε μηχανική κίνηση κεφαλής αιτήσεις ανάγνωσης/εγγραφής έχουν ταξινομηθεί, επιτρέποντας πιο συνεπή κίνηση της κεφαλής να ανακτήσετε ή να αποθηκεύσετε δεδομένα.

Η μνήμη cache μπορεί να διατηρήσει πολλές καταγραφής και δεδομένα εγγραφής αιτήσεις ταυτόχρονα. Το πρωτόκολλο WAL και την εφαρμογή διακομιστή SQL του πρωτοκόλλου WAL απαιτούν εκκαθάριση του αρχείου καταγραφής εγγράφει στο σταθερό χώρο αποθήκευσης πριν τη σελίδα εγγραφής μπορεί να εκδοθεί. Ωστόσο, η χρήση της μνήμης cache μπορεί να επιστρέψει επιτυχία από μια αίτηση εγγραφής καταγραφής χωρίς τα δεδομένα που εγγράφονται στην πραγματική μονάδα δίσκου (δηλαδή, εγγράφεται στο σταθερό χώρο αποθήκευσης). Αυτό μπορεί να οδηγήσει σε SQL Server έκδοση αίτηση εγγραφής σελίδα δεδομένων.

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

Για τους σκοπούς της συζήτησης, προϋποθέτουν ότι ταξινομούνται όλους τους τομείς της σελίδας δεδομένων εγγραφής πριν τομέων ταιριαστές εγγραφές καταγραφής. Αυτό αμέσως παραβιάζει το πρωτόκολλο WAL. Η μνήμη cache είναι εγγραφή μια σελίδα δεδομένων πριν εγγραφές καταγραφής. Εκτός εάν η μνήμη cache είναι πλήρως μπαταρίας, αποτυχία μπορεί να προκαλέσει καταστροφική αποτελέσματα.

Κατά την αξιολόγηση των συντελεστών βέλτιστες επιδόσεις για ένα διακομιστή βάσης δεδομένων, υπάρχουν πολλοί παράγοντες για να λάβετε υπόψη. Η κυριότερη αυτά τα θέματα είναι "Σύστημα μου επιτρέπει έγκυρες δυνατότητες FILE_FLAG_WRITE_THROUGH;"

ΣΗΜΕΙΩΣΗ Οποιαδήποτε προσωρινής αποθήκευσης που χρησιμοποιείτε Πρέπει να γίνει επανεκκίνηση υποστηρίζει πλήρως μια λύση μπαταρίας. Όλα τα άλλα μηχανισμών προσωρινής αποθήκευσης είναι ύποπτα για καταστροφή δεδομένων και την απώλεια δεδομένων. SQL Server καταβάλλει κάθε δυνατή προσπάθεια για να εξασφαλιστεί η WAL, ενεργοποιώντας την FILE_FLAG_WRITE_THROUGH.

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

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

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

Εγγραφή Cache στοίβαξης

Εγγραφή Cache στοίβαξης είναι παρόμοια με την παραγγελία του τομέα. Στον ακόλουθο ορισμό έχει ληφθεί άμεσα από την κορυφαία τοποθεσία Web κατασκευαστή μονάδα δίσκου IDE:
Κανονικά, αυτή η λειτουργία είναι ενεργή. Γράψτε τη λειτουργία προσωρινής αποθήκευσης δέχεται υποδοχής εγγραφή δεδομένων στο buffer μέχρι το buffer είναι πλήρη ή να ολοκληρωθεί η μεταφορά του κεντρικού υπολογιστή.

Ξεκινά μια εργασία εγγραφής δίσκου αποθήκευσης δεδομένων κεντρικού υπολογιστή στο δίσκο. Εντολές write κεντρικός υπολογιστής συνεχίζει να είναι αποδεκτή και μεταφορά δεδομένων στο buffer μέχρι τη στοίβα εντολή εγγραφής είναι πλήρης ή να το buffer δεδομένων είναι πλήρης. Η μονάδα δίσκου μπορεί να Αναδιάταξη εντολών εγγραφής για να βελτιστοποιήσετε την ταχύτητα μεταγωγής του δίσκου.

Αυτόματη εγγραφή ανακατανομή (AWR)

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

Ασφάλεια δεδομένων

Υπάρχουν πολλές προφυλάξεις διαχειριστή της βάσης δεδομένων θα πρέπει να λαμβάνονται για να εξασφαλίζουν την ασφάλεια των δεδομένων.
  • Είναι πάντα καλό να βεβαιωθείτε ότι είναι επαρκή για την ανάκτηση από μια καταστροφική αποτυχία στρατηγική αντιγράφων ασφαλείας σας. Εξωτερικός αποθήκευσης και οι άλλες προφυλάξεις είναι κατάλληλο.
  • Δοκιμή τη λειτουργία επαναφοράς βάσης δεδομένων σε ένα δευτερεύοντα ή βάση δεδομένων δοκιμής σε συχνή βάση.
  • Βεβαιωθείτε ότι οποιεσδήποτε συσκευές προσωρινής αποθήκευσης μπορεί να χειριστεί όλες τις περιπτώσεις αποτυχίας (ρεύματος, κατεστραμμένοι τομείς, εσφαλμένη μονάδες, σύστημα διακοπής ρεύματος, κλειδώματα, Συλλέκτη ενέργειας και ούτω καθεξής).
  • Βεβαιωθείτε ότι μια συσκευή προσωρινής αποθήκευσης:
    • Έχει ενσωματώσει εφεδρική μπαταρία.
    • Να επανέκδοση εγγράφει με ρεύμα προς τα επάνω.
    • Μπορεί να απενεργοποιηθεί πλήρως αν είναι απαραίτητο.
    • Χειρίζεται κατεστραμμένου τομέα re-mapping πραγματικού χρόνου.
  • Ενεργοποίηση σχισμένης σελίδας. έχει ελάχιστη επίδραση στην απόδοση.
  • Ρυθμίσετε μονάδες δίσκων RAID επιτρέποντας θερμών μετάθεσης μια εσφαλμένη μονάδας δίσκου, αν είναι δυνατόν.
  • Για να χρησιμοποιήσετε νεότερη ελεγκτές προσωρινής αποθήκευσης που επιτρέπουν την προσθήκη του χώρου στο δίσκο χωρίς επανεκκίνηση του λειτουργικού Συστήματος. Αυτό μπορεί να είναι ιδανική λύση.

Δοκιμή μονάδων

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

ΣΗΜΕΙΩΣΗ Βεβαιωθείτε ότι ένα εναλλακτικό μηχανισμό αποθήκευσης μπορεί να χειριστεί σωστά πολλούς τύπους αποτυχία.

Microsoft έχει πραγματοποιήσει έλεγχο σε διάφορες μονάδες SCSI και IDE χρησιμοποιώντας το SQLIOStress βοηθητικό πρόγραμμα. Αυτό το βοηθητικό πρόγραμμα προσομοιώνει δραστηριότητα βαρύ ασύγχρονη ανάγνωση εγγραφή για μια συσκευή καταγραφής και συσκευή προσομοίωση δεδομένων. Δοκιμή επιδόσεων στατιστικές δείχνουν λειτουργίες μέσο εγγραφής ανά δευτερόλεπτο μεταξύ 50 και 70 για μια μονάδα δίσκου με απενεργοποιημένη προσωρινή και μια περιοχή RPM μεταξύ 5,200 και 7.200.

Για περισσότερες πληροφορίες και λεπτομέρειες σχετικά με το SQLIOStress βοηθητικό πρόγραμμα, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
231619 Πώς να χρησιμοποιήσετε το βοηθητικό πρόγραμμα SQLIOStress για να τονίσετε ένα υποσύστημα δίσκου όπως SQL Server
Πολλοί κατασκευαστές PC (για παράδειγμα, Compaq, Dell, πύλη, HP και ούτω καθεξής) σειρά τις μονάδες δίσκου με cache εγγραφής απενεργοποιημένη. Ωστόσο, δοκιμών δείχνει ότι αυτό δεν μπορούν πάντα να την υπόθεση ώστε πάντα δοκιμή πλήρως.

Συσκευές δεδομένων

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

Σελίδες δεδομένων μπορούν να παραμένουν στη μνήμη cache μέχρι τη διαδικασία LazyWriter ή σημείου ελέγχου εκκαθαρίσεων τους σε σταθερό χώρο αποθήκευσης. Χρησιμοποιώντας το πρωτόκολλο WAL για να εξασφαλίσετε ότι οι εγγραφές καταγραφής αποθηκεύονται σωστά εξασφαλίζει ότι αποκατάστασης να ανακτήσουν μια σελίδα δεδομένων σε μια γνωστή κατάσταση.

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

Αύξηση της απόδοσης

Η αρχική ερώτηση που προκύπτει είναι: "υπάρχει μια μονάδα δίσκου IDE που προσωρινή αποθήκευση αλλά όταν απενεργοποιημένη, επιδόσεις μου έγινε αισθητά μικρότερη από την αναμενόμενη--γιατί;"

Το SCSI μονάδες σε μια RPM 7.200 και πολλές μονάδες IDE ελεγχθεί από τη Microsoft εκτέλεση με ρυθμό RPM 5,200. Όταν απενεργοποιήσετε την εγγραφή προσωρινής αποθήκευσης του δίσκου IDE μηχανική απόδοση μπορεί να γίνονται ένα συντελεστή.

Υπάρχει πολύ σαφείς περιοχή για να αντιμετωπίσει τη διαφορά απόδοσης: "Διεύθυνση ταχύτητα κίνησης".

Υπάρχουν πολλές ηλεκτρονική επεξεργασία συστήματα (OLTP) που απαιτούν συναλλαγή υψηλό ρυθμό συναλλαγής. Για τα συστήματα αυτά, μπορείτε να χρησιμοποιήσετε έναν ελεγκτή προσωρινής αποθήκευσης που υποστηρίζει την cache εγγραφής και παρέχουν ενίσχυση απόδοση εξασφαλίζοντας την ακεραιότητα δεδομένων σωστά.

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

Δοκιμή δείχνει ότι η εγγραφή υψηλής δραστηριότητας των buffer που είναι μικρότερα από 512 KB ή πάνω από 2 MB μπορεί να προκαλέσει χαμηλές επιδόσεις.
Εξετάστε το ακόλουθο παράδειγμα:
CREATE TABLE tblTest ( iID int IDENTITY(1,1), strData char(10))
GO

SET NOCOUNT ON
GO

INSERT INTO tblTest VALUES ('Test')
WHILE @@IDENTITY < 10000
   INSERT INTO tblTest VALUES ('Test')
				
Οι παρακάτω είναι δείγμα αποτελεσμάτων δοκιμών για τον SQL Server:
SCSI(7200 rpm) 84 δευτερόλεπτα
SCSI(7200 rpm) 15 δευτερόλεπτα (ελεγκτής προσωρινής αποθήκευσης)

IDE(5200 rpm) 14 δευτερόλεπτα (ενεργοποιημένη cache μονάδας δίσκου)
IDE(5200 rpm) 160 δευτερόλεπτα
Αναδίπλωση ολόκληρη τη σειρά των πράξεων ΕΙΣΑΓΩΓΉΣ σε μία συναλλαγή εκτελείται σε περίπου 4 δευτερόλεπτα σε όλες τις διαμορφώσεις.

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

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

Προειδοποίηση Δεν συνιστάται να αυξήσετε το εύρος της συναλλαγής σας. Μακροχρόνιες συναλλαγές μπορεί να οδηγήσει σε υπερβολική και ανεπιθύμητες αποκλεισμού καθώς και αυξημένη επιβάρυνση. Χρησιμοποιήστε τους μετρητές επιδόσεων του SQL Server 7.0, SQL Server 2000 και SQL Server 2005 Βάσεις δεδομένων SQL Server: Για να προβάλετε τους μετρητές που βασίζεται σε αρχείο καταγραφής συναλλαγών. Συγκεκριμένα, Byte καταγραφής που εκκαθαρίστηκαν/δευτερόλεπτο να υποδείξετε πολλές μικρές συναλλαγές οδηγούν σε μηχανικό δίσκου υψηλής δραστηριότητας.

Κοιτάξτε τις δηλώσεις που σχετίζεται με το πλήρες αρχείο καταγραφής και να καθορίσετε εάν μπορεί να μειωθεί ο αριθμός των εκκαθαρίσεων καταγραφής. Στο παραπάνω παράδειγμα, υλοποιήθηκε μία συναλλαγή. Ωστόσο, σε πολλά σενάρια αυτό μπορεί να οδηγήσει σε ανεπιθύμητη συμπεριφορά κλειδώματος. Ελέγξτε τη σχεδίαση της συναλλαγής. Ίσως κάτι όπως παρακάτω, για να εκτελέσετε δέσμες για να μειώσετε το αρχείο καταγραφής συχνές και μικρές εκκαθάριση δραστηριότητα:
BEGIN TRAN
GO

INSERT INTO tblTest VALUES ('Test')
WHILE @@IDENTITY < 50
BEGIN
   INSERT INTO tblTest VALUES ('Test')

   if(0 = cast(@@IDENTITY as int) % 10)
   BEGIN
      PRINT 'Commit tran batch'
      COMMIT TRAN
      BEGIN TRAN
   END
END
GO

COMMIT TRAN
GO
				
6 Διακομιστή SQL.x ενδέχεται να δείτε την ίδια επίδραση στην απόδοση από συχνές και μικρές συναλλαγή εγγραφών στο αρχείο καταγραφής. 6 Διακομιστή SQL.x Ξαναγράφει στην ίδια σελίδα 2 KB καταγραφής, όπως οι συναλλαγές. Αυτό μπορεί να μειώσει το μέγεθος του αρχείου καταγραφής σημαντικά σε σύγκριση με τις εκκαθαρίσεις όριο τομέα 512 byte σε SQL Server 7.0, SQL Server 2000 και SQL Server 2005. Μείωση του μεγέθους του αρχείου καταγραφής απευθείας αφορά το ποσό της δραστηριότητας μηχανική μονάδα δίσκου. Ωστόσο, όπως εξηγείται ανωτέρω το 6 διακομιστή SQL.x ο αλγόριθμος μπορεί να εκθέσει ολοκληρωμένες συναλλαγές.
SQL Server απαιτεί συστήματα για την υποστήριξη «εγγυημένη παράδοση σταθερό μέσο», όπως στο πρόγραμμα Microsoft SQL Server Always-On αποθήκευσης λύση αναθεώρηση. FOΓια περισσότερες πληροφορίες σχετικά με τις απαιτήσεις εισόδου και εξόδου για το μηχανισμό διαχείρισης βάσης δεδομένων SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
967576Απαιτήσεις μηχανισμό εισόδου/εξόδου διακομιστή βάσης δεδομένων Microsoft SQL

Ιδιότητες

Αναγν. άρθρου: 230785 - Τελευταία αναθεώρηση: Παρασκευή, 27 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Λέξεις-κλειδιά: 
kbhowto kbinfo kbmt KB230785 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:230785

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

 

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