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: