NAV 2016 und Azure SQL

NAV 2016 auf Azure SQL umstellen

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:

NAV2016_Azure_SQL_vorher

Nachher:

NAV2016_Azure_SQL_nachher

Die Umstellung besteht grundsätzlich aus 3 Schritten:

  1. Vorbereitung lokale DB und Azure SQL
  2. Transfer der lokalen DB auf Azure SQL
  3. 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:

Azure_Management_Portal_01

Auf Reiter „Konfigurieren“ gehen:

Azure_Management_Portal_02

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:

Azure_Management_Portal_04

Mit Speichern wird die Einstellung übernommen:

 

Azure_Management_Portal_03

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:

Management_Studio_03a

Verbindung zur Azure SQL-DB

Danach eine Verbindung zur Azure SQL-DB erstellen:

Management_Studio_01

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:

Management_Studio_02

nach „Verbinden“ erscheint die Instanz nun im Management Studio:

Management_Studio_03

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:

Management_Studio_04

Es erscheint ein Wizard. Hier auf „Weiter“:

Management_Studio_05

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.

Management_Studio_06

Management_Studio_07

Management_Studio_08

Sollte dabei folgender Fehler auftreten, liegt es daran, dass die Windows-Benutzer aus der lokalen DB nicht gelöscht wurden.

Management_Studio_03b

Management_Studio_03c

Wenn es fehlerfrei durchlief:

Management_Studio_09

Die neue DB in Azure:

Management_Studio_10

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:

bacpac_01

Import auf Azure DB:

bacpac_02

Umstellung des NAV Service Tier auf Azure SQL

Dazu die NAV 2016 Administration starten:

NAV_Administration_00

Unter „Configuration“ den Eintrag „Database Server“ auf [Azure_SQL_Server_Name].database.windows.net ändern:

NAV_Administration_01

Unter „Database credentials“ die Azure SQL Zugangsdaten eintragen:

NAV_Administration_02

Es kommt dann folgende Meldung:

NAV_Administration_03

Diese mit OK beantworten.

NAV_Administration_04

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…