In diesem Beitrag möchte ich zeigen, wie ich probeweise NAV 2016 mit Azure SQL verbunden habe. Nach einer unglücklichen Erfahrung (s. Ende des Beitrags) mit Azure habe ich entschieden, nach Totovic‘ Anleitung (s. NAV TechDays 2015) genau das zu testen.
Was ist das Ziel? Die Umstellung einer NAV 2016 Installation in Azure mit lokaler Datenbank auf Azure SQL.
Vorher:
Nachher:
Die Umstellung besteht grundsätzlich aus 3 Schritten:
- Vorbereitung lokale DB und Azure SQL
- Transfer der lokalen DB auf Azure SQL
- Umstellung NAV-Service Tier auf Azure SQL
Voraussetzungen sind:
- Zugriff auf Azure Management Portal
- eingerichtete VM auf Azure
- erstellte Azure SQL Instanz
- Management Studio-Zugriff auf lokale NAV 2016 SQL-Datenbank, die auf Azure SQL umgestellt werden soll
Einrichtung Azure SQL
Um von außen (z.B. per Management Studio) auf die Azure SQL Datenbank zugreifen zu können, muss im Azure Management Portal die IP von außen erlaubt werden. Dazu im Portal den entsprechenden Server auswählen:
Auf Reiter „Konfigurieren“ gehen:
Hier wird die aktuell erkannte IP-Adresse vorgeschlagen. Mit dem Pfeil wird diesein die Liste der erlaubten IP-Adresse eingetragen. Es kann aber auch manuell ein IP-Bereich eingetragen werden:
Mit Speichern wird die Einstellung übernommen:
Dazu mit dem SQL Management Studio auf die lokale NAV SQL-DB einloggen.
Löschen der Windows-Benutzer aus der NAV SQL-DB
Für den reibungslosen Transfer ist es notwendig, die Windows-Benutzer aus der lokalen Datenbank zu löschen:
Verbindung zur Azure SQL-DB
Danach eine Verbindung zur Azure SQL-DB erstellen:
Der Servername lautet [Azure_SQL_Server_Name].database.windows.net (s. oben). Authentifizierung ist SQL Server-Authentifizierung mit den Credentials, die beim Anlegen der Azure SQL Instanz angegeben wurden:
nach „Verbinden“ erscheint die Instanz nun im Management Studio:
Jetzt sollte man im Management Studio jeweils eine Verbindung zur lokalen als auch zur Azure SQL-DB haben.
Transfer der lokalen SQL-DB auf Azure SQL-DB per Management Studio Task
Nun kann man aus dem Management Studio die lokale auf die Azure SQL-DB transferieren. Dazu rechte Maustaste auf die lokale NAV 2016 DB > Tasks > Datenbank auf Azure SQL-Datenbank bereitstellen:
Es erscheint ein Wizard. Hier auf „Weiter“:
Nun auf „Verbinden“ klicken und die entsprechende Azure SQL Verbindung auswählen. Danach die Einstellungen für die neue Azure DB konfigurieren (Edition, Datenbankgröße, Dienstziel (=Edition)). Laut Totovic ist im Dienstziel ein „S0“ ausreichend. Mit „Weiter“ startet der Transfer.
Sollte dabei folgender Fehler auftreten, liegt es daran, dass die Windows-Benutzer aus der lokalen DB nicht gelöscht wurden.
Wenn es fehlerfrei durchlief:
Die neue DB in Azure:
Transfer der lokalen SQL-DB auf Azure SQL-DB per BACPAC-Datei
Es ist auch möglich, den Transfer per sog. bacpac-Datei durchzuführen. Das habe ich selber aber nicht getestet.
Export von lokaler DB:
Import auf Azure DB:
Umstellung des NAV Service Tier auf Azure SQL
Dazu die NAV 2016 Administration starten:
Unter „Configuration“ den Eintrag „Database Server“ auf [Azure_SQL_Server_Name].database.windows.net ändern:
Unter „Database credentials“ die Azure SQL Zugangsdaten eintragen:
Es kommt dann folgende Meldung:
Diese mit OK beantworten.
Danach den NAV-Dienst neustarten.
Nun sollte NAV 2016 mit Azure SQL verbunden sein! Ich bin mal gespannt, wie performant dieses Setup ist. Vielleicht teste ich das bei Gelegenheit mal in einem Benchmark…
PS: Die unglückliche Erfahrung lag daran, die SQL-Dateien auf ein Azure VM-SSD-Laufwerk zu legen, die explizit mit Warnung „ACHTUNG! temporäres Laufwerk!“ versehen war. Nach einem Resize und Reboot waren die Dateien weg. Manche lernen erst, wenn sie die heiße Herdplatte trotz Warnung anfassen…