Automatisiertes T-SQL Unit Testing mit Jenkins, Docker tSQLt und dem JUnit Plugin

In den vorausgehenden Artikel zu Jenkins, Docker und SQL Server haben wir uns bisher ausschließlich drauf beschränkt. In dem heutigen Artikel werden wir unsere multi-branch Pipeline mit zwei simplen tSQLt unit tests erweitern. Der einzige Unterschied zur Vorgehensweise des vorherigen Artikels ist, dass wir dieses Mal zusätzlich das JUnit Plugin für Jenkins benötigen. Auch hier werden wir wieder das SQL Server 2017 Linux Image verwenden. Dabei kommt es leider zum Konflikt, da Linux nur mit Baugruppen kompatibel ist, die als SICHER (engl. SAFE) gekennzeichnet sind. tSQLt ist das nicht. Um die beiden Bausteine also trotzdem miteinander verwenden zu können, muss …

Weiterlesen …Automatisiertes T-SQL Unit Testing mit Jenkins, Docker tSQLt und dem JUnit Plugin

Jenkins Multi-Branch Build Pipeline mit Docker und SQL Server

Der erste Schritt jedes Systems für kontinuierliche Integration ist, das Projekt unter Source Code Control zu bringen. Danach kann man sich eine Branching-Strategie überlegen, die dem Projekt angemessen ist. Ein “Branch” beschreibt dabei eine Evolutions-Linie einer Code Base in einem Source Control Repository. Ein Source Code Control System wie z.B. Git hat immer einen master-Branch als Grundlage der Veränderung der Code-Base. Da in den meisten Fällen mehr als nur ein Entwickler an einem Projekt arbeitet und das Arbeiten mit nur einem Branch sich als sehr unpraktisch erweist, benötigen wir die zuvor erwähnte Branching-Strategie. An dieser Stelle kommt das Jenkins Multi-Pipeline …

Weiterlesen …Jenkins Multi-Branch Build Pipeline mit Docker und SQL Server

Erstellen einer Continuous Integration Build Pipeline mit Jenkins, Docker und SQL Server

In einer Welt mit kontinuierlicher Datenintegration und sofortiger Veröffentlichung kann es vor kommen, dass wir vielleicht mehrere unterschiedliche Builds an nur einem Tag erzeugen müssen. Dafür eignet sich besonders die Verwendung von Docker, da mit dessen Hilfe Umgebungen mit nur wenig Arbeit erzeugt und genau so leicht wieder entfernt werden können. In dem folgenden Artikel wollen wir veranschaulichen wie man mit der Hilfe von GIT, Jenkins, Docker und SQL Server für Linux eine simple Pipeline bauen kann. Die Pipeline Die von uns im Folgenden erstellte Pipeline wird aus insgesamt 5 unterschiedlichen Schritten bestehen. Diese sind: Auschecken eines SSDT Projekts aus …

Weiterlesen …Erstellen einer Continuous Integration Build Pipeline mit Jenkins, Docker und SQL Server

Erstellen eines Self-Service Framework für SQL Server Administratoren

Das Leben eines DBA ist wirklich kein leichtes Spiel. Wer kennt es nicht: von “Kannst du mal eben die Abfrage XYZ ausführen und mir die Ergebnisse als Excel-Dokument zukommen lassen?” bis “Hier, alle diese Skripte müssen in die Vor-Produktion!”. Alles keine großen Herausforderungen für einen DBA – aber sie kosten Zeit und/oder können uns schnell aus dem Konzept bringen. Um solche allgemeinen Aufgaben in Zukunft vermeiden zu können, bietet es sich an, einen Self-Service Mechanismus einzurichten, der ohne viel Zutun des DBAs kleinere, evtl. öfter wiederholte Aufgaben ausführen kann, wie etwa Abfragen ausführen, Skripts veröffentlichen oder Umgebungen aktualisieren, ohne bzw. …

Weiterlesen …Erstellen eines Self-Service Framework für SQL Server Administratoren

SQL Server: die Bedeutsamkeit des Datenbanken Kompatibilitätslevels

Noch vor der Veröffentlichung des SQL Server 2014 wurde dem Datenbanken Kompatibilitätslevel nicht besonders viel Aufmerksamkeit zugeteilt – zumindest wenn es darum ging, die Performanz des Servers zu verbessern. Im Gegensatz zu dem Datenbanken-Datei-Level (die automatisch angepasst und geupdatet wird, wenn eine Datenbank auf einer Instanz, die eine neuere SQL Server Version ausführt, wiederhergestellt wird), kann das Datenbank Kompatibilitätslevel mit einem einfachen Befehl verändert werden: SET COMPATIBILITY LEVEL = [LEVEL] Dabei ist wichtig zu verstehen, dass das Kompatibilitätslevel einer Datenbank beliebig angepasst werden kann. Was wiederum in vielen Fällen (wie beispielsweise nach einer Migration auf einen neueren SQL Server) dazu …

Weiterlesen …SQL Server: die Bedeutsamkeit des Datenbanken Kompatibilitätslevels

Des Kaisers neue Kleider: Die Überarbeitung der grafischen Oberfläche des SQLSyncer – Teil 1

In meinem heutigen Artikel möchten wir einen Weg einschlagen, den wir bisher noch nicht wirklich gegangen sind: mit einer Art “Dev-Blog” möchten wir unseren Lesern und Kunden einen kleinen Einblick hinter die Kulissen gewähren – genauer gesagt in die Entwicklung unserer Software SQLSyncer. Der SQLSyncer ist eine Automatisierungssoftware für Migration und Synchronisation von Datenbanken zwischen unterschiedlichen Quell- und Ziel-Servern und soll vor allem Benutzer mit wenig Vorwissen und eigener Erfahrung in Migration/Synchronisation unterstützen. Gleichzeitig ist er aber auch für erfahrene DBAs geeignet, und erleichtert enorm Arbeitsaufwände im Arbeitsalltag. Im heutigen Beitrag betrachten wir – wie der Titel vielleicht schon vermuten …

Weiterlesen …Des Kaisers neue Kleider: Die Überarbeitung der grafischen Oberfläche des SQLSyncer – Teil 1

SQL Server & Docker: Volume Backup und Wiederherstellung

In diesem Artikel möchten wir das Erstellen und Wiederherstellen des Backups eines Docker Volumens das von einer SQL Server Installation genutzt wird, betrachten. Stellen wir uns zunächst folgende Ausgangssituation vor: Auf einem Docker Container läuft ein MS SQL Server 2017, der auf einem Volumen benötigte Daten gespeichert hat. Dieses Volumen, oder viel mehr die Daten auf diesem Volumen, sind persistent. Das bedeutet, dass auch nach einem Neustart des Containers die gespeicherten Informationen noch vorhanden sind. Tipp: Sollen die gespeicherten Daten nach einem Neustart verschwinden, kann auf folgende Weise die “-v” Flagge genutzt werden: docker-compose down -v. Hier die zur Situation zugehörige …

Weiterlesen …SQL Server & Docker: Volume Backup und Wiederherstellung

Docker und SQL Server: Erstellen, Updaten und .NET Anbindung

In diesem Beitrag möchte ich Dir eine kleine Einführung in die Verwendung von MSSQL mit Docker Containern geben. Die primären Ziele dabei sind die folgende: das Ausführen eines SQL Servers mithilfe von Docker das Ausführen mehrerer SQL Server mithilfe von Docker das Wiederherstellen einer Datenbank auf dem zuvor erstellten SQL Server Container das Verbinden des MSSQL Containers mit dem .NET Core Vorbereitungen Als erstes muss das SQL Server Image bezogen werden. Mithilfe der folgenden PowerShell-Eingabe kann eine Übersicht der von Microsoft zur Verfügung gestellten SQL Server Images erzeugt werden: invoke-webrequest https://mcr.microsoft.com/v2/mssql/server/tags/list Als nächstes, können wir die Ausgabe des zuvor ausgeführten …

Weiterlesen …Docker und SQL Server: Erstellen, Updaten und .NET Anbindung

Synchronisation zweier SQL Server Datenbanken

In unserem heutigen Artikel möchte ich ein Verfahren zur Synchronisation von zwei SQL Server Datenbanken vorstellen und dieses im Anschluss mit der alternativen Verwendung von Automatisierungen für Migration und Synchronisation am Beispiel des SQLSyncers vergleichen. Problem: Wie vergleicht man Datenbanken Schemata in SQL Server? Im ersten Abschnitt möchte ich ein Verfahren zum Vergleich von Datenbanken Schemata vorführen. Dabei werden wir ausschließlich auf den Vergleich von Tabellen, Spalten und Constraints (einschließlich der Indexe) eingehen. Andere Objekte, wie beispielsweise Sichten oder gespeicherte Prozeduren, können ebenfalls in das Verfahren einbezogen werden, sind aber nicht Teil des heutigen Artikels. Um dem Verfahren folgen zu …

Weiterlesen …Synchronisation zweier SQL Server Datenbanken

Benötigte SQL Server Updates finden und downloaden

Eine der häufigsten Fragen bezüglich des Patch-Managements eines SQL Servers die uns erreicht, ist die Frage nach dem Identifizieren und dem Download der benötigten Updates. Eine sehr interessante und berechtigte Frage, wie wir finden – weshalb unser heutiger Artikel ein einfaches Verfahren unter Benutzung der Test-DbaBuild Tools von dbatools für PowerShell vorstellt. Die wichtigsten Komponenten spielen dabei die drei Parameter KBLevel, BuildLevel und BuildTarget, die an die Ausgabe einer Test-DbaBuild Abfrage angefügt werden können. Der Parameter KBLevel beschreibt dabei (wie der Name schon vermuten lässt) das KB Level, zugehörig zu dem momentanen Service-Pack oder dem Kumulativen-Update, das momentan ausgeführt wird. …

Weiterlesen …Benötigte SQL Server Updates finden und downloaden