Μιας και με το χθεσινό μου post είδαμε κάποια νέα καλούδια του SQL Server 2012, λέω και σήμερα να συνεχίσω σε αυτή την κατηγορία με αυτό το post.
Εισαγωγή
Από την έκδοση του SQL Server 2005 έχουμε την δυνατότητα να μπορούμε να κάνουμε restore συγκεκριμένες σελίδες σε μια database όταν αυτή έχει χαρακτηριστεί σαν suspect ή έχουμε λάθη όπως 823, 824.
Μέχρι τώρα κάτι τέτοιο ήταν εφικτό να γίνει κάνοντας page(s) restore με την RESTORE (T-SQL command). Προσωπικά προτιμώ τα commands από το UI καθώς νιώθω καλύτερα, βέβαια αυτό είναι υποκειμενικό και βγαίνει κυρίως από το 25ετές background μου σαν developer.
Παρόλα αυτά όμως το περιβάλλον του SSMS είναι εξαιρετικό και θα ήταν παράληψη μου να αναφέρομαι στις βελτιώσεις που έχουν γίνει σε αυτό.
Μια σημαντική βελτίωση για τους DBA, ιδιαίτερα για αυτούς που δεν είναι αμιγώς DBA αλλά έχουν και άλλα task με τα οποία γεμίζουν την ημέρα τους (part-time DBA) είναι η δυνατότητα να υλοποιήσουν page restore χωρίς να χρειάζονται να γνωρίζουν ούτε που θα βρουν τις προβληματικές σελίδες, ούτε να γνωρίζουν το syntax της RESTORE αλλά και την διαδικασία που πρέπει να ακολουθήσουν.
Η διαδικασία με εντολές
Θα έπρεπε να ξέρουν ότι για να βρουν τις προβληματικές σελίδες πρέπει να ρωτήσουν ένα system table που υπάρχει στην msdb database και αυτός είναι suspect_pages με το εξής query
select * from msdb.dbo.suspect_pages where database_id=<id of suspect database> ;
και με βάση τα δεδομένα αυτά θα πρέπει να έρθουν μετά και να γράψουν κατάλληλα την RESTORE όπως στο παράδειγμα.
RESTORE DATABASE <database> PAGE='1:57, 1:202, 1:916, 1:1016' FROM <file_backup_of_file_B> WITH NORECOVERY;
Φυσικά θα έπρεπε να γνωρίζουν και την διαδικασία που πρέπει να ακολουθήσουν ώστε να κάνουν σωστά κάτι τέτοιο και που δεν είναι άλλη από το να κάνουν restore την σελίδα (οι σελίδες) από το τελευταίο full/file/filegroup backup. Έπειτα να κάνουν restore τα diffs/logs και στο τέλος να πάρουν tail log backup και μετά αυτό να το κάνουν restore.
Restore Page window
Στον SQL Server 2012 πλέον τα πράγματα έχουν απλοποιηθεί για τους part-time DBA αλλά και για τους σκληροπυρηνικούς DBA.
Με γραφικό πλέον τρόπο μπορεί κάποιος να κάνει το συγκεκριμένο task αρκεί να κάνει right click στην βάση στην οποία θέλει κάνει page restore και από το menu που δείχνει η παρακάτω εικόνα να καλέσει τον παράθυρο που δείχνει η δεύτερη στην σειρά εικόνα
Σε αυτό μπορεί να πατήσει το Check Database Pages button το οποίο θα του φέρει τις προβληματικές σελίδες στο grid που υπάρχει ακριβώς από κάτω δίνοντας παράλληλα την δυνατότητα για προσθήκη ή αφαίρεση σελίδων.
Το σημαντικό όμως είναι ότι πλέον έχει αυτοματοποιήσει το βήμα του tail log backup το οποίο το συνδυάζει με το backup sets που χρειάζονται να γίνουν restore.
Με το Verify button κάνουμε ένα τελικό έλεγχο και εφόσον όλα είναι σωστά απλά πατάμε το OK button και εκτελείται η διαδικασία η οποία με την ολοκλήρωση της μας δίνει ξανά την βάση μας έτοιμη για χρήση.
Αυτό σημαίνει απλοποίηση!!!
Μέχρι το επόμενο μου post να είστε όλοι υγιείς και χαρούμενοι.
/*antonch*/