sqlschool.gr logo

articles

Articles of SQLschool.gr Team

High Availability and Disaster Recovery Concepts and Options in SQL Server

Antonios Chatzipavlis
Tuesday 12 May 2015

Overview

Με τον όρο high availability αναφερόμαστε στην πρακτική χρήση των τεχνολογιών αυτών που θα μας εξασφαλίσουν αδιάλειπτη λειτουργία των υπηρεσιών που προσφέρουμε.
Με τον όρο disaster recovery αναφερόμαστε στην πρακτική χρήση των τεχνολογιών αυτών που μας εξασφαλίζουν την συνέχεια της παροχής των υπηρεσιών που προσφέρουμε μετά από μια ολική καταστροφή με ενδεχόμενο την πιθανή μερική απώλεια δεδομένων.

Planning HADR

Αν και οι ορισμοί είναι ξεκάθαροι, η σημασία τους για τον κάθε οργανισμό είναι ένα μεγάλο θέμα συζήτησης που πρέπει όχι αβασάνιστα ο καθένας να απαντήσει. Η αβίαστη απάντηση του 24Χ7 ή του 99,999 και όλα είναι κρίσιμα για τον οργανισμό δεν με καλύπτει καθώς αμέσως κάτι τέτοιο αλλάζει τα δεδομένα του κόστους για την υλοποίηση ενός HADR.
Ακόμα και σε ένα οργανισμό υπάρχουν διαφορετικές ανάγκες για κάθε σύστημα και αυτό σημαίνει πολύ καλό planning για την υλοποίηση της επιθυμητής λύσης.
Υπάρχουν αρκετοί παράγοντες που πρέπει να συνυπολογιστούν πριν καταλήξουμε στην επιθυμητή λύση HADR, όπως το πόσο χρόνο αντέχουμε να μην είναι διαθέσιμη η υπηρεσία, τι είναι αποδεκτό σε περίπτωση καταστροφή σε απώλεια δεδομένων. Ουσιαστικά θα πρέπει να βρούμε το RTO (Recovery Time Objective)  και RPO (Recovery Point Objective).
Μπορεί αυτοί οι δύο να είναι οι δημοφιλέστεροι  δείκτες  και να μπορείς με αυτούς να κάνεις αρκετά σοβαρή και σωστή δουλειά αλλά υπάρχουν και άλλοι για όσους είναι επαγγελματίες σε υπερθετικό βαθμό, φυσικά αναφέρομαι στους RTA (Recovery Time Actual)  και RCO (Recovery Consistency Objective) .
Για όποιον λοιπόν θέλει να προσφέρει high availability (HA) και disaster recovery (DR) (HADR) θα πρέπει να απαντήσει στους παραπάνω δείκτες ειλικρινά και με βάση πάντα το κόστος σε χρήμα που απαιτείται για την υλοποίηση του HADR.
'Ενας ακόμα παράγοντας είναι το failover unit δηλαδή ποια είναι η μονάδα που θέλουμε να προστατέψουμε. Ένα HADR θα πρέπει ιδεατά να καλύπτει όλα όσα αποτελούν το περιβάλλον στο οποίο θα εγκατασταθεί ο SQL Server όπως hardware failures, Windows Server OS failures, SQL Server failures, Individual database failures. Αυτό όμως δεν είναι πάντα ο στόχος καθώς μπορεί η μονάδα αυτή να είναι  μια συγκεκριμένη database. Ανάλογα λοιπόν θα πρέπει να επιλέξουμε και το τι θα υλοποιήσουμε μέσα από την γκάμα των επιλογών που μας δίνει ο SQL Server.

Options for HADR in SQL Server

Στο SQL Server υπάρχουν πολλές επιλογές για HADR που κάθε μία μπορεί να καλύψει τις ανάγκες του κάθε οργανισμού είτε μεμονωμένα είτε συνδυαστικά πάντα φυσικά με το τι έχει απαντήσει στους παραπάνω δείκτες

Log shipping

Με το log shipping συντηρούνται αντίγραφα της database σε πολλαπλούς SQL Servers. Ο βασικός (primary) έχει το ενεργό αντίγραφο της και οι άλλοι (secondaries) έχουν standby αντίγραφα. Σε αυτή την λύση δεν έχω automatic failover και ούτε εγγυάται ότι δεν θα υπάρξει απώλεια δεδομένων, επίσης απαιτείται χρόνος για να έρθει η database σε κατάσταση online.

Database mirroring
 
Το database mirroring παρέχει HA σε επίπεδο database με το να συντηρεί ένα αντίγραφο της database που υπάρχει στο βασικό (principal) server  σε ένα άλλο server (mirror). Η συγκεκριμένη δυνατότητα είναι πλέον σε κατάσταση απόσυρσης (εμφανίστηκε για πρώτη φορά στο SQL server 2008 και υπάρχει σήμερα μόνο στη standard edition). Παρέχει automatic failover μέσω ενός Witness Server ο οποίος είναι υπεύθυνος για το database health και failover management.
 
AlwaysOn Failover Cluster instances

Το AlwaysOn Failover Cluster instance (FCI) είναι ένα cluster instance του SQL Server σε WSFC cluster το οποίο παρέχει HA σε επίπεδο server instance. Ένα WSFC αποτελείται από πολλαπλά server nodes κάτω από την ομπρέλα ενός FCI. Όλα τα nodes έχουν πρόσβαση σε shared storage (SAN). Μπορεί να ανταποκριθεί σε μια ευρεία γκάμα καταστροφών όπως hardware failures, OS failures, service failures. Δεν είναι DR και για αυτό θα πρέπει να έχει γίνει πρόβλεψη καθώς έχει single point of failure που είναι το SAN.

AlwaysOn Availability Groups

Το AlwaysOn Availability Groups εκμεταλλεύεται τα πλεονεκτήματα της τεχνολογίας του WSFC και παρέχει ΗΑ σε επίπεδο database. Στην γενική του μορφή είναι  παρόμοιο σαν το database mirroring εντούτοις παρέχει ένα πολύ περισσότερο σοβαρό και σταθερό τρόπο για να προστατέψουμε databases συν ότι παρέχονται περισσότερες δυνατότητες. Με το WSFC έχουν την υποστήριξη που χρειαζόμαστε για το health monitoring και failover management. Επίσης δεν υπάρχει η απαίτηση για common storage καθώς κάθε SQL Server instance είναι αυτόνομο.
 
SQL Server Database Replication
 
Υλοποιώντας replication μιας database σε κάποιον άλλον server επιτυγχάνεται ένα περιορισμένων δυνατοτήτων ΗΑ σενάριο και αυτό διότι η database είναι διαθέσιμη σε κάποιον άλλον SQL server όμως  δεν υπάρχει automatic failover.

Choosing a SQL Server high availability solution matrix

Choosing a SQL Server high availability solution matrix

Planning High Availability and Disaster Recovery matrix

Planning High Availability and Disaster Recovery matrix

Conclusion

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


/*antonch*/

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios is a Data Solutions Consultant and Trainer. He has been working in IT since 1988. In his career, he has worked as senior developer, IT Manager, Solutions Architect and IT Consultant. Since 1995 he has been devoted on new technologies and software development tools, mainly by Microsoft, either by training company staff and colleagues or assisting them in design, development and implementation as a consultant or chief developer. He has focused in Databases and Data Science since 1995. He specialized in Microsoft SQL Server since version 6.0 in areas like SQL Server Internals, Database Design and Development, Business Intelligence and in 2010 he has started working with Azure Data Platform, NoSQL databases, Big Data Technologies and Machine Learning. He is an active member of many IT communities in Greece, answering colleagues' questions and writing articles in his web site. He is the owner of SQLschool.gr which is a community portal with a lot of information about Microsoft SQL Server. He has been a Microsoft Certified Trainer (MCT) since 2000. Microsoft honored him as MVP on Data Platform due to his activities in SQL Server since 2010. He holds a large number of Microsoft Certifications and Microsoft SQL Server Certifications since version 6.5.

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2024 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.