SQL-Datenbank aufsetzen
Hier sind die erforderlichen Konfigurationen für die Verwendung einer SQL-Datenbank mit Logo beschrieben.
Allgemeine Angaben
Mit Logo können verschiedene Arten von SQL-Datenbanken verwendet werden. Die Art der Datenbank wird über den Parameter DatabaseType definiert. Es können folgende Datenbanktypen verwendet werden:
MSSQL
MSSQL19
POSTGRESQL
MYSQL
FIREBIRD
Konfigurationsdatei
Die Anbindung der Datenbank an Logo wird in der INI-Datei konfiguriert, diese liegt im Logo-Stammverzeichnis. Rollen und Benutzer werden auf der Datenbank selbst angelegt.
Die Konfigurationsdatei muss minimal folgende Angaben enthalten:
[Database]
DatabaseType=
Server=
Database=
Username=
Password=
Zusätzliche Parameter werden ebenfalls in der Konfigurationsdatei definiert. Hier ein Beispiel einer Konfigurationsdatei für eine MS SQL-Verbindung:
[Database]
DatabaseType=MSSQL19
Server=BSMSSQL01
Database=testdatenbank
Port=1433
Username=logouser
Password=logouser
AdminUsername=logoadmin
AdminPassword=logoadmin
UseWindowsLogin=False
Provider=direct
LockTimeout=60000
Allgemeine Parameter
DatabaseType
Die verfügbaren Datenbanktypen sind oben aufgelistet.
DatabaseType=MSSQL19
Port
Wird nicht der jeweilige Standard-Port verwendet, kann der Port entsprechend angegeben werden:
MS SQL Server
Logo unterstützt seit Version 12.20 die Verbindungsart MSSQL19. Diese hat gegenüber MSSQL Vorteile in den Bereichen Performance und Sicherheit und wird deshalb empfohlen.
Folgende Gründe sprechen für MSSQL19:
Sequences wurden bisher standardmässig über eine Tabelle gelöst. Seit SQL Server 2012 stehen diese native zur Verfügung und sind schneller und stabiler als die eigene Lösung über eine Tabelle.
Gewisse Spaltentypen, die mit Typ MSSQL verwendet werden, gelten in SQL Server seit mehreren Jahren als obsolet.
Das OLEDB Protokoll läuft nur über TLS 1.0 und 1.1 und gilt als veraltet und unsicher.
Zeichensatz
Für MSSQL19 muss ein UTF-8-Zeichensatz verwendet werden. Empfohlen wird Latin1_General_100_CI_AI_SC_UTF8.
MSSQL19-Parameter
Provider
Standmässig ist Provider=Direct eingestellt. Dafür muss im SQL Server Configuration Manager das TCP/IP Protokoll aktiviert sein. Eine weitere Option ist Provider=NativeClient. Mit dieser Variante muss bei jedem Benutzer der native SQL Server Client installiert sein. Allerdings gibt es aus Sicht von Logo keinen Grund, den native Client zu verwenden.
Server
Falls es sich um eine Standard-Instanz handelt, sieht der Servereintrag folgendermassen aus:
Falls es sich um eine benannte Instanz handelt, sieht der Servereintrag folgendermassen aus:
Wird eine benannte Instanz verwendet, muss der Native Client zwingend installiert und aktiviert werden, da sonst gewisse Funktionen (Backup, Reorganisation) nicht funktionieren.
Benutzer
Standardmässig sollte für Logo ein Benutzer mit der Rolle db_owner erstellt werden. Falls dies nicht möglich ist, können die Rollen auf die Benutzer Admin (db_owner) und User (db_datareader, db_datawriter) aufgeteilt werden.
Wenn immer möglich sollte auf diese Aufteilung verzichtet und ein Benutzer erstellt werden.
Sollen nicht die auf dem Datenbankserver erstellten SQL-Logins, sondern die normalen Windows-Logins der Benutzer verwendet werden, müssen die entsprechenden Rollen für die verwendeten Windows-Logins auf der Datenbank definiert werden.
SQL-Login / Windows-Login
Standardmässig werden SQL-Logins verwendet, d. h. die Benutzer werden auf dem SQL-Server definiert. Sollen stattdessen die normalen Windows-Logins für den Zugriff auf die Datenbank verwendet werden, muss folgender Eintrag gemacht werden:
LockTimeout
Bestimmt die Anzahl Millisekunden, die eine Transaktion auf eine Sperre wartet:
Für Logo ist standardmässig 60000 Millisekunden eingestellt (Standardwert UniDAC = 2000).
Kann beim Auftreten des Fehlers Lock request time out period exceeded weiterhelfen.
Einstellungen
Unter Optionen als Wiederherstellungsmodell, wenn möglich, das Modell Einfach wählen. Das standardmässig eingestellte Modell Vollständig generiert u. U. riesige Transaktionsprotokolle und hat schon mehrmals zu Problemen mit dem vorhandenen Speicherplatz geführt.
Datenbankserver-Einstellungen
Da beim Ausführen von SQL-Befehlen die Anzahl der betroffenen Records erwartet wird, darf folgendes Kontrollfeld NICHT gesetzt sein:
Bekannte Probleme
Datenbank-User nach einem Restore
Nach einem Restore einer Datenbank, welche an einem anderen Ort aufgesetzt wurde, können Probleme mit den Datenbank-Usern auftreten. Der User ist bereits in der DB vorhanden und das entsprechende Login kann nicht zugeordnet werden. In dem Falle kann der folgende Befehl für alle benötigten User ausgeführt werden: