Κάθε φορά που στο μυαλό σου έρχεται η σκέψη να κάνεις upgrade ένα υπάρχον SQL Server instance ή κάποιες databases σε επόμενη έκδοση τα αισθήματα σου είναι ανάμικτα. Από την μια λες πρέπει να γίνει καθώς θα πάω σε κάτι νέο με περισσότερα χαρακτηριστικά και δυνατότητες και έτσι θα είμαι σε θέση να παρέχω καλύτερες υπηρεσίες στους χρήστες μου. Από την άλλη αναρωτιέσαι αν αυτό θα σου δημιουργήσει προβλήματα καθώς μπορεί κάποια πράγματα μπορεί να μην δουλέψουν γιατί μπορεί να μην υπάρχει συμβατότητα καθώς κάτι μπορεί να μην υποστηρίζεται στην νέα έκδοση. Κάπως έτσι ξεκινάει ο εφιάλτης. Αλλά για μια στιγμή μήπως τελικά ο εφιάλτης είναι πόνημα φαντασίας;
Αρχικά θα πρέπει να επισημάνω ότι τουλάχιστον για τον SQL Server το product group έχει φροντίσει με κάθε έκδοση να ενημερώνει για το τι πρόκειται να καταργηθεί ή να αλλάξει στις επόμενες εκδόσεις. Αυτό εύκολα μπορεί να το βρει κανείς κάνοντας ένα search στα BOL του SQL server με τις λέξεις "deprecated features" το οποίο και θα γυρίσει αρκετά link μέσα από τα οποία θα ενημερωθεί και έτσι θα οργανωθεί για να ετοιμαστεί ώστε να είναι έτοιμος για το βήμα του migration/upgrade.
Αν όμως έχεις κληρονομήσει κάποια instances και databases και θέλεις να προχωρήσεις στην επόμενη έκδοση και θέλεις να γνωρίζεις τι δεν πάει καλά τότε προτείνω να κάνεις τα εξής:
BHMA 1o
Αρχικά θέλεις να δεις πόσο εκτεθειμένος είσαι σε θέματα deprecation. Αυτό εύκολα μπορείς να το κάνεις και άμεσα χωρίς να εγκαταστήσεις κάποιο software στο instance σου με το παρακάτω query το οποίο παίζει από SQL Server 2008
use master;
select * from sys.dm_os_performance_counters
where object_name like N'%:Deprecated Features%';
go
Το συγκεκριμένο δείχνει πόσες φορές ένα deprecation feature έχει εκτελεστεί από την στιγμή που το instance έχει ξεκινήσει (δλδ το service του SQL Server έχει γίνει started, αν αυτό γίνει restart οι μετρητές ξεκινάνε πάλι από το μηδέν). Με αυτό τον τρόπο μπορείς να πάρεις μια εικόνα άμεσα για το μέγεθος της έκθεσης που έχεις σε αυτά.
BHMA 2o
Φυσικά το επόμενο βήμα είναι να ραφινάρεις εφόσον χρειάζεται την έκθεση με την προϋπόθεση ότι έχεις δει από το προηγούμενο αποτέλεσμα ότι έχεις ουσιαστικά θέματα deprecation.
Αυτό πάλι μπορείς να το δεις πάλι εύκολα χωρίς να εγκαταστήσεις κάποιο software και αυτό γίνεται με την χρήση ενός SQL Profiler όπου επιλέγεις τα events όπως φαίνονται στην εικόνα που ακολουθεί.
Αφού αφήσεις το trace αυτό να εκτελεστεί ένα εύλογο χρονικό διάστημα και τα αποτελέσματα τα φιλτράρεις θα έχει στα χέρια σου μια λίστα με τις databases και τα deprecated features. Αυτό μπορείς να το κάνεις αποθηκεύοντας το trace σε XML και μετά να το ανοίξεις με ένα excel.
BHMA 3o
Με βάσει τα στοιχεία αυτά μπορείς να ξεκινήσεις την αναζήτηση στα metadata των database ή αν δεν θέλεις (και δεν θέλεις) να κατεβάσεις τον Database Upgrade Advisor πχ αν θέλεις ένα SQL Server 2005/2008/2008R2 να το μεταφέρεις σε 2012 μπορείς από το link http://www.microsoft.com/en-us/download/details.aspx?id=29065 (στο link αυτό για να βρείτε το DUA θα πρέπει να κάνετε expand το install instructions) να κατεβάσεις και να εγκαταστήσεις και να τρέξεις τον DUA 2012 ο οποίος και θα σου πει περισσότερα για τα deprecated features.
Επειδή πολλοί θα αναρωτηθούν γιατί δεν βάζω απευθείας τον DUA να τελειώνω, η απάντηση μου είναι θέλω να έχω μια αρχική εικόνα άμεσα ώστε να ξέρω πως θα κινηθώ. Επειδή έχω πολλά instance δεν θέλω να σπαταλήσω χρόνο για εγκατάσταση αλλά και γιατί θέλω αυτά που δεν έχουν πολλά deprecation να γίνουν πρώτα.
Φυσικά με όλα αυτά τα στοιχεία στα χέρια μου μπορώ να οργανωθώ και να οργανώσω τους dev και συνεργάτες μου ώστε μέσα στο χρονοδιάγραμμα μου να έχουν γίνει και οι απαραίτητες αλλαγές και η διαδικασία του migration/upgrade να κυλήσει ομαλά.
/*antonch*/