Tutorial - Einrichten MsSQL Datenbank
Dieses Tutorial zeigt wie man ein MsSQL Datenbank für EleLa einrichtet.
Benötigte Tools / Vorbereitung:
Beispiel für Tools die unter Windows funktionieren:
- MsSQL Datenbankserver ab Version 2017 (V14.x)
- Datenbanktool Microsoft SQL Server Management Studio (SSMS)
- Sql Server Configuration Manager (wird mit dem SQL Server mit installiert)
- DLL "sybdb.dll" (je nach EXE in 32-Bit oder 64 Bit)
Die einzelne Schritte die nötig sind:
- Installieren der MsSQL Datenbank lokal oder auf einem Server sowie
installation vom SSMS.
- "Download
Microsoft OLE DB Driver for SQL Server".
- Einrichten Datenbankzugang für EleLa (User / Passwort)
- Erstellen der Datenbank mittels EleLa
- Importieren/übernehmen bestehender Daten von SQLite
Vorbereitung der Datenbank:
Der Microsoft SQL Server muss so installiert werden wie in der Anleitung
von Microsoft beschrieben ist.
Sql Server Configuration Manager
Dieses Tool ist nötig um einen direkten TCP/IP Zugriff auf die MsSQL
Datenbank zu ermöglichen.
Im Abschnitt SQL Server-Netzwerkkonfiguration muss "TCP/IP"
für je jeweilige Server-Instanz "Aktiviert" sein.
 |
Aktivieren der TCP/IP Verbindung |
 |
Im Reiter "IP-Adressen" bei "IPAll" wird die
Port Nummer 1433 (Standard) eingetragen.
Über diesen Port kann sich EleLa auf den MsSQL Server verbinden. |
Einrichten Datenbankzugang (Benutzername / Passwort):
Als nächstes muss im MsSQL Server ein Login mit Passwort und Berechtigungen
angelegt werden, diese sind nötig damit EleLa auch auf die Datenbank
zugreifen kann. Dies kann mit dem SSMS Tool von Microsoft erfolgen.
Benötigt werden die Berechtigungen zum anlegen/ändern/löschen
für:
- Datenmanipulation
- Datenbank nur anlegen
- Tabellen
- Trigger
- Foreign Key's
Die Rechte für Datenbank und Tabellen wird benötigt damit EleLa
die Datenbank anlegen kann sowie Updates automatisiert durchführen
kann. Rechte für Anlagen/Ändern von Benutzern benötigt
EleLa nicht, das soll in der Hand des Administrators bleiben.
Erstellen der Datenbank:
In EleLa sind Funktionen hinterlegt, die automatisch eine Datenbank in
den SQL Servern (MySQL, PostgreSQL, MsSQL) erzeugen kann. Dies erleichtert
das Erstellen der Datenbank sehr und zugleich passt die erstellte Datenbank
immer zur verwendetet EXE Version.
 |
Unter Extras-F10 > Log wird mit der Taste "Optionen"
der Konfigurationsdialog gestartet. |
 |
Als Verbindung wird "OleDB" gewählt.
Einstellung wie im Bild. Hier kann der Datenbankname "elela"
vergeben werden, die im MsSQL Server erzeugt wird.
Host ist der Server auf dem MsSQL installiert ist. "localhost"
ist der lokale PC.
Der Port wird nicht genutzt und sollte daher 0 sein.
Benutzername und Passwort muss so eingestellt sein wie zuvor in
der Einrichtung mit SSMS eingestellt wurde.
Der "ConnectionString" der Verbindung erzeugt EleLa automatisch.
Die Taste "Erzeuge neue Datenbank" erstellt die Datenbank
im MsSQL Server automatisch, samt aller Tabellen. Das Erstellen
kann durchaus eine Längere Zeit beanspruchen.
Im Log protokolliert EleLa den Fortschritt der erzeugten Datenbank.
Bei Fehler kann es dort eingesehen werden.
|
 |
Mit "Teste Verbindung" kann nun kontrolliert werden ob
die Verbindung funktioniert, dann wird die Lampe grün.
Nun muss die Einstellung gespeichert werden, damit EleLa beim nächsten
Start diese Daten übernimmt. Dazu muss die "Speichern"
Taste gedrückt werden.
Mit "Schließen" wird der Konfigurationsdialog geschlossen.
Damit die Änderungen wirksam werden muss EleLa geschlossen
und wieder neu gestartet werden.
|
Nach dem, Neustart von EleLa sind alle Tabellen komplett leer.
Verbindungsaufbau über OleDB:
Die Verbindung wird über einen sogenannten "Connection String"
hergestellt. Diese Textzeile ist elementar wichtig um eine Verbindung
mit dem SQL Server herstellen zu können und diese kann je nach installtion
des Servers und des Datenbank Treibers abweichen. Hier können einige
Beispiele
online angeschaut werden. Für EleLa werden diese in der Regel verwendet:
Variante 1:
Provider=MSOLEDBSQL;Server=%HOST%;Database=%DB%;UID=%USER%;PWD=%PWD%;MARS
Connection=true; |
Variante 2:
Provider=MSOLEDBSQL;Server=%HOST%;Database=%DB%;Trusted_Connection=yes;MARS
Connection=true; |
Wenn kein User eingegeben wird, so verwendet EleLa die zweite Variante.
Im Connection String ersetzt EleLa automatisch bekannte Bezeichner anhand
der Konfiguration, alle Bezeichner sind optional:
%HOST% |
Der Eingabe in Host |
%PORT% |
Dem Port |
%DB% |
Der hinterlegten Datenbank |
%USER% |
Username |
%PWD% |
Passwort |
Provider:
Der Provider ist der Treiber der verwendet wird. Wenn man unterschiedliche
Treiber installiert hat so kann man mit einem Punkt und einer Zahl den
exakten Treiber auswählen, den man nutzen möchte. Beispiel:
"MSOLEDBSQL.1"
MARS Connection:
Dieser Parameter muss gesetzt sein, da EleLa mehre Verbindungen gleichzeitig
nutzt.
Es gibt noch eine ganze Reihe anderer Parameter, wenn diese benötigt
werden, so weis das entsprechend der Admin, der den SQL Server eingerichtet
hat oder muss dies in der Doku von Microsoft nachlesen.
Importieren der bestehenden Daten:
Jetzt können die bestehenden Daten in die neu erstellte SQL Datenbank
importiert werden. EleLa erledigt dies für alle SQL Datenbanken,
wie MySQL, PostgreSQL und MsSQL.
 |
Im Reiter "Extras-F10" > "Datenbank" kann
eine bestehende Datenbank importiert werden. Dazu wird dieses gezeigte
Menü ausgewählt. |
 |
Anschließend wird die bestehende SQLite Datenbankdatei ausgewählt.
Die Datei heißt in der Regel "EleLa.sq3" und ist
im gleichen Ordner wie EleLa.
Die Häkchen belässt man alle da alle Tabellen importieren
werden sollen.
Mit der Taste "Import" werden alle bestehenden Datensätze
vom MsSQL Server gelöscht und die anschließend die Daten
aus der SQLite Datei importiert.
Schließen beendet die Export-/Import Fuktion und die neuen
Daten stehen sofort zur Verfügung.
|
Hinweis: Um die Daten vom SQL Server zu sichern kann man ebenfalls
die "Export" Funktion benutzen. Dabei sollte als "Datei"
eine neue Datei angegeben werden damit bestehende Daten nicht überschrieben
werden. EleLa exportiert automatisch alle Datensätze in eine SQLite
Datenbank. Diese SQLite Datenbank ist somit eine Sicherung. Wenn man z.B.
etwas in einer Sicherung nachschauen muss, so muss diese Datei nicht wieder
in den SQL Server importiert werden, sondern man kann EleLa auf "sqlite-3"
im Konfigurationsdialog umparametrieren und die Sicherung direkt wieder
mit EleLa öffnen indem die "Datenbank" Datei angegeben
wird. Selbst wenn die Sicherung schon viel älter ist, so führt
EleLa beim Öffnen dieser SQLite-Datei automatisch einen Datenbank-Update
aus. Damit ist gewährleistet dass Sicherungen auch nach Jahren immer
noch nutzbar sind.
Die Datenbankhersteller bietet zwar Tools um die Daten zu sichern, diese
können jedoch nicht direkt mit EleLa gelesen werden.
EleLa bietet auch Kommandozeilenparameter mit der ein Backup automatisiert
realisierbar ist, somit kann der Systemandmin ein EleLa-Backup automatisiert
erstellen.
Wichtig: Regelmäßiges Backup der Datenbank durchführen.
Mit diesem Tool ist das schnell gemacht.
Update einer MsSQL Datenbank mit EleLa
Größere Updates der Datenbank kann EleLa mit MsSQL nicht ausführen,
da MsSQL zu viele spezielle SQL Befehle benötigt und es zu komplex
wird, ist darauf in EleLa verzichtet. Jedoch geibt es ein sehr praktikablen
Workaround, der das gleiche macht. EleLa macht immer dann ein Update der
Datenbank wenn die Major- oder Minor-Version ändert oder in der aktuellen
Test-Version so lange es dafür noch kein offizielles Setup-Paket
gibt.
Vorgehen:
- Backup der Daten vor dem Update mit der EleLa Datenbank Exportieren
Funktion
- Zusätzlich diese Datei als ZIP Datei sichern (diese Daten sind
sehr wichtig)
- Die neue EXE Version überschreiben und starten.
- Wenn das Update ohne Fehler ausgeführt wurde, kann man weiter
arbeiten, mehr braucht man nicht machen.
- Bei Fehler im Update geht man folgendermaßen vor:
Man nimmt das Backup der EleLa Datenbank und öffnet dieses Backup
mit EleLa als SQLite Konfiguration. Dabei macht EleLa automatisch ein
Update der Datenbank im Format SQLite.
- Wenn der Update der SQLite Daten nicht geklappt hat so kann im Log
geschaut werden um welche Tabelle es sich handelt und welcher Datensatz
Probleme bereitet, im Log wird dazu die ID des Datensatzes mit geloggt.
Entsprechend muss dieser Datensatz manuell korrigiert werden und Elela.exe
neu gestartet werden, bis alle Datenfehler behoben sind.
- Wenn der Update der SQLite Daten geklappt hat, so hat man eine fertig
konvertierte Datenbank im neuen Format.
- Nun legt man auf dem MsSQL Server mit EleLa eine neue leere Datenbank
an (Beschreibug siehe oben), also man vergibt einen neuen Datenbank
name und speichert die Einstellung. Das Anlegen kann einige Minuten
dauern.
- Nach dem Neustart von EleLa mit der neuen MsSQL Datenbank sollten
alle Tabellen leer sein.
- Import der Daten aus der zuvor konvertierten SQLite Datenbank (Beschreibung
siehe oben, kann einige Minuten dauern)
- Nach dem Import der Daten sind alle Datensätze wieder da und
man kann mit der neuen EleLa Version weiter arbeiten.
- Nach der Kontrolle der Daten sollte man unbedingt die alte Datenbank
auf dem MsSQL Server zur Sicherheit löschen, damit sich nicht noch
Kollegen damit verbinden, die den Update nicht mitbekommen haben.
Um diesen Update durchführen zu können wird nur EleLa benötigt,
andere Tools braucht es nicht. In EleLa sind sämtliche Werkzeuge
eingebaut.
Ein größeres Update wäre z.B. von V3.1 auf V4 up zu daten.
Hingegen kleinere Updates wie z.B. V4.0 > V4.1 sollte auch so funktionieren.
|