SQL Backup auf einer Azure Virtual Machine

Als Database Administrator kennt man das Thema nur zu gut, wenn man sich nicht gleich zu Anfang voll umfänglich mit der Backup bzw Restore-Strategie beschäftigt, fällt es einem irgendwann vor die Füße… aber wie ist das Ganze jetzt in der Cloud, wie kann man da sein Datenbanken richtig sichern? Darum ging es in meinem Vortrag auf dem Global Azure Bootcamp 2019 in Hamburg mit dem Ziel, die neue Möglichkeit mittels Azure Backup auch direkt SQL Server Datenbanken auf einer virtuellen Maschine in Azure zu sichern.

Serverausfall – was nun?

Man stelle sich vor – in der onprem Welt – ein Server fällt aus, die Datenbanken nicht mehr erreichbar… PANIK (zumindest im ersten Moment)… die Fragen, die man sich dann im ersten Moment stellt:

  • Haben wir eine Sicherung?
  • Wann ist die letzte Sicherung erfolgreich gelaufen?
  • Wie groß ist mein Datenverlust?
  • Wie komme ich an die Daten?
  • Wie lange dauert es, bis das richtige Backup für den Restore gefunden wurde?
  • Wie lange dauert der Restore?
  • Klappt der Restore auf Anhieb?
  • Können dann alle wieder auf die Daten zugreifen?

Gehen wir erst einmal von dem Fall aus, dass der Server neu aufgesetzt wird und die Datenbanken dann aus einer Sicherung wieder hergestellt werden müssen. Nun sucht man (vielleicht) über die GUI der Backup-Software nach einer Filesicherung, dem Tape oder einer Datenbank-Sicherung. Spätestens hier wird es interessant 😉

Wie wurde der Datenbank-Server überhaupt gesichert, in welchem Rhythmus, wieviele Files müssen zurück gespielt werden und so weiter… Im schlimmsten Fall gibt es nur eine tägliche Vollsicherung (Full-Backup) auf die lokale Platte mit nur wöchentlicher Filesystemsicherung… 😮
Backup-Lösungen und -Strategien sind aber nicht das Thema dieses Beitrages, denn hier geht es um die Cloud.

Downtime Minimierung durch rechtzeitiges integrieren in die Solution

Azure SQL Databases und das Backup

In der Cloud ist vieles einfacher (oder zumindest anders), denn wie auch on-prem sollte man sich zumindest Gedanken über die Backup-Strategie machen. Aber zumindest hat sich Microsoft sehr viele Gedanken zu diesem Thema für uns gemacht, so dass in vielen Datenbank-Services wie zum Beispiel der Azure SQL Database das Backup schon automatisch inkludiert ist.

Also alle Azure SQL Database Services (SingleDB, Elastic Pool und Managed Instance) haben bereits ein Backup inkludiert, so dass man sich hier nicht wirklich mehr Gedanken zu einer Backup-Strategie oder „Welche Software wollen wir einsetzen?“ machen muss. Beispielsweise Azure SQL Single-Database hat in den unterschiedlichen Performance-Klassen (Basic, Standard, Premium) unterschiedliche Aufbewahrungszeiten von 7-35 Tagen… was aber wenn man das Backup, aus welchen Gründen auch immer, länger aufbewahren möchte/muss? Dann bleibt einem – für diesen Fall – nur das Hinzufügen eines sogenannten „Log-Time-Retention“ Backups, welches das Backup(-File) zusätzlich auf einem weiteren Storage-Account ablegt und erst nach X Tagen/Wochen/Monaten/Jahren löscht, was einem selber überlassen wird über eine entsprechende Policy zu definieren.

Selbst für den Fall, dass mal ein komplettes Microsoft Rechenzentrum oder sogar eine ganze Region ausfallen sollte, hat Microsoft vorgesorgt und verschiebt alle Backups über Geo-Replication auch in andere Regionen, so dass im Fall der Fälle immer ein entsprechendes Backup für einen Point-in-Time-Restore innerhalb der Retention-Period vorhanden ist.

Automatisierte Backups – da war doch schon was

Ja, automatische Sicherungen (Automated Backup) konnte der SQL Server schon seit der Version 2014, wenn man ihn entsprechend konfiguriert hatte, dann wurde alle Datenbanken bereits „damals“ auf einen Azure Storage Account gesichert. Auch mit der Version 2016 und 2017 blieb diese Funktion erhalten, wurde aber angepasst bzw optimiert (Automated Backup v2). Alternativ könnte man sich auch ein Backup-to-URL mittels Ola Hallengren Skripten vorstellen, aber das hängt dann wieder mit der gesamten Backup-Strategie zusammen und muss entsprechend geplant werden.

Enable SQL Server Managed Backup to Microsoft Azure

Gemeinsame Nutzung von Azure Backup ?

Viele Kunden haben in Azure so oder so eine Azure Backup Vault oder den Azure Backup Service laufen, so dass sich diese Kunden gefragt haben, warum sie damit nur Virtuelle Maschinen als „Ganzes“ sichern können, aber nicht auch ihre SQL Server. Somit wäre eigentlich eine zentrale Lösung für viele Backups in Cloud gefunden. Man könne auch von dieser zentralen Stelle im Portal aus, alle Backups administrieren und überwachen, bräuchte kein weiteres Tool geschweige denn eine neue Backup-Infrastruktur.

Microsoft hat auf die Wünsche und Bitten seiner Kunden gehört und das Azure Backup entsprechend erweitert, so dass man seit Mitte März 2019 auch endlich reine SQL Server Datenbank-Backups damit ziehen kann.

https://azure.microsoft.com/de-de/blog/azure-backup-for-sql-server-in-azure-virtual-machines-now-generally-available/

Jetzt kann man also die Azure Backup Extension sowohl auf fertige SQL Server Marketplace VM-Images ausrollen, als auch auf selbst erstellte SQL Server, um diese dann als native SQL Server Backups gegen Azure Backup zu sichern. Derzeit gibt es folgende Eckpunkte, die für diesen Service sprechen:

  • Zentrale Verwaltung und Überwachung
  • Schutz für verschlüsselte Datenbanken
  • Automatische Erkennung von (neuen) Datenbanken
  • RPO-Wert (Recovery Point Objective) von 15 Minuten
  • Point-in-Time-Wiederherstellungen
  • Langfristige Aufbewahrung
  • Kosteneffektiv
Einrichten eines SQL Server Backups über das Portal mit Azure Backup in meiner Demo-Umgebung

Wenn man nun also das native SQL Server Backup über die neue Extension ausgerollt hat, dann kann man während der Konfiguration im Portal entweder den ganzen Server (Instanz) oder einzelne Datenbanken, ebenso „Autoprotection“ auswählen. Und „zusehen“ wie nach erfolgreichem Deployment die ersten Sicherungen durchgeführt werden. Das Ergebnis sowie Alarme können dann sehr schön und zentral über das Azure Backup Dashboard im Portal überwacht werden. Zusätzlich dazu bietet Microsoft eine PowerBi Application mit der man auf einen (dann einzurichtenden StorageAccount) zu aktivieren, um noch mehr Details zu seinen Sicherungen zu erhalten.

Ein Restore der Datenbanken ist mit wenigen Klicks über das Portal zu realisieren, hierbei stehen dann auch weitere Optionen zur Verfügung, wie man sie aus dem normalen SQL-Restore kennt (z.B. File-Relocation, Overwrite oder Database-Rename).

Fazit zu Azure Backup für SQL Server VMs

Ich persönlich finde diese neue Extension super, wenn man seine SQL Server in einer Azure VM nativ sichern möchte/muss und eine (!!!) zentrale Anlaufstelle für Backups in Azure mit Monitoring, Alerting und Config-Management haben möchte!!!

Das Azure Meetup Hamburg im Mai 2019

Auch im Mai 2019 trifft sich das Azure Meetup Hamburg wieder für einen interessanten und spannenden Abend mit der Community. Diesmal kommt der Vortrag aus der Hamburger Community selber… Benjamin Konrad wird uns über seine praktischen Erfahrungen beim Erstellen von Power BI Architekturen und dem Verknüpfen von Datenquellen, sowie dem Erstellen von Berichten näher bringen.

Anmelden könnt ihr euch – wie gewohnt – natürlich kostenfrei über die Meetup-Seite des Azure Meetups in Hamburg
Hier geht es direkt zu unserer Mai Veranstaltung

Vielen Dank an Benjamin Konrad für seine Bereitschaft selber etwas vorzutragen, eben „aus der Community für die Community“!

Wie mit Azure starten – interessante Einstiegsmöglichkeiten

Heute kam hier die Frage von einem Kollegen auf, nach wie kann ich mich wo informieren, womit sollte ich anfangen, wenn ich mich zukünftig mit Azure auseinandersetzen möchte/soll/muss. Da ich ihm dazu einen nicht allzu kurzen Text geschrieben habe, dachte ich mir, dass das für meine Blog-Leser auch interessant sein könnte und möchte den Text hier in einer etwas ausführlicheren Form veröffentlichen. 😉

Erstmal muss man sich über die Fülle an Möglichkeiten Gedanken machen, was es da nicht alles für verschiedene Produkte, Services, Plattformen, Hersteller, Anbieter und vielem mehr gibt… Also was möchte/soll man machen… meist kommt man ja mit einer Public Cloud aus geschäftlichen Gründen in Berührung, wie bei meinem Kollegen. Beispielsweise der Web-Entwickler, der wird sich eher damit beschäftigen mit welchen Services in welcher Ausprägung und vor allem wie seine Webseite/-Applikation dem Kunden/Anwender zur Verfügung stellen kann. Der Business-Intelligence (BI) Berater wird sich vielleicht eher mit den Möglichkeiten einer Dynamics-Umgebung und wie er diese Daten worüber wohin wie am Besten dem Management präsentieren kann.

Nehmen wir meinen Kollegen, der bisher sich mit dem SQL Server in allen Ausprägungen und Fazetten on-premise beschäftigt hat… der fragte mich:

Hallo Björn,
[...]
wollte bei Dir mal nachfragen
was für Literatur / Links Du mir
zum Thema MSSQL und Azure empfehlen kannst
[...]

Azure ist einfach sehr vielfältig 😉

In diesem Fall kann man natürlich erst einmal eingrenzen, dass er sich mit Datenbanken beschäftigen möchte und zwar in der Hauptsache mit der Azure SQL Database und vielleicht noch dem Azure SQL Datawarehouse, sowie allen notwendigen Services wie zum Beispiel Netzwerke. Hier muss jeder für sich entscheiden, welcher Lerntyp er ist… erst lesen/anschauen und dann machen oder erst einmal durch ausprobieren wie weit man ohne Hilfe kommt, um dann nachzulesen. Ich bin eher der Typ ausprobieren und dann lesen, wobei bei neuen Haushaltsgeräten… 😉
Ich schätze meinen Kollegen eher als den „Ausprobierer“ ein…

Idealerweise fängt man klein an bzw dort an, was man unter Umständen schon von seiner bisherigen Tätigkeit kennt. Also hier eine einfache virtuelle Maschine mit Windows Server und einem SQL Server… diese kann man erst einmal über ein Tutorial aus der Microsoft-Dokumentation erstellen, entweder über das Azure-Portal oder mittels Powershell. Hierzu stellt Microsoft bzw die Community entsprechende Dokumentationen (Schritt-für-Schritt-Anweisungen) zur Verfügung, anhand derer man sehr einfach die ersten Erfolge sehen kann.

Beispielsweise => Bereitstellen eines virtuellen Windows-Computers mit SQL Server im Azure-Portal

Praktischer Start mit Azure

Wenn man aber nun – wie oben vorgeschlagen – mit der praktischen Arbeit beginnen möchte, wird man schnell feststellen, dass man einen Account für Azure benötigt… dies geht für die ersten privaten Gehversuche am einfachsten mit einem kostenfreien Azure-Account. Diesen kann man sich ganz schnell selber erstellen und erhält darüber hinaus auch noch viele kostengünstige Angebote für Azure Services und teilweise sogar bestimmte Services dauerhaft kostenfrei. So kann man die ersten Übungen bzw das gerade gelernte selber – ohne großes Risiko – ausprobieren und antesten.

So stellt Microsoft zum Beispiel – über diesen „Free-Account“ – jedem Nutzer eine Azure SQL Database, virtuelle Windows und Linux-Maschinen oder auch eine Azure Cosmos DB für die ersten 12 Monate kostenfrei zur Verfügung! Weitere Services wie Azure Data Factory, der Azure Kubernetes Service oder Cognitive Services sind in begrenztem Umfang dauerhaft kostenfrei verfügbar. Reinschauen lohnt sich auf jeden Fall !!!

Azure Free Account - 12 month free services

Vertiefung des Azure KnowHows

Wenn man dann seine erste Maschine deployed hat und auch schon ein wenig in der Dokumentation gestöbert hat, so kann man sich später über das vielfältige Service-Angebot von Microsoft informieren, in dem man sich die kostenfreie Schulungen auf Microsoft Learn anschaut! Hier kann man sich die entsprechenden Produkte bzw Lernziele aussuchen und einfach loslegen…

Microsoft Learn for Data Engineers - Azure SQL Database and DWH

Videos, Dokumentationen, Schritt-für-Schritt-Anleitungen und Demos / Labs bringen einem die Produkte sowie Services theoretisch näher. So erhält man einen ersten Einblick in die Vorgehensweise und Möglichkeiten der Microsoft Public Cloud Azure. Im Endeffekt hilft aber nichts anderes als wirklich ausprobieren und zu testen, hierzu müsste man sich dann entweder selber oder mit dem Kunden entsprechende Test-Szenarien überlegen und testen, testen, testen…

Auch in der Public Cloud bleiben die alten „Weisheiten“ meist gültig, auch wenn man gewissen alte Denkstrukturen überwinden muss und auf den ersten Blick vieles unübersichtlich und teuer wirkt! Hier heißt es dann weiter bzw um die Ecke denken, um dem Kunden entsprechende Angebote und Solutions präsentieren zu können. Aber für einen ersten Einstieg sind die oben genannten Plattformen auf jeden Fall sehr hilfreich!

Viel Spaß beim Lernen und Ausprobieren!

Housekeeping einer Azure SQL DB Managed Instance

Ich habe mich heute etwas intensiver mit der „neuen“ Azure SQL Database – Managed Instance beschäftigt und dabei ging es auch um das Housekeeping, welches man in regelmäßigen Abständen auf allen SQL Servern durchführen sollte. Überlicherweise nehme ich hierfür die Skripte von Ola Hallengren, welche in regelmäßigen Abständen aktualisiert und erweitert werden. Aufgrund der weit verbreiteten, weltweiten Nutzung kann man hier auch davon ausgehen, dass die Funktionalität und Stabilität absolut produktionswürdig ist und können daher ohne Bedenken auch in Produktionsumgebungen eingesetzt werden.

Für einen Workshop und natürlich aus eigenem Interesse habe ich einen einfachen Weg gesucht, wie ich das Housekeeping in einer Managed Instance realisieren kann, daher habe ich einfach nur das normale Skript von der Webseite runtergeladen und in das SQL Management Studio eingefügt. Kurz überprüft, ob die Einstellungen in dem Skript valide sind und ausgeführt.

Zu meinem Erstaunen lief das Skript ohne Probleme einfach durch und meldete eine erfolgreiche Ausführung, ein kurzer Blick in die SQL Server Agent Jobs brachte die nächste Überraschung da die zu erstellenden Jobs auch tatsächlich vorhanden waren. Ok, die Backup-Jobs fehlten, aber darum brauche ich mich in einer Managed Instance nicht zu kümmern, da dies automatisch erfolgt.

Managed Instance - Housekeeping - Ola Hallengren - SQL Server Agent Jobs

Als ich jetzt auch noch die Jobs nacheinander gestartet hatte und diese alle einwandfrei durchliefen, war ich nahezu platt. Also ich kann die Ola Hallengren Housekeeping Jobs nur empfehlen, sowohl onprem, als auch in irgendeiner virtuellen Maschine oder eben in der Azure SQL Database Managed Instance! Beim Schreiben dieses Beitrages habe nocheinmal direkt in das Skript geschaut, ob es irgendeine „Magic“ gibt, die dafür sorgt, dass die Backup-Jobs nicht angelegt werden und tatsächlich hat Ola hier großartige Arbeit geleistet. Wenn man sich dann auch die Dokumentation auf der Webseite anschaut, wird man feststellen, dass er tatsächlich auch auflistet, dass die Managed Instance offiziell unterstützt wird.

Also worauf wartet ihr, nutzt die Ola Hallengren Housekeeping Jobs (aka Maintenance Jobs) auch für eure SQL Server!

SQLDays 2018 in München

Dieses Jahr war ich erstmalig auf den SQLDays in München genauergesagt in Erding (Erdinger Stadthalle), bei den SQLDays handelt es sich um eine Schulungs-Veranstaltung der ppedv. In den zwei bzw vier Tagen geht es vor allem um die namensgebende Microsoft-DataPlatform Umgebung rund um den SQL Server, an zwei Workshop-Tagen und zwei Konferenz-Tagen können die Teilnehmer aus einer Vielzahl von interessanten Sessions von hochrangigen Sprechern auswählen. Zum Beispiel hielt Georg Urban die Keynote und Markus Raatz hielte folgenden Vortrag:

Markus Raatz : Echtzeitdatensets in Power BI: Einführung und HowTo

Von Echtzeit-Daten, wie sie meist im Streaming-Verfahren von IoT-Datenquellen geliefert werden, geht ein großer Reiz aus. Nichts ist schöner, als auf ein Browserfenster zu starren und zu sehen, wie sich der winzige Lieferwagen von allein Meter um Meter auf mein Haus zubewegt! Auch Dashboards, in denen Liniengrafiken auf- und abwärts zucken, können uns stundenlang beschäftigen. Der technische Hintergrund dazu sind Power BI Streaming Datasets, deren Möglichkeiten wir uns in diesem demo-reichen Vortrag einmal ansehen werden. Was sind mögliche Visualisierungen, welche Datenquellen bieten sich an und welche Beschränkungen der Technologie gibt es?

Aber auch die Sponsoren liessen es sich nicht nehmen ihr Wissen zu verbreiten, hier ist Andreas Heberger von Amazon mit seinem Vortrag zu nennen:

Orange Is The New Blue – Warum Amazon Web Services eine gute Wahl für Ihre Microsoft SQL Workloads ist

Wir zeigen Ihnen welche Möglichkeiten die AWS Plattform bietet, Ihre Microsoft SQL Workloads performant, flexibel und kosteneffizient in der Cloud zu betreiben. Desweiteren bietet AWS Möglichkeiten den administrativen Aufwand zu verringern, damit Sie sich wieder auf Kernaufgaben konzentrieren können. Dabei beleuchten wir die Vor – und Nachteile der einzelnen Varianten, von der klassischen Installation auf IaaS VMs, dem AWS managed Service (RDS) sowie Migrationsstrategien. Darüber hinaus wollen wir Wege aufzeigen wie vorhandene Lizenzinvestments weiterverwendet werden können, und wie Sie mithilfe von AWS sogar Ihre Lizenzkosten verringern können.

Neben den genannten waren viele nationale und europäische Sprecher auf den SQLDays und trugen so zu einem ordentlichen Wissenstransfer bei!

Mein Vortrag zu Azure SQL Database konnte ein wenig auf dem zeitlich früheren Vortrag von Greogor Reimling aufbauen, der den Teilnehmern etwas über die Azure Managed Instance erzählte.

Gregor Reimling - SQLDays 2018 - Azure SQL Managed Instance

Kurz vor der Mittagspause stand ich dann im großen Saal und durfte den interessierten Teilnehmern etwas zu Azure SQL Database und deren Administration mit Powershell näher bringen, für alle die an meinem Vortrag teilgenommen haben, hier auch noch einmal ein Hinweis wegen der gescheiterten Demo => hier ist der Nachtrag bzw die Korrektur

Die Organisation der Veranstaltung war sehr gut, Teilnehmer und Sprecher der SQLDays wurden sehr gut versorgt, man musste sich um nichts Gedanken machen, egal ob Getränke und Snacks zwischen den Sessions oder Mittagessen oder während der gemeinsamen Abendveranstaltung! Ausreichend Getränke und super-leckeres Essen sorgten für eine angenehme Atmosphäre und motivierte Mitwirkende!

Bjoern Peters - Azure SQL Database - SQLDays 2018

Natürlich habe ich auch im Rahmen meiner Anwesenheit (ich war nur den Dienstag auf den SQLDays) auch mehreren Sessions gelauscht, wie zum Beispiel Andre Essing:

The joy of analytics – Lassen Sie uns zusammen ein Data Warehouse in die Cloud malen

Es gibt eine Menge Wege und Möglichkeiten Mehrwerte aus seinen Daten zu ziehen. Seit Jahren machen wir das mit den gleichen Techniken in unseren „klassischen“ Data Warehouse Umgebungen. Aber die Welt ist im steten Wandel und so auch die Daten. Wo die Daten vor ein paar Jahren noch ausschließlich strukturiert waren, wächst die Zahl von schemalosen Datentypen ins unermessliche, und eine Ende ist nicht in Sicht. Wir kämpfen mit Daten, bei denen sich ständig das Schemata ändert und versuchen Mehrwerte aus neuen Datentypen wie Soziale Medien, Videos und Bildern zu ziehen. In dieser Whiteboard Session möchte ich mit Ihnen über moderne Wege sprechen, Ihre Daten zu speichern, zu analysieren und zu visualisieren. Zusammen zeichnen wir ein Modern Data Warehouse, schauen uns an welche Möglichkeiten sich bieten verschiedenste Daten zu analysieren und warum uns die Cloud hier hilft. Besuchen Sie meinen Vortrag und zeichnen Sie mit mir zusammen ein modernes Data Warehouse.

Andre Essing - SQLDays 2018

Es hat auf jeden Fall sehr viel Spaß gemacht und es war meine erste Teilnahme an den SQLDays, die meine Münchener Kollegen immer wieder als großartige Veranstaltung erwähnt haben, daher erfüllt es mich auch ein wenig mit Stolz dort als Sprecher dabei sein zu dürfen. Vielleicht klappt es ja auch im nächsten Jahr wieder mit einem spannenden exklusiven Vortrag für die SQLDays 2019 in Erding. Termin steht schon 😉

SQLDays 2019 – Save the date: 14.-17. Okt. 2019 München

Weitere Informationen findet ihr auf der Homepage der SQLDays…