Δεν μπορείτε να επαναφέρετε αντίγραφα ασφαλείας της βάσης δεδομένων συστήματος διαφορετικά build του SQL Server

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

Συμπτώματα

Δεν μπορείτε να επαναφέρετε ένα αντίγραφο ασφαλείας ενός συστήματος (βάση δεδομένωνυπόδειγμα, μοντέλο, ή msdb) σε ένα διακομιστή build που είναι διαφορετικό από το build στην οποία το αντίγραφο ασφαλείας αρχικά πραγματοποιήθηκε. Μια προσπάθεια για εκτέλεση η επαναφορά προκαλεί το ακόλουθο μήνυμα λάθους προκύπτει:
Διακομιστής: Μήνυμα λάθους 3168, επίπεδο 16, κράτος 1, γραμμή 1
Δεν είναι δυνατή η επαναφορά αντιγράφων ασφαλείας της βάσης δεδομένων συστήματος στη συσκευή d:\temp\master.bak, επειδή δημιουργήθηκε από διαφορετική έκδοση του διακομιστή (134217904) από το διακομιστή (134217920).
Διακομιστής: Msg 3013, επίπεδο 16, κράτος 1, γραμμή 1
Μη ομαλός τερματισμός ΕΠΑΝΑΦΟΡΆ βάσης ΔΕΔΟΜΈΝΩΝ.

Αιτία

Είναι πιθανό ότι το σχήμα της βάσης δεδομένων των βάσεων δεδομένων συστήματος θα αλλάξει σε εκδόσεις διακομιστή. Για να εξασφαλίσετε ότι αυτή η αλλαγή στο σχήμα προκαλέσει τυχόν ασυνέπειες, μία πρώτη ελέγχων που εκτελεί την εντολή ΕΠΑΝΑΦΟΡΆΣ είναι σύγκριση του αριθμού build διακομιστή στο αρχείο αντιγράφου ασφαλείας και τον αριθμό build του διακομιστή στον οποίο ο χρήστης προσπαθεί να εκτελέσει την επαναφορά. Εάν δύο εκδόσεις είναι διαφορετικά, εμφανίζεται το μήνυμα λάθους και η λειτουργία επαναφοράς τερματίζεται με μη φυσιολογικό τρόπο.

Σημείωση Εγκατάσταση ενός service pack ή μια επείγουσα επιδιόρθωση Δόμηση αλλαγές αριθμό build του διακομιστή και εκδόσεις διακομιστή είναι πάντα προσαύξησης.

Ακολουθούν μερικά σενάρια στα οποία μπορεί να προκύψει αυτό το ζήτημα:
  • Ένας χρήστης επιχειρεί να επαναφέρετε μια βάση δεδομένων συστήματος διακομιστή a από ένα αντίγραφο ασφαλείας της B. διακομιστές a και b είναι σε διαφορετικό διακομιστή εκδόσεις διακομιστή. Για παράδειγμα, μπορεί να είναι διακομιστής a σε ένα build RTM και Β διακομιστή μπορεί να είναι στο service pack 1 (SP1) build.
  • Ένας χρήστης επιχειρεί να επαναφέρετε μια βάση δεδομένων συστήματος από ένα αντίγραφο ασφαλείας που λαμβάνονται στον ίδιο διακομιστή. Ωστόσο, ο διακομιστής ήταν εκτελείται διαφορετικά build όταν παρουσιάστηκε το αντίγραφο ασφαλείας. Δηλαδή, ο διακομιστής αναβαθμίστηκε μετά τη δημιουργία αντιγράφων ασφαλείας πραγματοποιήθηκε.

Εναλλακτικός τρόπος αντιμετώπισης

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

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

Microsoft SQL Server 2000 και Microsoft SQL Server 2005 παρέχουν τις ακόλουθες δύο μεθόδους για να προσδιορίσετε το τρέχον build του SQL Server:
  • Η μέθοδος 1
    SELECT @@version
    Αυτός ο κώδικας επιστρέφει κείμενο παρόμοιο με:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • Μέθοδος 2
    SELECT SERVERPROPERTY('ProductVersion')
    Αυτός ο κώδικας επιστρέφει κείμενο παρόμοιο με:
    8.00.192
    (1 row(s) affected)
Για τους σκοπούς του παρόντος άρθρου, αυτός ο αριθμός build αναφέρεται ως "SQL Server Δόμηση" στο υπόλοιπο μέρος αυτού του άρθρου.

Μπορείτε να προσδιορίσετε το build στην οποία παρουσιάστηκε το αντίγραφο ασφαλείας, χρησιμοποιώντας την ακόλουθη εντολή από το αρχείο αντιγράφου ασφαλείας:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
Στο αποτέλεσμα που δημιουργείται, τις ακόλουθες στήλες τρία (3) παρέχουν τις πληροφορίες διακομιστή build:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
Για τους σκοπούς του παρόντος άρθρου, αυτός ο αριθμός build αναφέρεται ως "Αντίγραφο ασφαλείας Δόμηση" για το υπόλοιπο αυτού του άρθρου.

Στο παράδειγμα, "SQL Server Δόμηση" είναι 8.00.192, ενώ το "αντίγραφο ασφαλείας Δόμηση" είναι 8.00.176. Επειδή οι δύο εκδόσεις είναι διαφορετικές, δεν επιτρέπεται η λειτουργία επαναφοράς και παρουσιάζεται μήνυμα λάθους 3168.

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

Εάν ενεργοποιηθεί η προσπάθεια επαναφοράς του υπόδειγμα βάση δεδομένων, μπορείτε να χρησιμοποιήσετε τα ακόλουθα βήματα για να επιχειρήσετε μια επιτυχή επαναφορά:
  1. Αποσυνδέστε όλες τις βάσεις δεδομένων χρήστη που υπάρχει στο σύστημα, χρησιμοποιώντας το sp_detach_db αποθηκευμένη διαδικασία. Για περισσότερες πληροφορίες σχετικά με την αποσύνδεση των βάσεων δεδομένων χρήστη, ανατρέξτε στο θέμα "Επισύναψη και βάσεων αποσύνδεση δεδομένων" στο SQL Server 2000 Books Online. Εάν χρησιμοποιείτε SQL Server 2005, δείτε το "Detaching και προσάρτηση μιας βάσης δεδομένων" θέμα στο SQL Server 2005 Books Online. Μεταξύ έλεγχο, το παρακάτω ερώτημα επιστρέφει μια λίστα όλων των βάσεων δεδομένων χρήστη του συστήματος:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Δημιουργία αντιγράφων ασφαλείας του msdb και μοντέλο βάσεις δεδομένων του συστήματος, χρησιμοποιώντας τις ακόλουθες εντολές:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Εάν "Αντίγραφο ασφαλείας Δόμηση" είναι μεγαλύτερη από "SQL Server Δόμηση", εγκαταστήστε τα αναγκαία service pack ή επείγουσα επιδιόρθωση δημιουργεί επαναφοράς του λογισμικού διακομιστή προς τα εμπρός, το "αντίγραφο ασφαλείας Δημιουργία" που καθορίστηκε προηγουμένως. Στη συνέχεια, μεταβείτε στο βήμα 6.
  4. Κατάργηση SQL Server 2000 ή του SQL Server 2005. Για περισσότερες πληροφορίες σχετικά με την κατάργηση του SQL Server 2000, ανατρέξτε στο θέμα "Τρόπος κατάργησης του SQL Server 2000" στο SQL Server 2000 Books Online.
  5. Επανεγκατάσταση του SQL Server 2000 ή SQL Server 2005 και όλες τις απαραίτητες τα service pack ή επείγουσα επιδιόρθωση δημιουργεί επαναφοράς του λογισμικού διακομιστή προς τα εμπρός, το "αντίγραφο ασφαλείας Δημιουργία" που καθορίστηκε προηγουμένως.
  6. Εκκίνηση του διακομιστή σε κατάσταση λειτουργίας ενός χρήστη και να επαναφέρετε το υπόδειγμα βάση δεδομένων, χρησιμοποιώντας το αρχείο αντιγράφου ασφαλείας για αυτό το build. Για οδηγίες σχετικά με την επαναφορά του υπόδειγμα βάση δεδομένων, ανατρέξτε στο θέμα "της βάσης του υποδείγματος επαναφορά δεδομένων από ένα τρέχον αντίγραφο ασφαλείας" σε SQL Server 2000 Books Online. Εάν χρησιμοποιείτε SQL Server 2005, ανατρέξτε στο θέμα "Επαναφορά της κύριας βάσης δεδομένων" στο SQL Server 2005 Books Online.
  7. Μετά την επιτυχή επαναφορά του υπόδειγμα βάση δεδομένων, πρέπει να τερματίζετε τη λειτουργία κάτω και ξεκινήστε πάλι την υπηρεσία SQL Server.
  8. Εάν το "αντίγραφο ασφαλείας Δόμηση" είναι μεγαλύτερη από "SQL Server Δόμηση", μεταβείτε στο βήμα 10.
  9. Εφαρμόστε εκ νέου τα service pack ή εκδόσεις επειγουσών επιδιορθώσεων που είναι απαραίτητα για το λογισμικό διακομιστή προς τα εμπρός "SQL Server έκδοση".
  10. Επαναφορά του msdb και μοντέλο βάσεις δεδομένων από τα αντίγραφα ασφαλείας που δημιουργήσατε στο βήμα 2. Εάν χρησιμοποιείτε SQL Server 2005, ανατρέξτε στο θέμα "Επαναφορά βάσεων δεδομένων μοντέλο και msdb" στο SQL Server 2005 Books Online.
  11. Αποσυνδέστε όλες τις βάσεις δεδομένων του χρήστη, χρησιμοποιώντας το sp_attach_db αποθηκευμένη διαδικασία. Για περισσότερες πληροφορίες σχετικά με τον τρόπο για να επανασυνδέσετε τη βάση δεδομένων, ανατρέξτε στο θέμα "Επισύναψη και βάσεων αποσύνδεση δεδομένων" στο SQL Server 2000 Books Online.
Τυχόν αλλαγές που έγιναν για την υπόδειγμα βάση δεδομένων μετά τη δημιουργία αντιγράφων των το υπόδειγμα πραγματοποιήθηκε είναι τώρα χάνονται και πρέπει να εφαρμοστούν με μη αυτόματο τρόπο.
Εάν επιχειρήσετε τη λειτουργία επαναφοράς από το μοντέλο ή το msdb βάση δεδομένων, μπορείτε να χρησιμοποιήσετε τα ακόλουθα βήματα για να επιλύσετε αυτό το ζήτημα. Για να παρουσιάσει αυτή τη διαδικασία με ένα παράδειγμα, αυτό το άρθρο αναφέρεται στον αρχικό διακομιστή ποια από αυτές τις βάσεις δεδομένων, πείτε msdb, είναι η επαναφορά ως διακομιστής A. Η διαδικασία αυτή περιλαμβάνει την εγκατάσταση του SQL Server σε ένα διαφορετικό διακομιστή b για να αποφύγετε το μήνυμα λάθους "3168". Φυσικά, η υπόθεση είναι να έχετε μόνο ένα έγκυρο αντίγραφο από παλαιότερα build για το msdb στο διακομιστή A.
  1. Εγκατάσταση του SQL Server 2000 σε διακομιστή B (με τις ίδιες ρυθμίσεις συρραφής ως διακομιστής A) και τα service pack ή εκδόσεις επείγουσας επιδιόρθωσης είναι απαραίτητο για να λάβετε το λογισμικό του διακομιστή, το "αντίγραφο ασφαλείας Δημιουργία".
  2. Μετά την εγκατάσταση του SQL Server 2000, η εκκίνηση της υπηρεσίας SQL Server και προσπαθήστε να επαναφέρετε το msdb βάση δεδομένων από το αρχείο αντιγράφου ασφαλείας. Η επαναφορά λειτουργεί εάν δημιουργήσετε στο διακομιστή και το build στον οποίο πραγματοποιήθηκε η δημιουργία αντιγράφων ασφαλείας είναι πανομοιότυπα.
  3. Εάν το "αντίγραφο ασφαλείας Δόμηση" είναι μεγαλύτερη από την "Τρέχουσα Δόμηση", μεταβείτε στο βήμα 5.
  4. Μετά την επιτυχή επαναφορά, δημιουργεί αναγκαίο να πραγματοποιήσει το λογισμικό διακομιστή προς τα εμπρός στα "Τρέχουσα Δόμηση" αναβάθμιση του SQL Server 2000 σε διακομιστή B, εφαρμόζοντας τα service pack ή επείγουσας επιδιόρθωσης.
  5. Αφού ολοκληρωθεί η αναβάθμιση, δημιουργήστε αντίγραφα ασφαλείας από το msdb βάση δεδομένων. Τώρα μπορείτε να την επαναφέρετε από αυτό το αντίγραφο ασφαλείας σε διακομιστή A, δεδομένου ότι το build του διακομιστή στον οποίο πραγματοποιήθηκε η δημιουργία αντιγράφων ασφαλείας και "Τρέχουσα Δόμηση" είναι ίδιες.
Η ίδια διαδικασία λειτουργεί για το μοντέλο βάση δεδομένων καθώς και. Και πάλι, οι αλλαγές που γίνονται σε αυτές τις βάσεις δεδομένων, επειδή η δημιουργία αντιγράφων ασφαλείας πραγματοποιήθηκε χάνονται και πρέπει να εφαρμοστούν με μη αυτόματο τρόπο.

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

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

Ιδιότητες

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

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

 

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