de:app:020cor:110sm:010system:0100sysdba

Datenbankadministration

Transaktion SYSDBA

Diese Transaktion ermöglicht die Verwaltung sämtlicher Tabellen, die Bestandteil der Datenbank sind.

Beim Starten der Transaktion erhält der Benutzer ein Popup-Fenster, wenn einer Tabelle die Gruppenzuordnung fehlt (<sta> oder <dyn>). Dies bedeutet, dass für jede definierte Tabelle eine Regel “SdbGetTblGroup” definiert werden muss, um sie mit der Gruppe zu verknüpfen.

Wenn verschiedene Installationen auf die gleiche Datenbank zugreifen, kann es vorkommen, dass einige Installationen die Datenbanktabelle COU und andere Installationen Sequences als Zähler verwenden. Deshalb wird beim Start dieser Transaktion geprüft, ob bei der aktuell verwendeten Datenbank sowohl die Datenbanktabelle COU als auch die Sequence SSN gleichzeitig existieren. Ist dies der Fall, wird der Benutzer aufgefordert entweder die Tabelle COU oder die Sequence SSN zu löschen, je nach Einstellung in der aktuellen Session.

Unterstützte Datenbanksysteme

Folgende Datenbanksysteme werden in SYSDBA unterstützt:

  • Oracle
  • IBM DB/2
  • MS SQL Server
  • MySQL
  • MariaDB
  • PostgreSQL
  • MS Access

Aktualisierung der Datenbankstrukturen

Falls sich die Datenbankbeschreibung aufgrund Einfügens, Änderns oder Löschens von Feldern (Tabellenspalten) oder Ändern von Indexdefinitionen, geändert hat, kann die Datenbank durch Erzeugen und Ausführen des Migrationsscript aktualisert werden.

Für bestimmte Datenbanken sind nicht alle Befehle zum Umstrukturieren zulässig. Zum Beispiel können bei IBM DB2 Datenbanksystemen keine Spalten gedroppt werden. In diesem Fall müssen die entsprechenden Tabellen mittels folgender Schritte aktualisiert werden.

  1. Exportieren der ausgewählten Tabelle(n)
  2. Löschen der ausgewählten Tabelle(n)
  3. Erzeugen der ausgewählten Tabelle(n)
  4. Importieren der ausgewählten Tabelle(n)
  5. Reparieren des INR-Zählers

Durch Befolgen der zuvor genannten Schritte wird die Datenbankbeschreibung aktualisiert und System-Dumps aufgrund von Fehlern in der Datenbankbeschreibung werden vermieden.

Alphanumerische INR

Durch die Verwendung einer alphanumerischen INR wird der Wertebereich der INR von 100.000.000 um 2.037.468.266.496 (26*36^7) erweitert.
In dieser Transaktion können Zähler, deren numerischer Wert größer als 100.000.000 ist, numerisch oder alphanumerisch eingegeben werden.

Beispiel für die Umrechnung einer alphanumerischen INR in ein numerisches Äquivalent:

A0 000 000 = 1 00 000 000

Single Byte Character und Multi Byte Character Spalten

Die gleichzeitige Verwendung von Single Byte und Multibyte Character Spalten in der Datenbank und in Tabellen resultiert in einer schlechteren Performance.

Profile in der Datenbank

Das Panel Import/Export Profile gestattet es dem Anwender, Anwenderprofile in beiden Richtungen zwischen flachen Dateien (*.tdp) und der Datenbank zu kopieren.
Das Panel zeigt außerdem die derzeit für das Speichern der Profile verwendete Quelle an.

Um Profile zu kopieren:

  • Das benötigte Profil (oder mehrere Profile) im Menü auswählen
  • Richtung auswählen (von flachen Dateien zur Datenbank / von der Datenbank zu flachen Dateien)
  • Button “Kopieren” anklicken

Dieser Vorgang kann auch von der Kommandozeile aus durchgeführt werden, wobei die folgenden Schalter zur Verfügung stehen:

Operation Schalter
Import zur Datenbank -p DB
Export zu flachen Dateien -p TD

Bei Hintergrundimport bzw. -export mittels des Schalters sind per Voreinstellung sämtliche Profile ausgewählt.

Transaktions-Panels

Datenbank



Auswahl von Tabellen oder Gruppen von Tabellen

Die Auswahl von Tabellen kann wie folgt vorgenommen werden:

Auswahl einer einzelnen Tabelle

Nach Auswahl der betreffenden Tabelle aus der Liste der verfügbaren Tabellen kann die weitere Verarbeitung gestartet werden. Die getroffene Auswahl bleibt bis zum Wechsel der Auswahl erhalten, sodass aufeinander folgende Arbeitsschritte für eine Tabelle direkt durchgeführt werden können.

Auswahl einer Gruppe von Tabellen

Die Auswahl erfolgt anhand einer bestehenden Tabellengruppe. Folgende Tabellengruppen sind verfügbar:

  • <all> - Enthält alle Tabellen
  • <dyn> - Enthält alle Tabellen mit dynamischen Daten wie bspw. Kontrakte, damit in Beziehung stehende Transaktionen usw.
  • <sta> - Enthält alle Tabellen mit Stammdaten
  • <sys> - Enthält alle Tabellen mit Systemdaten
  • <for> - Enthält alle “fremden” Tabellen (d. h. die nicht zur Applikation gehören). Keine dieser Tabellen ist in einer anderen Liste enthalten. Die Checkbox “Fremdtabellen hinzunehmen” ermöglicht das Hinzufügen oder Löschen fremder Tabellen in/aus eine® Liste von Tabellen für die Verarbeitung, z. B. [Export Table].
  • <lst> - Ermöglicht die Auswahl von Tabellen aus einer Liste von Tabellen, die einer anderen Tabellengruppe zugeordnet sind. Zunächst muss <all>,<dyn>,<sta> oder <sys> ausgewählt werden. Danach ist “Auswahl der Tabellen” freigegeben und die Auswahl kann bearbeitet werden.

An der rechten Seite des Panels werden die jeweils der Tabellengruppe zugeordneten Tabellen angezeigt.

Pflege von Tabellengruppen

Wenn eine neue Tabelle in der Anwendung erstellt wird, muß die Regel “SdbGetTblGroup” definiert werden, um die Informationen über die Zugehörigkeit der verschiedenen Datenbanktabellen zu den Gruppen für statische, dynamische und Systemtabellen zu erhalten.

Die Gruppen <sta>, <dyn> und die Informationen über verbundene Verzeichnisse werden nicht mehr aus SYSDBA.INI, sondern aus den Regeln in den Sourcen entnommen.

Funktionsübersicht

Die folgenden Funktionen sind verfügbar:

Export (Button [Export Tabelle])

Exportiert die über das Feld “Tabelle oder Grp. zu verarbeiten” ausgewählte(n) Tabelle(n) in den angegebenen “Dateipfad für Import/Export”. Beim Export wird für jede zu exportierende Tabelle eine Datei mit dem Namen <Tabelle>.DBE erstellt. Mit dem Markieren der Checkbox “Überschreibe vorhandene Exportdateien ohne Nachfragen” kann definiert werden, dass bereits vorhandene Exportdateien automatisch überschrieben werden, ohne dass der Benutzer das Überschreiben für jede einzelne Exportdatei bestätigen muss. Standardmäßig ist diese Checkbox unmarkiert.

Import (Button [Import Tabelle])

Importiert die über das Feld “Tabelle oder Grp. zu verarbeiten” ausgewählte(n) Tabelle(n) aus dem angegebenen “Dateipfad für Import/Export” in die Datenbank. Beim Import wird für jede zu importierende Tabelle nach einer Datei mit dem Namen <Tabelle>.DBE gesucht und diese dann importiert.

Mit dem Markieren der Checkbox “Ignoriere Fehler von nicht definierten Spalten beim Import” wird definiert, dass fehlende Spalten in der Importdatei und/oder der Tabelle nicht zu einem Fehler führen. Standardmäßig ist diese Checkbox markiert.

Leeren (Button [Leeren Tabelle])

Löscht den Inhalt der ausgewählte(n) Tabelle(n) ohne die Tabellenbeschreibung zu löschen.

Löschen (Button [Löschen Tabelle])

Löscht die ausgewählte(n) Tabelle(n) vollständig, also inklusive Inhalt und Tabellenbeschreibung, aus der Datenbank.

Erzeugen (Button [Erzeuge Tabelle])

Erzeugt die ausgewählte(n) Tabelle(n). Ist die Checkbox 'Ben. Creation Script' eingeschaltet, werden die Tabellen durch das Creation Script erzeugt, andernfalls durch den internen Befehl DBCreate. Sofern für die Tabelle(n) notwendige Verzeichnisse in der Partition “data” angelegt werden müssen, wird deren Bezeichnung aus der INI-Datei SYSDBA.INI im Abschnitt [DATA-Directories] gelesen und, sofern nicht vorhanden, angelegt.

Prüfen (Button [Check Tabelle])

Überprüft die ausgewählte(n) Tabelle(n) der Datenbank hinsichtlich korrekter Spalten und Index-Definition im Vergleich zur Datenbeschreibung der Module.

Reparieren (Button [Repar. INR-Zähl.])

Repariert für die ausgewählte(n) Tabelle(n) den INR-Zähler.

Datenbankauswahl (Button [DB wählen])

Ermöglicht die Anzeige des Datenbankinhalts für alle Tabellen mit einem vorhandenen xxxGET-Modul.

Editieren von Zählern (Button [Bearb. Zähler])

Ermöglicht das Editieren der Zählertabellen. Ab Version 2.2 ist das Counter Stepping fix auf 1 gesetzt, die Section [Counter-Stepping] in der sysdba.ini wird nicht mehr verwendet.

Schlüsselwerte prüfen (Button [Chk Codewerte])

Diese Funktion prüft für die ausgewählte(n) Tabelle(n) zu allen Feldern, denen eine oder mehrere Codetable(s) zugeordnet ist/sind, ob der Feldinhalt der Tabelle auch in der Codetable enthalten ist. Am Ende der Verarbeitung wird ein Prompt-Dialog angezeigt, der auf die Anzahl fehlender Einträge hinweist. Diese können dann im Log betrachtet werden.

Wenn die Checkbox “Fehlende einf.” markiert ist, werden die fehlenden Einträge in der Codetable automatisch in allen Codetables eingefügt. Mehrere Codetables zu einem Feld bedeuten, dass es verschiedene Dekodierungen (Langtexte) für diese Codetable gibt. Beispiel: Ein Code kann in SWIFT-Code oder in Langtext umgesetzt werden. In beiden Codetables muss dann für jeden vorkommenden Dateninhalt eine Dekodierung eingetragen sein.

Wenn unter “Tabelle oder Grp zu verarbeiten” die Option “<all>” für alle Datenbanktabellen ausgewählt wird, sind auch die Checkboxen “Unben. ins Log” und “Xref” aktiviert. Wird “Unben. ins Log” markiert, werden alle nicht verwendeten Codewerte ins Log geschrieben. Durch Markieren der Checkbox “Xref” werden alle Cross References der Codetables mit im Log ausgegeben.

Locks (Button [Sperren])

Ermöglicht das Hantieren sämtlicher Systemsperren (Locks).

Migrationsscript (Button [Migrationsscript])

Das Script wird in einem neuen Panel angezeigt. Über den Button [Ausführen] kann das Script direkt ausgeführt werden. Das Script kann jedoch auch zuerst über den Button [Speichern] gespeichert und zu einem späteren Zeitpunkt z.B. mit der Transaktion “SQL-Script” (SYSSQL) ausgeführt werden. Mit dem Button [Schließen] wird das neue Panel geschlossen. Das erzeugte Script wird auch im Log angezeigt.

Das erzeugte Script enthält die DDL-Kommandos, um die vorhandenen Tabellen und Indizes in der Datenbank an die Datenbeschreibung der Module anzupassen. Dazu gehört

  • Spalten erzeugen,
  • Spalten löschen,
  • Spalten ändern
  • Indizes erzeugen,
  • Indizes löschen
  • Indizes ändern
  • externe Tabellen löschen

Beim Verwenden des Migrationsscripts werden standardmäßig die überzähligen Spalten und Indizes gelöscht, nicht aber die externen Tabellen. Diese können durch Markieren oder Unmarkieren der entsprechenden Checkboxen geändert werden.

Spalten, die in einem Index enthalten sind, können nicht ohne weiteres geändert werden. Hierzu muss der Index vorher gedroppt und nach Ändern der Spalte neu erzeugt werden. Dies kann aber nur für Indizes durchgeführt werden, die dem System bekannt sind. Dies sind Indizes, die entweder im Modul definiert sind oder aber als additional Indizes in SYSDBA. Sollte die Spalte in einem anderen Index definiert sein, so wird einen Warnung im Log ausgegeben und es wird kein Migrationsscript erzeugt, es sei denn “Löschen Index” ist markiert. Damit werden alle fremde Indizes gedroppt.
Indizes können für MariaDB und MySQL Datenbanksysteme nicht gedroppt werden, wenn andere Sitzungen in dieser Datenbank arbeiten. In einem solchen Fall wird die Verarbeitung mit einem Hinweis beendet und das Migrationsscript nicht ausgeführt.

Creation Script (Button [Erzeuge Script])

Erzeugt ein SQL-Script für die ausgewählte(n) Tabelle(n), in dem die Create-Anweisungen zum Erzeugen der Tabelle und den Indizes enthalten sind.

Das Script wird in einem neuen Panel angezeigt. Über den Button [Ausführen] kann das Script direkt ausgeführt werden. Das Script kann jedoch auch zuerst über den Button [Speichern] gespeichert und zu einem späteren Zeitpunkt ausgeführt werden. Mit dem Button [Schließen] wird das neue Panel geschlossen.

Erzeugen des Migrationsscripts und des Creation Script im Batch-Modus

Das Migration Script und das Creation Script können auch im Batch-Modus erstellt werden.

Befehlszeilen-Switches:

“-cresql <Dateiname> Creation Script”
“-migsql <Dateiname> Migration Script”

Wenn kein Dateiname eingefügt wird:
“Creation Script: Name=getpath(“TMP”)+“dbcreate.sql”“
“Migration Script: Name=getpath(“TMP”)+“dbmigrate.sql”“

”-w” für Überschreiben einer vorhandenen Datei

Bei einem Fehler im Batch wird ein Returncode (auch für ”-i” und “-o”) gesetzt.

“-i <Pfad>” Erzeugt die Datenbank für die Applikation
“<Pfad>” = Optionaler Pfad der dbe-Dateien. Falls “-o” ohne Pfad => “getpath( data )\dbe”


Einzelne Aktionen:

  • Erzeugung aller Tabellen
  • Importieren aller Tabellen aus dbe-Dateien
  • Reparieren aller INR-Counter

  • “-o <Pfad>” Exportiert eine Datenbank in dbe-Dateien

<Pfad> = Optionaler Pfad der dbe-Dateien. Falls “-o” ohne Pfad => “getpath( data )\dbe”

  • “-d” für den “Drop” von Indizes und Spalten im Migrationsscript

Einzelne Aktionen:

  • Reparieren aller INR-Counter
  • Exportieren aller Tabellen in dbe-Dateien

Zusätzliche Indizes

Zusätzliche Indizes, die nicht in den Modulen von DOKA definiert sind, können über den Button [Zus. Indizes] spezifiziert werden. Hierbei wird ein Name und das dazugehörige Erzeugungs SQL angegeben. Entspricht der Name eines Index einem bereits im Modul definierten Index, so ersetzt der zusätzliche Index diesen. Über Checkboxen kann geschaltet werden, ob die Statements zum Erzeugen des Index und Droppen des Index in die Scripte ( Erzeugungsscript und Migrationsscript ) generiert werden sollen.

Konvertieren von CHAR in NCHAR Datentypen

Erzeugt ein SQL Script, das CHAR, VARCHAR, CLOB Datentypen in Place zu NCHAR, NVARCHAR und NCLOB Datentypen konvertiert. Diese Funktionalität steht für Oracle und MS SQL Server Datenbanksysteme zur Verfügung:
Verfahren:

  • Umbenennen der vorhandenen Tabelle
  • Erzeugung der neuen Tabelle mit NCHAR, NVARCHAR und NCLOB Datentypen
  • Einfügen aller Zeilen aus der alten Tabelle in die neue
  • Droppen der alten Tabelle

Umwandeln in Sequenzen

Eine Sequenz ist ein Objekt, mit dem sich eindeutige Zahlen generieren lassen. Sequenzen liegen außerhalb einer Datenbanktransaktion. Folgende Datenbanksysteme unterstützen Sequenzen:

  • Oracle
  • IBM DB/2
  • MS SQL Server

Läuft die Applikation mit Zählern (counters) in Tabelle COU und nicht mit Sequenzen, wird der Button [Umwandeln>SEQ.] sichtbar. Damit kann man das System von Zählern in Tabelle COU auf Zähler in Sequenzen umschalten. Zähler in Sequenzen führt zu einem Performance-Gewinn gegenüber Zählern in Tabelle COU.

Die Checkbox “Ausgewählter Export, Löschen oder DbSelect” ermöglicht die Definition von Kriterien (where-Bedingung) für eine ausgewählte Tabelle, wenn diese exportiert, gelöscht oder das Feld INR neu nummeriert werden soll.

Mit einem Klick auf den Button [Zeige Log] wird das Log der durchgeführten Aktionen seit dem Start der Transaktion angezeigt.

Sind bei der Verarbeitung Fehler aufgetreten, wird am Ende der Verarbeitung ein Prompt-Dialog angezeigt, der auf die Anzahl Fehler hinweist. Die Fehler können dann im Log betrachtet werden.

Datenfelder

Datenfeld Beschreibung
Zeige Log Zeigt das Verarbeitungslog der Transaktion an.


Oracle spezifisch




Zeige Prozesse




Prozesse je Sitzung




DB2 z/OS




Import/Export Profile




de/app/020cor/110sm/010system/0100sysdba.txt · Last modified: 2022/09/28 12:01 by mk