Hochverfügbarkeit beim SQL Server – DBCC 2021 – Teil 1

Jeder meiner Kunden hat sich irgendwann mal die Frage gestellt oder zumindest sollte er sich diese Frage stellen, “brauche ich für meine SQL Server oder einen meiner SQL Server eine gewisse Hochverfügbarkeit”. Leider enden diese Überlegungen immer bei der Frage nach dem Budget… natürlich kosten solche HA-Lösungen mehr Geld, je nach Auswahl der Lösung und der Ausstattung der Umgebung müssen entsprechende Lizenzen zur Verfügung gestellt werden. Aber wenn man die im “worst-case” anfallenden Kosten während oder durch einen Ausfall dagegen rechnet, sollte man ganz klar zur Einsicht kommen, dass diese Kosten vertretbar sind.

Ich durfte heute auf der Data Blaster Community Conference 2021 einen Vortrag dazu halten (Vielen Dank liebe SQLPASS Deutschland), hier kommt eine kleine Zusammenfassung aus meinem Vortrag.

Ich habe direkt am Anfang dargestellt, wie hoch solche Kosten sein können, hierzu habe ich mit Hilfe eines Online-Rechners von Percona eine beispielhafte Rechnung aufgemacht. Der SQL Server fällt für 1-2 Stunden aus, 5 Mitarbeiter sind an dem Restore beschöftigt, jeder von ihnen verdient 100.000 pro Jahr, 100 weitere Mitarbeiter können nicht richtig arbeiten, diese verdienen durchschnittlich 50.000 pro Jahr. Im folgenden Screenshot könnt ihr die Zahlen lesen, die unter Umständen während des Ausfalls, bei der Behebung und deren Nachwirkungen entstehen können.

Warum SQLServer Hochverfuegbarkeit sich rechnet - Percona Calculator

Bei Gesamtkosten von rund 8.000.000 Euro für einen Ausfall eines SQL Servers von rund 2 Stunden, würde ich mir schon vorher überlegen, ob ich z.B. 250.000 Euro im Rahmen der Installation mehr ausgebe, um einen zweiten Server hinzustellen und mit den jeweiligen Lizenzen auszustatten. Aber wie können solche Hochverfügbarkeiten im SQL Server Umfeld aussehen, dazu komme ich in den nächsten Abschnitten, aber erst einmal sollten wir die Überschriften klären… 😉

Hochverfügbarkeit vs Desaster Recovery

Die Definition von Hochverfügbarkeit auf wikipedia.de lautet wie folgt :

Hochverfügbarkeit (englisch high availabilityHA) bezeichnet die Fähigkeit eines Systems, trotz Ausfalls einer seiner Komponenten mit einer hohen Wahrscheinlichkeit (oft 99,99 % oder besser) den Betrieb zu gewährleisten. In Abgrenzung zur Fehlertoleranz kann es bei dem Betrieb im Fehlerfall zu einer Unterbrechung kommen.

https://de.wikipedia.org/wiki/Hochverf%C3%BCgbarkeit

Im Vergleich dazu die Definition von Desaster Recovery

Der englische Begriff Disaster Recovery (im Deutschen auch Katastrophenwiederherstellung oder Notfallwiederherstellung genannt) bezeichnet Maßnahmen, die nach einem Ausfall von Komponenten in der Informationstechnik eingeleitet werden. Dazu zählt sowohl die Datenwiederherstellung als auch das Ersetzen nicht mehr benutzbarer InfrastrukturHardware und Organisation. Umfassender als Disaster Recovery ist der Begriff Business Continuity, der nicht die Wiederherstellung der IT-Dienste, sondern unterbrechungsfreie Geschäftsabläufe in den Vordergrund stellt.

https://de.wikipedia.org/wiki/Disaster_Recovery

Bei der Hochverfügbarkeit geht es eben mehr darum, die eintretende Zeit des Ausfalls, also die Downtime möglichst gering zu halten, so dass alle angeschlossenen Systeme möglichst ohne Datenverlust und manuellen Eingriff schnellstmöglich weiterlaufen. Hierzu sollte man sich vor der Installation natürlich Gedanken zur Prozessgestaltung, den zu erreichenden Zielen und der Notwendigkeit zu machen.

  • Was braucht das Business?
  • Was kostet es das Business wenn sie nicht mehr arbeiten können?
  • Gibt es ggfs einen Kompromiss zwischen Technik und Business? Müssen es wirklich die minimalsten Ausfallzeiten (< 10 Sekunden) sein oder reichen vielleicht auch maximale Ausfallzeiten von kleiner einer Minute?
  • Was kann die Technik überhaupt abbilden? Wissen, Prozesse u.ä.
  • Welceh rechtlichen Rahmen müssen ggfs eingehalten werden?

Und erst wenn man diese Fragen vorher geklärt hat, kann man sich Gedanken über die eigentliche Hochverfügbarkeitslösung machen und wie diese implementiert werden kann/soll.

Das AlwaysOn Failover-Cluster (FCI)

Hochverfuegbarkeit - SQLServer - AlwaysOn Failover Cluster

Kommen wir zu einer der möglichen Lösungen zur Realisierung der Hochverfügbarkeit des SQL Servers innerhalb des eigenen Rechenzentrums, das Windows Failover Cluster (im Grunde identisch zu einem Linux Failover Cluster, hier sollte man sich an die Angaben/Dokumentation der jeweiligen Distribution und eingesetzten Cluster-Software halten).

Initial erstellt man aus zwei Windows Servern mit dem zusätzlich installierten Failover-Cluster Feature ein Windows Failover Cluster, grob gesagt, man verbindet beide Server logisch (und im AD) miteinander. Beide kennen sich und wissen nun, dass sie zusammengehören und tauschen mehrere entsprechenden Health-Status Informationen untereinander aus. Dieses Windows Failover Cluster erhält eine eigene IP und einen eigenen DNS Namen, sowie ein Cluster-Named-Object im AD, dieses CNO “steuert” später das Cluster im AD.

Zu den notwendigen Storage-Requirements kann ich hier wenig sagen, da dies von den jeweiligen Umgebungen abhängt… SAN, NAS, NFS, HCI oder ähnliches, auf jeden Fall muss es sich um einen Storage handeln, der in der Lage ist beiden Servern Zugriff zu gewähren. Microsoft schreibt dazu folgendes:

Storage

Im Gegensatz zur Verfügbarkeitsgruppe muss eine FCI freigegebenen Speicher zwischen allen Knoten der FCI für Datenbank und Protokolle verwenden. Der freigegebene Speicher kann die Form von WSFC-Clusterdatenträgern, direkten Speicherplätzen (Storage Spaces Direct, S2D), Datenträgern auf einem SAN oder Dateifreigaben auf einem SMB aufweisen. Auf diese Weise verfügen alle Knoten in der FCI immer dann über die gleiche Sicht der Instanzdaten, wenn ein Failover auftritt. Dies bedeutet jedoch, dass der freigegebene Speicher das Potenzial hat, die einzelne Fehlerquelle zu sein. Die FCI hängt zudem von der zugrunde liegenden Speicherlösung ab, um Datenschutz sicherzustellen.

https://docs.microsoft.com/de-de/sql/sql-server/failover-clusters/windows/always-on-failover-cluster-instances-sql-server?view=sql-server-ver15&WT.mc_id=DP-MVP-5002576#Recommendations

Nun kann man mit der eigentlichen Installation des SQL Servers beginnen, auf dem Node 1 wird die Basis-Installation für das SQL Server Failover Cluster geschaffen “Erstellung eines Failover-Clusters”, während auf dem Node 2 “nur” ein Knoten zu einem bestehenden SQL Server Cluster hinzugefügt wird.

Je nach Ausgestaltung dieses Cluster – nur eine Instanz oder mehrere Instanzen – müssen SQL Server Lizenzen beschafft werden. Hierbei kann man zwischen zwei Betriebsmodis unterscheiden, aktiv/passiv oder aktiv/aktiv. Bei aktiv/passiv dürfen die SQL Server Instanzen immer nur auf einem Knoten des Clusters laufen, im Fehlerfall für einen begrenzten Zeitraum auch auf beiden Knoten. Bei aaktiv/aktiv können beide Knoten gleichermaßen und zeitlich unbegrenzt voll genutzt werden, was gerade bei mehreren Instanzen unter Umständen Sinn machen kann, da man so eine gewisse Last-Aufteilung vornehmen kann.

Sollte nun ein Knoten im Cluster ausfallen, so kann der zweite Knoten vereinfacht gesagt nicht mehr der anderen Seite kommunizieren und versucht schnellstmöglich die ausgefallenen Services auf seine Seite zu holen und dort zu starten.

Ein hybrides Szenario ist hierbei leider nicht möglich, da es keine Möglichkeit der gesharten Ressourcen zwischen on-premise und Cloud gibt. Aber man kann alternativ auch ein Failover-Cluster in der Azure Cloud aufbauen. Hierzu benötigt man eine Proximity Placement Group, entsprechende Managed Disks mit aktiviertem “Shared Storage” Feature und die beschriebenen zwei virtuellen Maschinen, die eigentliche Installation und Betrieb ist im Grunde identisch.

Hochverfügbarkeit Azure SQLServer Failover Cluster - DBCC2021

Mehr zu Hochverfügbarkeiten des SQL Servers kommt demnächst in einem zweiten Beitrag.

SQLSaturday Linz 2019

Am Freitag, den 17. Jänner war es wieder soweit… die Microsoft Data-Platform Community Österreich traf sich zu einer neuen Ausgabe des SQLSaturday (der in Österreich immer ein Freitag ist 😉 )
Wolfgang Strasser (b|t) und Markus Ehrenmüller (b|t) (und deren OrganistationsTeam) hatten erneut eingeladen, diesmal allerdings nicht wie in der Vorjahren nach Wien, sondern nach Linz in Oberösterreich. Ich hatte wieder mehrere Vorträge eingereicht und wurde mit dem aktuellen Thema “Azure SQL Database – Managed Instance” ausgewählt und durfte somit für zwei Tage nach Linz reisen. Es war mir auf jeden Fall eine große Freude ein Teil der internationalen DataPlatform-Community zu sein (aka #sqlfamily)!

Linz Sehenswürdigkeiten - SQLSaturday Linz #810 2019

Während den ersten Gedanken und Gesprächen zum SQL-Saturday in Linz, also wie kommt man da hin, welches Hotel sollte gebucht werden, wo ist der Veranstaltungsort, musste ich dann schon mal feststellen, dass dies nicht so einfach werden würde – zumindest von Hamburg aus…
Egal, was tut man nicht alles für die Community und um Freunde wieder zusehen?!

Ich habe mich dann an meine Lieblings-Fluggesellschaft mit Start in HAMburg und Ziel in LiNZ… und siehe da es gibt tatsächlich Verbindungen nach Linz… was ich aber im ersten Eifer übersehen habe, war die Tatsache das es sich um “Fly&Rail” handelte… Also führte mich meine Anreise von Hamburg nach Wien und direkt von Wiener Flughafen Tiefbahnhof zum Linzer Hauptbahnhof. Fehlte noch eine Unterkunft die preislich in mein Budget passt… die Hotels im näheren Umfeld um den Veranstaltungsort “Tabakfabrik” waren entweder ausgebucht oder in Sachen Preis/Leistung nicht wirklich passend. Also habe ich mich wieder auf meine Anfänge besonnen (klingt irgendwie blöd, aber “isso”)… Airbnb lässt grüßen… ich habe bei meiner Suche eine kleine Wohnung in der Altstadt gefunden, die sich sehr gut anhörte und von den Wegen her alles irgendwie innerhalb von 20 Minuten Fussweg erreichbar machte… was wünscht man sich mehr, vor allem wenn der Preis im Vergleich zum Hotel rund 60% niedriger liegt.

Sightseeing in Linz und das Thema Schnee

Zum Zeitpunkt des SQLSaturdays in Linz litten der Süden Deutschland und Teile von Österreich unter einer extremen Schneelast und man hätte meinen können, dass ganz Österreich zumindest ein wenig weiß sei… aber leider weit gefehlt (oder vielleicht als Reisender auch besser so 😉 ). Die Linzer Innenstadt war in keinster Weise weiß, auch die umliegenden Hügel waren nahezu grün. Durch die warme Witterung in Linz hatte ich aber die Möglichkeit mir die Stadt ein wenig anzuschauen sowie die schönen Gebäude und Gassen. Eine wirklich schöne Stadt mit einer interessanten Geschichte.

SQLSaturday Linz - Linzer Dom

Der SQLSaturday ( der wie immer auf einem Freitag war) wurde in einer alten Tabakfabrik veranstaltet, das Gebäude wird von zahlreichen Startup-Unternehmen als Firmenbüro und Produktionsstätte genutzt. Die Lokalität war etwas besonders im Vergleich zu den mir bisher bekannten Veranstaltungsorten, da sie sehr lang gezogen war und eher unübersichtlich. Die technische Einrichtung für die Vorträge war aber hervorragend geeignet und sowohl Veranstaltungsort als auch das Orga-Team taten ihr Bestes, diesen Tag zu etwas großen werden zu lassen. Einzig die Kapazitäten der Kaffeemaschinen wurden bis ans Limit ausgereizt 😉

Mein Vortrag – Azure SQL Managed Instance

Natürlich gab es wieder eine Vielzahl verschiedener Vorträge aus allen Beireichen der Data-Plattform von internationalen Sprechern vorgetragen! Genau diese Mischung macht es so interessant solche Veranstaltungen zu besuchen… ich bin einfach von der Mischung und der Gemeinschaft fasziniert. Man trifft alte Bekannte wieder, aber auch neue Bekannte, die man bisher nur aus den sozialen Medien kannte. Der Hashtag #SQLFamily ist nicht nur ein Schlagwort, sondern wird auch im “Real Life” so gelebt. Es macht einfach Spaß ein Teil dieser Community zu sein!

In Linz habe ich erstmal die “kurze” Version meines Vortrages zur “Azure SQL Managed Instance” gehalten und hatte eine kleine, aber interessierte Zuhörerschar. Alles hat wie gewünscht funktioniert, alle Fragen konnte ich einigermaßen beantworten. Und durch die Interaktion mit den Zuhörern neue Aspekte kennenlernen und ebenfalls etwas lernen. Ich hatte auf jeden Fall viel Spaß und werde diese Veranstaltung auch im kommenden Jahr besuchen bzw weiter empfehlen!

SQLSaturday #772 – München – wieder 3 PreCons, 27 Sessions, 29 Sprecher

Am kommenden Freitag, den 26. Oktober 2018 ist es endlich wieder einmal so weit… es gibt einen weiteren SQLSaturday in München!!!

In 2017 gab es leider keinen SQLSaturday in München, da sich aufgrund privater Umorientierungen kein Organisations-Team gefunden hat… auch dieses Jahr wurde es schwierig, aber man hat es in einer starken Gemeinschaftsleistung geschafft => Community eben 😉

Somit trifft sich die deutsche (und umliegende) PASS-Community am nächsten Wochenende (26.+27.10.2018) bei Microsoft in München, um sich mal wieder einen ganzen Tag über die aktuellsten Themen rund um die Microsoft Data-Plattform zu unterhalten. Eine Vielzahl an spannenden Themen von erfahrenen Sprechern mit viel Know-How informieren euch über Vereinfachung der DBA-Tätigkeiten mit Powershell, Power BI Deployment Strategien, ganz viel Azure SQL Database (im Allgemeinen, als Managed Instance und über die Migration) und nicht zu vergessen, dass unvergessliche NerdyCorn-Quiz von Ben Weissman!

Informiert euch auf der Event-Seite über den ganzen Zeitplan, wann es welche Session von welchem Sprecher in welchem Raum gibt => SQLSaturday #772 München 2018 Schedule

Ich hoffe wir werden uns dort sehen !!!

SQLSaturday #772 - Part of Schedule - Munich 2018

Allgemeines zum SQLSaturday

Ich war einfach frech und habe die englische Beschreibung von der Event-Seite kopiert 😉

SQLSaturday is a free 1-day training event for Microsoft Data Platform, SQL Server professionals and those wanting to learn about SQL Server and the Microsoft Data Platform. Admittance to this event is free, all costs are covered by donations and sponsorship. Please register soon as seating is limited, and let friends and colleagues know about the event!

Also, we offer 4 pre-conference workshops on the day before the main conference. So, if one day of training isn’t enough, join SQL Server Experts and MVPs for full-day workshop on October 26th, 2018.

Hotel Recommendations

Our hotel recommendation for the SQL Saturday is the INNSIDE München Parkstadt Schwabing, Mies-van-der-Rohe Straße 10, 80807 Munich, Germany. The hotel is just around the corner and just a few steps away from the Microsoft Office.

Alternative hotels in the same neighborhood are:

Pay back to #sqlfamily community – T-SQL Tuesday #102

Riley Major invited us to this months TSQL2sDay – we should write about “Giving back to the community” and some shall write about how they plan to start or people like me – who already started giving back – shall write about how we’re actually doing. So let me try to tell you my story about stepping out of the dark and getting into the #sqlfamily …

The lone Geek

My journey started about 6 years ago as I thought to myself that there must be a way to become stronger and get deeper knowledge about SQL server is able to. Also get around some problems with getting such specific training for an affordable effort/budget. I just wanted to know this “magic” and started to google a little bit and came across some buzzwords which showed me a direction… which leads me to my registration at PASS Germany.

My first visit at the local PASS user group lasted for more than half a year but somewhen I did it 😉 After that, I visited the user group meetings on a regular base and then I heard about a community event called SQL Saturday… That’s where I wanted to be part of to strengthen my knowledge about SQL Server as a participant but never thought about changing to a speaker because I was so impressed with the knowledge, presentation and speaking…

PASS-DE - The Lone Geek

So I just joined several community events as SQL Saturdays, PASSCamp, SQLKonferenz and SQLGrillen from the easy side => as a participant. But somewhen it made “click” in my head and I thought “Hey, if I’m already on-site why not helping and getting more in touch with those great guys/speakers?” so I decide to write an email to Oliver Engels (Twitter) and Tillmann Eitelberg (Twitter) if I might volunteer during SQL Saturday Rheinland and ” Hurray they accepted…”

Become a First-Timer

So I started my “career” as a volunteer on SQL Saturday Rheinland 2016 with filling bags, preparing booths and session rooms … which had made a lot of fun! I got in touch with more very friendly people of the German PASS chapter. #communityrocks

After a few weeks – also joined SQLGrillen – I made a decision for my own to submit a session for next year’s SQL Saturday and try some more opportunities to speak… in October 2016 I participated also as a volunteer at SQL Saturday Munich where I already felt the love of the #sqlfamily! It was so much fun being part of it and getting known by more and more people. So I also spoke to a Microsoft guy (Jan Schenk) who was responsible for my efforts creating the #Azure Meetup in Hamburg which I started in November 2016.

In 2017 was my first step out of the dark 😉 I was picked to speak twice at SQL Saturday Rheinland and once at SQLGrillen – my very first talks at a public event outside of my regional user group. I was very honoured, so much fun and it was a pleasure to be with such great SQL persons from all around the world. After those events, I can’t stop it and raised my goals for 2018 and further events. (Like speaking at an international event or a non-german user group)

Why? What do I get back from the community?

As I had written above there is so much fun and pleasure and more important to learn from all of the so great community people. For some people it might a good marketing effect to be within the community but why not… they sharing their knowledge with you and making it possible that such events can be organised. Ok, there might be one point… if their session is more about their own products or company and not the topic… that’s not fair!

For me the main part is sharing my knowledge and being part of that #sqlfamily… getting known to all the other, helping other to encourage to do their first presentation or organizing a user group. I love what I am doing! And if I’m able to help just one person to find his/her own way or solution… it makes me happy. 

Communitytreffen SQLGrillen 2017 - German and European #sqlfamily

PASSCamp 2017 – mein erstes Mal

Im Oktober 2017 wurde ich von Oliver Engels und Tillmann Eitelberg gefragt, ob ich auf dem PASSCamp was über Azure SQL Database insbesondere die neue Managed Instance (damals noch im Private Preview) erzählen bzw den Teilnehmern etwas zeigen kann… ja, wollte ich gerne… aber konnte und durfte ich dann doch leider nicht, da es kaum Informationen und Dokumentationen gabe und vor allem leider keine wirklich nutzbare Umgebung für die Teilnehmer des PASSCamps. So wurde es “nur” ein halbtägiger Workshop zu Azure SQL Database.

Bjoern Peters auf dem PASSCamp 2017

Aufgrund dessen, dass dies mein erster Workshop gewesen ist, war ich sehr unsicher wie lange die Zeit für HandsOn und Vortrag tatsächlich ist… natürlich habe ich zuhause alles mehrfach durchgespielt und hatte eine zeitliche Vorstellung von dem Ganzen, aber irgendwie ist es vor Ort dann leider doch etwas anders gelaufen als erwartet… Sorry dafür!

Auf jeden Fall hat mir mein erster Vortrag auf dem PASSCamp sehr viel Spaß gemacht!

PASSCamp – Welch eine Ehre für mich!

Zur Vorgeschichte 😉 Damals – anno 2012 – durfte ich meinen damaligen Kollegen zum PASSCamp schicken und hörte absolut nur Positives, sowohl über Qualität und Inhalte als auch über die Sprecher und die ganze Veranstaltung. Im folgenden Jahr durfte ich dann selber daran teilnehmen und wurde nicht enttäuscht! Es war für uns beide die erste Erfahrung mit der PASS bzw der SQL Server Community sogar mit solch einer Art der Veranstaltung… wir waren restlos begeistert…

Man sagt ja, dass manche Wege verschlungen sind und man sich nicht ohne Grund ein zweites Mal trifft… in meinem Fall war es dann Conny, welche meinen Weg auf dem Rückweg nach Hause mehrfach kreuzte und ich so auch später den “Zugang” zur Regionalgruppe der PASS in Hamburg fand (Wir reden und wundern uns manchmal immer noch über diese Heimfahrt). Über die Teilnahme an den regelmäßigen Treffen der Regionalgruppe lernte ich dann später auch die SQLSaturdays in Deutschland kennen und somit den Anfang von meinem aktuell Weg in der Community. Ich kann nur soviel sagen, dass ich bisher nicht einen Schritt davon bereue! Aber der Reihe nach…

Oliver Engels kicks off PASSCamp 2017

Für mich – als DBA – war das PASSCamp immer ein Highlight im Kalender aufgrund der Aktualität der Inhalte und Qualität der Sprecher, in Verbindung mit einem großartigen Ambiente in entspannter Umgebung mit vielen interessierten Menschen gemeinsam lernen!

Daher war die Einladung als Sprecher zum PASSCamp auch eine große Überraschung und ich habe mich sehr darüber gefreut, dass ich dort sprechen durfte. In 2013 für mich nicht vorstellbar, einmal selber dort vor der Gruppe zu stehen und mein Lieblingsthema vortragen, aber anscheinend lohnt sich beständiger Einsatz (dadurch der MVP-Award und dadurch einen “Vorteil”) als Grundlage für das Vertrauen und die Einladung. Vielen Dank für Oliver und Tillmann für ihren Einsatz und die ganzen Mühen solch eine Veranstaltung zu organisieren!

DANKE PASSCamp und SQLPASS_de

Bild-Quelle : Dirk Hondong (aka SQLPaparazzo) – Danke Dirk