Neues in SQL Server vNext unter Linux

SQL Loves Linux

Heute geht es um den SQL Server vNext, also den aktuellen Public Preview des SQL Servers auf Linux.
Ich habe mit dem SQL Server schon recht lange zu tun (mein erster Kontakt war etwa 2002 in der Version 6.5), damals konnte man sich gar nicht vorstellen, dass der SQL Server oder Microsoft generell einen Schritt in Richtung Open-Source Linux geht. Das waren zwei komplett voneinander getrennte (feindliche?) Welten… Kommandozeile gegen “bunte Maus-Klickereien”… schon fast (oder immer noch?) eine “Glaubenskrieg” ?!? Auch vor 2013 konnte man sich eine solche Offenheit gegenüber der “Open-Source-Community” schwerlich vorstellen, erst mit Satya Nadella kam ein Umschwung, der die Öffnung in Richtung Community ermöglicht bzw voran trieb.

The Adventure Begins

Für die SQL Server Community war es eine riesige Überraschung als Satya Nadella im März 2016 ankündigte, dass der SQL Server auch auf Linux erscheinen soll. Mit dem ersten Public Preview bzw der ersten Details offenbarten sich weitere Neuerungen im SQL Server Umfeld, das es eben auch möglich sein sollte den SQL Server als Docker-Container betreiben zu können. Somit ermöglichte man auch den MAC-Usern einen Zugang zum SQL Server.
Die nächste Konsequenz war dann auch die Veröffentlichung im August 2016, dass Powershell Open-Source wird und der Source-Code öffentlich zugänglich auf Github liegt, durch diese Öffnung ergaben sich plötzlich diverse neue Einsatzvarianten und Lösungsansätze. Plötzlich konnte man seine komplette Umgebung mit Powershell administrieren, sicherlich für beide Seiten (Linux- und Windows-Admins) eine komplett neue und ungewohnte Situation.

Am 16. November 2016 war es dann soweit, Microsoft gab die erste Version des SQL Servers vNext (zuerst nur) auf Linux als Public Preview bekannt… Jedermann konnte sich nun den SQL Server auf seinem Linux-Server installieren und ausprobieren, bereits mit der folgenden Version kamen dann die Möglichkeiten dazu den SQL Server vNext auch als Container zu installieren dazu, dadurch auch die Möglichkeiten für MAC-User den SQL Server als Docker-Container laufen zu lassen.

Historie der bisherigen SQL Server Versionen

Die erste Version des SQL Servers gab es bereits 1989, damals allerdings noch nicht auf Windows Betriebssystemen sondern nur unter OS/2. Erst mit der Version 4.21 im Jahre 1993 brachte Microsoft den SQL Server in der Version 4.21 auf Windows heraus, danach gab es (bisher) nur eine OS-Plattform für das bekannte Datenbank-Produkt. Über die Jahre gab es immer wieder neue großartige Releases, zum Beispiel 2000 den SQL Server 2000 auch bekannt als SQL Server 8.0, nach dieser Version ging man dazu über die Abstände zwischen den einzelnen Veröffentlichungen zu reduzieren und die einzelnen Versionen mit Jahreszahlen auszudrücken. 2005 kam der SQL Server 2005 auf den Markt, 2008 die Version 2008 und so weiter… Der SQL Server 2016 ist gerade veröffentlicht worden, schon präsentiert Microsoft bereits neue Ideen wie den SQL Server auf Linux… Jetzt im Februar 2017 gibt es bereits den vierten CTP-Release des SQL Servers on Linux… die General Availibility soll bereits Mitte 2017 verfügbar sein, welches Feature-Set dieses Release beinhalten wird ist allerdings aktuell noch unklar.

FeatureSet - SQL Server on Linux

Installation und Betrieb – ganz einfach

Den SQL Server auf Linux zu installieren ist keine Magic und sehr einfach und schnell erledigt – erstaunlicherweise. In der Regel schafft man die Installation des SQL Servers auf einem bestehenden Linux Server unter RedHat Linux, Suse Linux oder Ubuntu innerhalb von wenigen Minuten.

Import der öffentlichen Repository GPG Schlüssel:

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 

Registrieren des Microsoft SQL Server Ubuntu Repository:

curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list 

Die eigentliche SQL Server Installation:

sudo apt-get update sudo apt-get install -y mssql-server 

Grundlegende Konfiguration inkl. Security

sudo /opt/mssql/bin/sqlservr-setup 

Starten der SQL Server DB-Engine

sudo systemctl start mssql-server 

Tools-Installation

sudo apt-get update 
sudo apt-get install mssql-tools unixodbc-dev

sudo ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd 
sudo ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

Und schon hat man es geschafft, der SQL Server läuft auf dem Linux System!
Nun kann man zum Beispiel eine vorhandene Datenbank von einem Windows-System auf das Linux System mittels Backup und Restore kopieren.
Hierzu bedarf es ein paar Vorbereitungen, wie Pfade anlegen, Berechtigungen vergeben, z.B. WinSCP installieren und konfigurieren und wenn man dann die Backup-Datei auf dem Linux-System abgelegt hat, kann es auch schon los gehen.

RESTORE DATABASE AdventureWorks FROM DISK = '/var/opt/mssql/backup/AdventureWorks2014.bak' 
 WITH MOVE 'AdventureWorks2014_Data' TO '/tmp/data/AdventureWorks2014_Data.mdf', 
 MOVE 'AdventureWorks2014_Log' TO '/tmp/tlog/AdventureWorks2014_Log.ldf';

GO
Björn arbeitet in Hamburg als Datenbank-Administrator und Head of Competence für MS SQL und mySQL. Er nimmt regelmäßig an den PASS Regionalgruppen Treffen in Hamburg, den Veranstaltungen der PASS wie SQLSaturday und SQLGrillen teil und er organisiert in Hamburg das Azure Meetup. Er interessiert sich neben den Themen rund um den SQL Server, Powershell und Azure für Science-Fiction, Snowboarden, Backen 😉 und Radfahren.

Leave a Reply

Your email address will not be published. Required fields are marked *