neue Session – Powershell Toolbelt für DBAs – PASS UserGroup Hamburg

Am 13.04.2017 habe ich das Vergnügen erneut vor der Regionalgruppe Hamburg der PASS Deutschland e.V. sprechen zu dürfen. Sascha Lorenz und Cornelia Matthesius veranstalten – wie jeden Monat – wieder ein Treffen in der Hamburger Geschäftsstelle von Microsoft, dieses Mal ist es Mittwoch, der 13. April. Anmeldungen am Besten über die Meetup-Plattform =>  SQL Server Hamburg (by PASS Deutschland e.V.)

Automation makes things easier

Wer kennt es nicht? Immer heißt es “du musst effizienter werden”, aber wie… also noch schneller die Arbeit erledigen, aber wo kann man noch Zeit sparen? Natürlich bei immer wieder kehrenden Aufgaben, hier gibt es zweierlei Ansätze…

  • Tasks automatisieren
  • länger dauernde, komplizierte Aufgaben einfacher machen

Wie man das in Bezug auf die DBA-Tätigkeiten umsetzen kann und welche Tools/Produkte/Skripte dabei zum Einsatz kommen (können), darüber werde ich an diesem Abend erzählen.

Beispiele ?!

  • Wie lange braucht man um einen SQL Server von einer älteren Version auf eine neuere Version anzuheben?
    Natürlich inklusiv der Übernahme aller Logins, aller Jobs, aller Linked Server, aller Alerts und aller Datenbanken etc – 1-2 Tage je nach Umfang der einzelnen Unterpunkte.Was würdet ihr aber sagen, wenn man das auch in ~5 Minuten schaffen kann (abhängig von der Datenbank-Größe) und nur einer (!!) Kommandozeile ???
  • Datenbanken von Server zu Server kopieren, Datenfiles und Datenbank umbenennen und Orphaned-Users bereinigen in drei Zeilen Powershell ???

Nicht möglich ???

Lasst euch überraschen, ich habe einige Demos vorbereitet anhand derer ich euch diese Tools vorstellen werde.

Veranstaltungsort

PASS Deutschland e.V. ist die deutsche Microsoft SQL Server Community und ein offizielles Chapter der PASS International. Die Mitgliedschaft bei der PASS ist kostenfrei.

Das Treffen findet am 13. April 2017 um 18:30 in der Microsoft Niederlassung Hamburg in der Gasstraße 6a statt und wird von PASS Deutschland e.V.. ausgerichtet.

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.

Microsoft Cloud Deutschland – Rechtliche Aspekte und Datenschutz

Im Rahmen unseres monatlichen Azure Meetups in Hamburg hatten wir dieses Mal Besuch aus Köln, Raphael Köllner kam extra für unser Meetup um über die rechtliche Aspekte und den Datenschutz in der neuen Microsoft Cloud Deutschland zu sprechen. Raphael ist ein Exot unter uns “Insidern”… er kennt sich nicht nur in der IT aus, er ist Windows Insider MVP und Office Server und Services MVP, sondern er ist auch noch Rechtswissenschaftler für IT- und IP-Recht und Wissenschaftlicher Mitarbeiter in einer Rechtsanwaltskanzlei. Somit kann er uns, der Azure-Community, Einblicke sowie wichtige Inhalte der einzelnen Vertragsinhalte optimal näherbringen.

Trumps Einfluss auf die Microsoft Cloud Deutschland

Die Executive Orders die Trump in den letzten Tagen und Wochen erlassen hat, betreffen uns nicht direkt, aber leider die vertraglichen Inhalte mit Microsoft und somit uns indirekt. Hier unter dem Namen “Privacy Shield Framework” wurde unter anderem der Paragraf/die Sektion 14 angepasst, hier geht es mehr oder weniger um den Datenschutz amerikanischer Staatsbürger im Vergleich zu Nicht-Amerikaner, Herr Trump hebt den Schutz der persönlichen Daten ausländischer Einreisewilliger auf.

Social media passwords are to be called upon entry

14-2985: Microsoft Corp. v. United States – Der Supreme Court hat die Urteile aus dem Juli 2016 bestätigt, Microsoft muss keine Kundendaten, die in einem Rechenzentrum einer Tochterfirma in Dublin gespeichert sind an die US Behörden weitergeben, der Stored Communication Act ist nicht anwendbar.
Das lässt zumindest in soweit hoffen, dass auch die europäischen Datenschutz-Rechte unangetastet bleiben.

Datenschutz in der Microsoft Cloud Deutschland

Durch die europäischen Datenschutzgesetze und die weiterreichenden deutschen Datenschutzbestimmungen in Verbindung mit den technischen Gegebenheiten hat ausser dem Kunden selber kein anderer Zugang zu den sensiblen Kundendaten, dies wird durch die spezifische deutsche Zertifizierungen und durch das Lockbox-Verfahren gesichert. Weitere Vorteile für die Nutzung der deutschen Microsoft Cloud liegen in der lokalen Datenverarbeitung und den besseren Latenzen und somit Geschwindigkeitsvorteilen.

Einzig bei den Verträgen sollte man genauer ins Detail schauen, da hier unter Umständen einige Haken versteckt sind, was aber nur für Reseller/Hoster/Softwareanbieter o.ä. relevant ist, da diese ihre eigenen Verträge on-top setzen. Wichtig anzumerken ist hier, dass es sich um einen Dreiecksvertrag handelt… man schliesst eigentlich einen Vertrag mit dem deutschen Treuhänder (T-Systems) ab, wenn man aber alle relevanten Vertragsunterlagen durchliest, stellt man fest dass neben T-System und Microsoft z.B. auch die Deutsche Telekom AG und weitere Töchtergesellschaften mit im Boot ist.

Microsoft Cloud Datenschutz 21.02.2017 - Unterauftragsverhältnis

 

Technisch gesehen ist die Microsoft Cloud Deutschland nahezu identisch mit anderen Azure Clouds also der Public Cloud von Microsoft, aber eben doch anders… denn hier werden nicht alle Servervarianten (IaaS) angeboten, einige Software-Produkte werden erst verspätet angeboten/implementiert und auch die Preise liegen im Vergleich zur Public Cloud etwas höher. Man muss also tatsächlich den Einzelfall überprüfen, für welches Szenario der Umstieg bzw Einstieg in die Microsoft Cloud Deutschland Sinn macht, ob man wirklich alle diese (in der Hauptsache) Datenschutz-relevanten Punkte braucht und wie man diese in seine Lösung einbinden kann.

Ich möchte mich nochmal bei Raphael Köllner recht herzlich bedanken für seinen fundierten und detailreichen Vortrag danken. Die Slides seines Vortrages findet ihr hier auf meinem Blog => Slides aus den Azure Meetups

Wenn ihr Interesse an weiteren Themen rund um Azure und die Microsoft Cloud Deutschland habt, dann kommt doch einfach mal zu einem Azure Meetup vorbei… für alle Hamburger bzw Nordlichter empfehle ich das Azure Meetup Hamburg ansonsten sucht euch bitte eine passendes Meetup je nach Wohnort hier raus, denn die Azure Meetups der Community gibt es deutschlandweit.

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.

Neues in SQL Server vNext unter 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.

TempDB-Performance-Tuning out of the box – T-SQL Tuesday #87

TempDB-Performance-Tuning out of the box - T-SQL Tuesday #87

T-SQL Tuesday ist eine wiederkehrende Blog-Serie, die von Adam Machanic (b | t) gestartet wurde, jeden Monat ist ein Blogger Gastgeber für ein Thema rund um den SQL Server und jeder kann einen Blogbeitrag zu diesem bestimmten Thema schreiben.

Diesen Monat ist Matt Gordon (b | t) unser Host und das Thema geht um neue Features im SQL Server (ab der Version 2014) welche alte Problemstellungen beheben, bekannt gegeben in seinem Announcement-Post.

Mein Thema für diesen TSQL2sDay ist die neue Möglickeit zur Konfiguration der TempDB im Rahmen der SQL Server Installation.

Umsetzung der Best-Practise für die TempDB vereinfacht

Bisher musste man nach erfolgter Installation des SQL Server die Best-Practise Empfehlungen von Microsoft mehr oder weniger aufwändig konfigurieren. Entweder man ist auf herkömmliche Art und Weise an das Thema heran gegangen und hat die Werte manuell über das SQL Servermanagement Studio eingestellt oder man hatte es sich einfacher gemacht, dieses entweder per T-SQL oder Powershell Skript automatisiert. Aber dennoch musste man jedesmal diese Konfigurationsanpassungen nachträglich hinzufügen, um eine optimierte Performance der TempDB zu erreichen.

Die grundsätzliche Performance erhält die TempDB im Grunde zwar über die Hardware-Ausstattung, hier die physikalische Trennung zwischen User-Datenbanken und TempDB und die Verlagerung der TempDB auf hochperformanten Storage. Microsoft empfiehlt die strikte Trennung von UserDB und TempDB nicht nur durch getrennte Ordner-Strukturen oder getrennte Partitionen, es sollen eigene (schnelle) Platten sein. Hier muss auch keine großartige RAID-Konfiguration vorliegen, ein RAID 1 oder RAID 10 wären toll, aber keine wirkliche Notwendigkeit, denn die TempDB wird beim Neustarten des SQL Servers immer wieder “neu” erstellt, somit wäre es kein “Drama” wenn sie korrput wäre oder die drunterliegenden Platten crashen würden. (Ok, mal von dem Verlust von Daten und Zeit abgesehen).

Überblick über die Best-Practise Änderungen

Soviele Anpassungen sind gar nicht notwendig um eine bessere Performance der TempDB zu erreichen, diese möchte ich hier kurz zusammenfassen:

  • physikalische Trennung von User-Datenbanken und TempDB
  • Aufsplittung der TempDB in einzelne Datenfiles gem. Prozessor-Anzahl
  • Autogrowth-Parameter Anpassungen
  • Trace-Flag je nach Verwendung/Bedarf

Wenn man nun diese physikalische Optimierung im Storage-Bereich realsiert hat, kann man sich an die logischen Anpassungen in der Konfiguration machen. Je nach Prozessor-/Kernzahl empfiehlt Microsoft anstatt eines großen Datenfiles die Aufsplittung in mehrere getrennte Datenfiles, um eine Optimierung der IO-Streams umzusetzen (Parallelisierung). Ebenso kann man – je nach Anwendungsgebiet bzw Bedarfs – nun die Datenfiles initial auf eine feste Größe festlegen, damit der interne Aufbau der Datendateien optimiert wird und alle Dateien gleich groß sind. (ähnl. Traceflag 1117/1118). Anderweitig sollte man den Autogrowth-Parameter auf 10% setzen, so dass die Datendateien in Verbindung mit den Traceflag 1117 und 1118 zu einem optimierten, gleichmäßigen Aufbau der TempDB beitragen.

SQLServer2016 - Configure TempDB during Installation

SQL Server 2016 bringt integrierte Vereinfachungen

Der SQL Server 2016 bringt nun diese ganzen logischen Optimierung gleich im Rahmen der Installation mit… man kann also ohne Umschweife dem SQL Server mitteilen, wie man die Anzahl und Aufteilung der TempDB-Datenfiles sowie deren Autogrowth-Parameter setzen möchte. Microsoft hat endlich die lange publizierten Best-Practise Empfehlungen in den Installationsprozess integriert. Somit muss man eigentlich nur noch die Hardware-Vorraussetzungen für die TempDB schaffen und kann anfangen zu installieren.
Ok, auch hier muss man sich natürlich Gedanken machen, welche Werte man wie setzt, aber zumindest muss man sich über diese Konfigurationen hinterher keine Gedanken machen!

VIELEN DANK an Microsoft für diese Verbesserung.

Man kann man während des Installationsprozesses einstellen, wieviele Datenfiles man anlegen möchte, dazu die initiale Größe und auch den Autogrowth-Parameter festlegen. Theoretisch könnte man sogar für jedes einzelne Datenfile (Aufteilung anhand der Anzahl der Kerne) einen eigenen Datenpfad oder sogar eine eigene (SSD-)Platte spendieren. Alles in einem übersichtlichen Screen dargestellt und auf für den unerfahrenen DBA einsetzbar.

Durch dieses neue “Toy” konnten einige “Problems” reduziert werden… 😉

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.

ServicePack 1 für SQL Server 2016 released – Enterprise meets Standard

Gestern Vormittag (Ortszeit New York) bzw Nachmittag bei uns wurden viele neue Themen im Rahmen der Keynote vom Microsoft Event “Connect(); // 2016” vorgestellt, der wichtigste Punkt aus meiner Sicht sind die Neuerungen aus dem Servicepack 1 für den SQL Server 2016. Bisher waren einige Features nur in der Enterprise Edition des SQL Servers verfügbar, jetzt eröffnet Microsoft seinen Kunden die Möglichkeiten eben diese Features auch in der Standard Edition zu nutzen.

Features in SQL Server 2016 RTM

Das ServicePack 1 des SQL Server 2016 beinhaltet alle Fixes bis zum Cumulative Update 3 und dem Security Update MS16–136.

Folgende Features wurden (zusätzlich) im ServicePack 1 als Verbesserungen eingeführt:

  • Row-level Security
  • Dynamic Data Masking
  • Change Data Capture
  • Database Snapshot
  • Columnstore
  • Partitioning
  • Compression
  • InMemory OLTP
  • Always Encrypted
  • PolyBase
  • Fine grained auditing
  • Multiple filestream containers
  • Database Cloning
  • CREATE OR ALTER
  • USE HINT – als zusätzliche Abfrage Option
  • TempDB – Verbesserung in der Erkennbarkeit im Errorlog
  • und zahlreiche Verbesserungen in DMVs und XEs

All the newly introduced Trace flags with SQL Server 2016 SP1 are documented and can be found at http://aka.ms/traceflags.

Features in SQL Server 2016 ServicePack 1

Einige Einschränkungen gibt es noch in den einzelnen Features in den kleineren Editionen, wie zum Beispiel die Speichergrenzen für InMemory OLTP – Details zu den teilweise recht geringen Größen finden Sie hier.

Fazit:
Nun lohnt sich der Wechsel auf den SQL Server 2016 erst recht, wenn auch erst ab dem ServicePack 1… UND man braucht nicht mehr unbedingt eine Enterprise-Edition um zum Beispiel Compression und Partitioning einsetzen zu können.

VIELEN DANK an Microsoft für diesen großartigen Schritt!

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.