Δημιουργία αντιγράφων ασφαλείας και επαναφορά της βάσης δεδομένων SQL Server από τη γραμμή εντολών
Το πιο σημαντικό μέρος ενός σχεδίου συντήρησης του SQL Server είναι να δημιουργείτε αντίγραφα ασφαλείας των βάσεων δεδομένων σας τακτικά. Για να δημιουργήσετε αντίγραφα ασφαλείας μιας βάσης δεδομένων, δεν μπορείτε απλά να αντιγράψετε τα αντίστοιχα αρχεία MDF και LDF της βάσης δεδομένων, καθώς ο SQL Server έχει κλείδωμα σε αυτά. Αντ 'αυτού, θα πρέπει να δημιουργήσετε ένα πραγματικό αρχείο αντιγράφων ασφαλείας μέσω του SQL Server.
Ενώ αυτό μπορεί να γίνει με την ανάπτυξη ενός σχεδίου συντήρησης μέσα στο SQL Management Studio, οι δωρεάν εκδόσεις Express του SQL Server δεν προσφέρουν αυτή τη διεπαφή. Για να το επιλύσετε, μπορείτε εύκολα να δημιουργήσετε αντίγραφα ασφαλείας των βάσεων δεδομένων σας, εκτελώντας την παρακάτω εντολή, ενώ είστε συνδεδεμένοι ως Διαχειριστής των Windows:
SqlCmd -E -S Όνομα_διακομιστή -Q "BACKUP DATABASE [Ονομασία_διακομιστικής_εγκατάστασης] TO DISK =" X: PathToBackupLocation [Ονομασία_διακομιστή] .bak ""
Τα παρακάτω παραδείγματα θα βοηθήσουν.
Προεπιλεγμένη παράσταση του SQL Server:
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [MyDB] ΣΤΟ DISK =" D: BackupsMyDB.bak ""
Ονόματα διακομιστή SQL Server:
SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATABASE [MyDB] ΣΤΟ DISK =" D: BackupsMyDB.bak ""
Τα παραπάνω δημιουργούν ένα πλήρως αποκαταστατικό αντίγραφο ασφαλείας του "MyDB" στο αρχείο "D: BackupsMyDB.bak" το οποίο μπορεί να χρησιμοποιηθεί για αποκατάσταση καταστροφών. Φυσικά, μπορείτε να αλλάξετε τη θέση αντιγράφου ασφαλείας και το αρχείο σε ό, τι χρειάζεστε, αλλά βεβαιωθείτε ότι έχετε καθορίσει μια θέση φακέλου που υπάρχει στο τοπικό μηχάνημα. Αυτό το αρχείο αντιγράφων ασφαλείας μπορεί στη συνέχεια να αντιγραφεί σε μονάδα ταινίας ή σε άλλη εξωτερική θέση δημιουργίας αντιγράφων ασφαλείας.
Μια κοινή ερώτηση είναι "Μπορεί να δημιουργηθεί ένα αρχείο αντιγράφου ασφαλείας σε μια αντιστοιχισμένη μονάδα δίσκου ή μια θέση UNC;" και η γρήγορη απάντηση είναι όχι. Ο λόγος είναι επειδή η υπηρεσία Windows Server των Windows εκτελείται ως λογαριασμός χρήστη που έχει μόνο πρόσβαση στο τοπικό μηχάνημα. Θα μπορούσατε να αλλάξετε τον λογαριασμό που εκτελεί η υπηρεσία, αλλά αυτό αποθαρρύνεται ιδιαίτερα για λόγους ασφαλείας.
Επαναφορά μιας βάσης δεδομένων από τη γραμμή εντολών
Για να επαναφέρετε μια βάση δεδομένων από ένα αρχείο αντιγράφου ασφαλείας, απλά χρησιμοποιήστε την εντολή:
SqlCmd -E -S Όνομα_διακομιστή -Q "RESTORE DATABASE [Ονομασία_διακομιστή] FROM DISK =" X: PathToBackupFile [File_Name] .bak ""
Για παράδειγμα:
SqlCmd -E -S MyServer -Q "ΑΝΑΠΑΡΑΓΩΓΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ [MyDB] ΑΠΟ DISK =" D: BackupsMyDB.bak ""
Η παραπάνω εντολή θα επαναφέρει ένα αντίγραφο ασφαλείας του "MyDB" από τα δεδομένα που είναι αποθηκευμένα στο αρχείο αντιγράφων ασφαλείας "D: BackupsMyDB.bak". Τυχόν αλλαγές που έγιναν στο MyDB από τότε που δημιουργήθηκε το αντίγραφο ασφαλείας θα χαθούν.
Ένα σημαντικό πράγμα που πρέπει να θυμάστε όταν χρησιμοποιείτε την παραπάνω εντολή είναι ότι προορίζεται να χρησιμοποιηθεί στον ίδιο SQL Server που δημιουργήθηκε το αντίστοιχο αρχείο δημιουργίας αντιγράφων ασφαλείας. Τα αρχεία δημιουργίας αντιγράφων SQL αποθηκεύουν πληροφορίες "πίσω από τις σκηνές" που ελέγχουν πού και πώς αντιγράφονται τα αρχεία δεδομένων στο αντίγραφο ασφαλείας. Εάν επαναφέρετε ένα αντίγραφο ασφαλείας από διαφορετικό διακομιστή SQL, οι θέσεις διαδρομής στο αρχείο αντιγράφων ασφαλείας ενδέχεται να μην αντιστοιχούν στον διακομιστή στον οποίο επαναφέρετε και θα προκύψει ένα σφάλμα. Ενώ αυτό μπορεί να επιλυθεί, είναι πολύ πιο εύκολο να αποκαταστήσετε τα αντίγραφα ασφαλείας που δημιουργήθηκαν σε έναν άλλο SQL Server χρησιμοποιώντας το εργαλείο SQL Management Studio.
Σημείωση: οι παραπάνω εντολές θα δουλέψουν σε SQL 2005 και σε υψηλότερα (οποιαδήποτε έκδοση). Για SQL 2000 και νωρίτερα, αντικαταστήστε το 'SqlCmd' με το 'oSql'.