Zum Hauptinhalt springen

Architektur des Servers

CONZEPT 16-Server - Architektur des Servers Aufbau und Funktionsweise des CONZEPT 16-Servers.

Betriebshinweise

Der CONZEPT 16-Server kann unter Windows und Linux betrieben werden. Dabei gibt es jeweils zwei Varianten. Zum einen gibt es die 32-Bit Version, welche betriebssystemabhängig bis zu 3 Gigabyte Arbeitsspeicher verwenden kann. Zum anderen gibt es eine 64-Bit Version unter der architekturbedingt praktisch keine Beschränkung des Arbeitsspeichers mehr besteht. Pro verwalteter Datenbank kann der Datenbankserver unter einem 32-Bit Betriebssystem 1 Gigabyte Cache verwenden und unter einem 64-Bit Betriebssystem bis zu 160 Gigabyte.

Der CONZEPT 16-Server kann unter Windows als Dienst oder im Detached-Modus gestartet werden. Wird der CONZEPT 16-Server als Dienst gestartet, initialisiert diesen das Betriebssystem beim Hochfahren automatisch und der CONZEPT 16-Server steht für die Clients und zur Datenbankadministration zur Verfügung. Das Ganze ist somit unabhängig vom Anmeldestatus eines Benutzers. Alternativ kann der CONZEPT 16-Server im aktuellen Benutzerkontext, im sogenannten Detached-Modus, gestartet werden. Der CONZEPT 16-Server startet dann auch ohne Oberfläche, wird aber nicht als Dienst eingerichtet. Unter Linux wird der Server generell als Daemon eingerichtet und läuft somit immer unabhängig von den Benutzer-Sessions.

Die Installation des CONZEPT 16-Servers besteht aus dem Installieren des Lizenzdongle-Treibers und dem Einrichten der CONZEPT 16-Programmdateien. Unter Windows können die Programmdateien und der Dienst über die Setup-Routine eingerichtet und über das CONZEPT 16 Control-Center administriert werden. Unter Linux werden die Programmdateien entpackt und der CONZEPT 16-Server so eingerichtet, dass er automatisch beim Start des Systems initialisiert wird. Um zum Beispiel Statusinformationen von Datenbanken abzufragen oder Sicherungsereignisse zu starten, gibt es zusätzlich noch unter Windows und Linux das kommandozeilenbasierte Script-Utility . Alle Funktionen und Informationen sind zudem auch über den CONZEPT 16-Standard-Client erreichbar.

Prozesse

Der CONZEPT 16-Server besteht aus drei getrennten Prozesstypen, welche für den Betrieb des Servers verwendet werden. Diese Prozesse werden automatisch gestartet, wenn der CONZEPT 16-Server betrieben wird. Die Prozesstypen teilen sich folgendermaßen auf:

Service-Prozess

Der Service-Prozess ist der Basisprozess des CONZEPT 16-Servers. Auf ihm bauen alle weiteren Prozesse auf. Daher bildet dieser Prozess auch die Schnittstelle zum Betriebssystem, wenn dieses versucht den CONZEPT 16-Server zu starten oder zu beenden. Auch wenn das Control-Center den CONZEPT 16-Server beenden möchte, wird dazu der Service-Prozess des Datenbankservers angesprochen.

Der Service-Prozess ist nur für Windows und Linux verschieden. Ansonsten ist dieser Prozess der einzige, der bei jeder Rechnerarchitektur und Betriebssystemversion der gleiche ist. Bei allen anderen Prozessen wird jeweils automatisch die jeweilige Prozessversion gestartet.

Manager-Prozess

Der Manager-Prozess ist der zentrale Prozess des Servers. Er wird vom Service-Prozess gestartet und gegebenenfalls auch wieder beendet. Der Manager-Prozess überprüft periodisch die Lizenz des CONZEPT 16-Servers. Wird die Lizenzdatei oder der Lizenzdongle während des Betriebes verändert, registriert dies der Manager-Prozess und verändert die Lizenzdaten des Servers entsprechend. Eine Lizenzerweiterung ist daher auch im laufenden Betrieb möglich. Da der CONZEPT 16-Server auch ohne Lizenz gestartet werden kann, besteht auch die Möglichkeit, die Lizenz erst später einzurichten. Bis zu diesem Zeitpunkt können dann aber keine Datenbanken geöffnet werden.

Der Manager-Prozess führt die Datenraumtabelle des Servers, daher wenden sich alle Clients zunächst an den Manager-Prozess, wenn sie sich an eine Datenbank anmelden möchten. Steht die Datenbank zur Verfügung, verarbeitet der Manager-Prozess diese Anfrage und leitet den Client an den entsprechenden Datenbank-Prozess weiter. Beim Hot-Standby Betrieb von Datenbanken übernimmt der Manager-Prozess zusätzliche Service- und Kommunikationsfunktionen.

Datenbank-Prozess

Für jede vom Server geöffnete Datenbank gibt es einen Datenbank-Prozess, welcher sich ausschließlich um die Clients kümmert, welche an dieser Datenbank angemeldet sind. Für jeden Client gibt es dabei im Datenbank-Prozess einen eigenen Thread, welcher wiederum nur die Anfragen dieses Clients bearbeitet. Der Datenbank-Prozess ist die einzige Instanz, welche physikalisch auf der Datenbankdatei arbeitet.

Der Manager-Prozess leitet alle Clients automatisch an die jeweiligen Datenbank-Prozesse weiter, sodass sich diese an die Datenbank anmelden können. Falls eine Datenbank noch geschlossen ist, legt der Manager-Prozess für diese Datenbank zunächst einen eigenen Datenbank-Prozess an, bevor er den Client an diesen weiterleitet. Verlässt der letzte Client die Datenbank, beendet sich der entsprechende Datenbank-Prozess wieder.

Jeder Datenbank-Prozess verwaltet entsprechend der Konfiguration seinen eigenen Datenbankcache. Die Anzahl der Datenbanken, welche geöffnet werden können, hängt daher nur vom physikalisch verfügbaren Arbeitsspeicher des Systems ab. Durch die Unabhängigkeit der Prozesse können sich Abläufe verschiedener Datenbank-Prozesse gegenseitig nicht beeinflussen, was wiederum die Stabilität des Datenbankservers erhöht.

info

Da alle Server-Prozesse unabhängig voneinander laufen, gibt es generell keine wechselseitigen Abhängigkeiten zwischen den Prozessen. Wird zum Beispiel der Manager-Prozess beendet, können sich zwar keine neuen Benutzer an die Datenbanken anmelden, die bestehenden können aber trotzdem weiterarbeiten.

Temporäre Dateien

Der Datenbank-Prozess legt eine temporäre Datei mit dem Namen <Datenbankname>.tmp im eingestellten Transaktionsverzeichnis der Datenbank ab (siehe auch Konfiguration der Datenbanken ). Dort werden Daten abgelegt, die beispielsweise während einer Prozedurdurchführung auf dem Server anfallen.

Log-Dateien

Serverlogs

Alle Prozesse notieren Informationen, Warnungen und Fehler in Form von Log-Einträgen in verschiedenen Log-Dateien. Die Log-Dateien des Service- und des Manager-Prozesses heißen c16_serv_svc.lgb und c16_serv_mgr.lgb und liegen im Standardverzeichnis für Konfigurationsdateien . Unter Linux-Systemen werden diese Dateien direkt im Programmverzeichnis des Datenbank-Servers abgelegt. Für jede Datenbank verwenden die Datenbank-Prozesse eine eigene Log-Datei mit dem Namen "Datenbankname".lgb. Diese liegt im Verzeichnis der Datenbank. Informationen zu den verschiedenen Log-Einträgen können unter Log-Einträge entnommen werden.

Benutzerlogs

Der CONZEPT 16-Server kann auf Wunsch auch eine Benutzerlog-Datei anlegen und diese mit benutzerspezifischen Log-Einträgen füllen. Diese Einträge können über den Befehl DbaLog() in der Log-Datei abgelegt werden. Benutzerlogs werden im Datenbankverzeichnis unter "Datenbankname".lgu abgelegt.

Log-Format

Die Log-Dateien werden in einem binären Format geschrieben und sind daher manipulationssicher. Sie können mit dem Log-Viewer und dem Script Utility ausgelesen werden. Die Dateien sind auf eine Größe von 8 MB beschränkt und damit auch beispielsweise für einen Versand per E-Mail geeignet. Alle Log-Einträge werden chronologisch in den jeweiligen Log-Dateien gesichert. Kommen bei einer Maximalgröße neue Einträge dazu, werden die ältesten entfernt.

Ausnahmen bilden die Log-Dateien der Datenbanken und die Benutzer-Logs. Bei diesen Log-Formaten gibt es neben den Einträgen des Systems auch Einträge, die sich auf eine Benutzerinteraktion beziehen, wie beispielsweise ein Login in eine Datenbank. Den in der Regel weniger auftretenden Systemeinträgen wird allerdings ein höherer Stellenwert zugedacht, da sie meist für eine längere Zeit nachvollziehbar sein müssen. Aus diesem Grund ist für Systemeinträge immer mindestens die Hälfte der Maximalgröße eines Logs reserviert. Nur wenn diese Grenze erreicht wird und neue Systemeinträge hinzukommen, werden die älteren Systemeinträge aus dem Log entfernt. In allen anderen Fällen entfernt der CONZEPT 16-Server die ältesten Benutzereinträge.

Die Logs der Datenbank und der Benutzer besitzen noch eine weitere Besonderheit. Entfernte Einträge werden nicht verworfen sondern landen jeweils in einem chronologischen Archivlog, welches auf eine Größe von 128 MB beschränkt ist. Der Dateiname des Archivlogs entspricht dabei dem Dateinamen des normalen Logs, mit der Erweiterung *.lgbx beziehungsweise *.lgux. In der Regel reicht das normale Log völlig aus. Nur für den Fall, dass Log-Einträge über mehrere Jahre zurück benötigt werden, kann der Administrator über den Log-Viewer bis in ein eventuell vorhandenes Archivlog zurückblättern. Einträge, die aufgrund der Dateimaximalgröße aus dem Archivlog entfernt werden, sind endgültig gelöscht.

Netzwerkprotokolle

Der CONZEPT 16-Server kommuniziert üblicherweise nur über das TCP/IP-Protokoll. Werden Datenbankserver und Clients allerdings auf dem gleichen System betrieben, kann optional auch ein für den lokalen Betrieb optimiertes Protokoll verwendet werden. In diesem Fall wird nicht die IP-Nummer oder der Name des Servers angegeben, mit dem man sich verbinden möchte, sondern ein *. Besonders für Job-Server oder ähnlichem ist dies sehr sinnvoll, wenn diese auf dem Serversystem betrieben werden, da durch dieses Alternativprotokoll der Datendurchsatz drastisch erhöht werden kann.

TCP/IP-Ports

Die folgenden TCP/IP-Ports werden vom CONZEPT 16-Server während des Betriebes verwendet. Um die jeweiligen Funktionen über das Netzwerk erreichbar zu machen, müssen daher die entsprechenden Ports freigegeben werden.

4722Auf dem Port 4722 nimmt der Manager-Prozess die eingehenden Datenbankanfragen von den Clients entgegen und gibt sie an die Datenbank-Prozesse weiter. Die Datenbank-Prozesse verwenden für die Kommunikation mit den Clients ebenfalls den Port 4722.
4741Auf dem Port 4741 wird die gesamte interne Kommunikation des Servers geregelt. Das bedeutet, dass der Service-Prozess, der Manager-Prozess und die Datenbank-Prozesse alle zum Betrieb notwendigen Daten über diesen Port austauschen. Da diese Kommunikation lokal stattfindet, gibt es für diesen Port keinen Anwendungsfall, für den er freigegeben werden müsste.
4742Für die Kommunikation der Server-Prozesse mit dem Script-Utility und dem Control-Center wird der Port 4742 verwendet.
4743Der Port 4743 wird für die Hot-Standby Kommunikation verwendet. Hierüber wird zum Beispiel der Hot-Standby Betrieb einer Datenbank initiiert.
4745Dies ist der voreingestellte Port zur Administration des Servers über einen Browser. Er kann in der Konfiguration des Servers geändert werden.
4751Der Port 4751 wird für die Kommunikation des SOA-Service mit den Tasks verwendet. Da diese Kommunikation lokal stattfindet, gibt es für diesen Port keinen Anwendungsfall, für den er freigegeben werden müsste.
4752Für die Kommunikation des SOA-Service mit dem Script-Utility (SOA-Service) und dem Control-Center wird der Port 4752 verwendet.