MAXDB (7.6)

Aus Limbas Wiki

Wechseln zu: Navigation, Suche

<-- zurück zur Hauptseite


Datenbank-Server

Die Installation der Datenbank erfolgt am einfachsten mit Hilfe der rpm Pakete, die über die SAP MAXDB Seite bezogen werden können. Es werden die folgenden Pakete für x86 Linux benötigt:

  • Release independent
  • Server
  • ODBC
  • Webtools oder Windows Clients

Die Pakete werden am besten in ein gemeinsames Verzeichnis abgelegt und können dann mit dem folgenden Befehl
rpm –i *.rpm installiert werden.

Danach kann der Datenbank-Server mit dem Befehl
/etc/init.d/maxdb76 start
gestartet werden.

Hinweis:
Bei einem erfolgreichen Start erscheint folgende Meldung:
„starting MaxDB services: [root@localhost db]“

Der ODBC Treiber wurde unter:
/opt/sdb/interfaces/odbc
installiert und wird von PHP beim späteren Kompilieren benötigt.

Ansonsten kann man auch die Webtools installieren und per Browser neue Datenbanken anlegen und administrieren. Im LIMBAS Paket ist auch ein Shell-Script vorhanden, welches eine Demo-Datenbank installiert.

Falls man über einen zusätzlichen Windowsclient im Netzwerk verfügt, sollte man die MaxDB Clients für Windows installieren, um die Datenbank verwalten zu können.

Die MaxDB erwartet einen voll qualifizierten Rechnernamen. Das bedeutet, man sollte sicherstellen, dass in der
/etc/hosts
die IP-Adresse des Rechners aufgelöst werden kann.

Auszug aus /etc/hosts: 
127.0.0.1	       localhost
192.168.10.11         openlimbas.home.net

DB-Instance

Um LIMBAS nutzen zu können, benötigen wir eine Datenbank-Instanz. Diese Instanz kann man auf unterschiedliche Art und Weise erzeugen. In der Anzahl der Instanzen ist „nur“ die Hardware ausschlaggebend.

Die folgenden Beispiele erstellen eine LIMBAS Instanz auf unterschiedlicher Art und Weise

  • erstellt eine Instanz mit Hilfe eines mitgelieferten Skripts
  • erstellt eine Instanz per Windows-Client

Alternativ kann auch der Webclient der Datenbank genutzt werden. Seine Benutzung wird hier nicht dokumentiert, ist aber der Windows-Client-Installation sehr ähnlich.


Mitgeliefertes Skript: create_db.sh

Das angepasste Shell-Script findet man unter:
openlimbas/limbas_src/help/demo_configuration_scripts/create_db.sh
Mit seiner Hilfe ist es möglich, auf einfachste Weise eine Datenbank-Instanz zu erstellen ohne die Grundkenntnisse der Client-Installation kennen zu müssen. Bei der rpm Installation der MaxDB wurde ein Benutzer namens „sdb“ erstellt. Unter seiner Kennung laufen die installierten Instanzen. Initial hat dieser Anwender noch keine Shell, diese wird jedoch im Folgenden benötigt. Mit dem folgenden Befehl lässt sich dieses schnell unter root ändern:
usermod –s /bin/bash sdb
Folgende Schritte müssen nun unternommen werden:

  • Den Datenbankserver starten (als root):
    /etc/init.d/maxdb76 start
  • Shell anlegen für den User “sdb”:
    usermod –s /bin/bash sdb
  • Als User sdb anmelden:
    su – sdb
  • Das Skript unter openlimbas/limbas_src/help/demo_configuration_scripts aufrufen:
    create_db.sh --create LIMBAS 192.168.10.11 LIMBASUSER LIMBASPASS DBCONTROL CONTROLPASS DBA DBAPASS /opt/sdb /var/opt/sdb 7600
Hinweis / Erläuterung:
LIMBASDatenbank Name
192.168.10.11Server IP
LIMBASUSERDemo LIMBAS User
LIMBASPASSDemo LIMBAS Passwort
DBCONTROLDatenbank Manager Operator
CONTROLPASSDatenbank Manager Operator Passwort
DBADatenbank System Administrator
DBAPASSDatenbank System Administrator Passwort
/opt/sdbAbsoluter Installationspfad von MaxDB, beinhaltet die Verzeichnisse 7600 und Programme
/var/opt/sdbAbsoluter Instanz-Pfad von MaxDB, beinhaltet das Verzeichnis data
7600MaxDB Version

Nach erfolgreicher Installation wird eine Zusammenfassung ausgegeben. Zusätzlich wurde ein Demo User angelegt, mit dem man sich in LIMBAS anmelden kann.
--> LIMBASUSER,LIMBASPASS


Windows-Clients

Eine etwas individuellere Installation kann man mit Hilfe der Grafischen Clients erzeugen, jedoch sollte in diesem Fall die Windows-Firewall ausgeschaltet oder die Ports TCP 17200 und TCP 17210 freigeschaltet werden. Es können die Windows-Clients (welche hier beschrieben werden) oder Web-Clients (per Browser) benutzt werden. Die Windows-Clients sind wesentlich komfortabler als die Web-Clients und bieten zusätzliche Möglichkeiten.

Für Windows müssen 3 zusätzliche Client Pakete installiert werden:

  • DBMGUI
  • SQL Studio
  • ODBC Driver

Nach der Installation muss zuerst der Windows ODBC Treiber eingerichtet werden.

--> Systemeinstellungen --> Verwaltung --> Datenquellen (ODBC) --> SystemDSN
--> Hinzufügen --> Auswahl von Mysql/MaxDB Datenquelle

Die Einstellungen in der neu hinzugefügten Datenquelle sind:

  • Data SourceName (beliebiger Name)
  • Server (IP Adresse der Linux-Servers, hier 192.168.10.11)
  • Database (Datenbank Name, hier LIMBAS)

Falls die MaxDB auf einer OpenSuse/CentOS installiert wurde, muss das Passwort des folgenden sdb Benutzer unbedingt mit md5 verschlüsselt werden.

Jetzt können wir eine neue Datenbank-Instanz erstellen. Dazu starten wir den Database Manager (DBMGUI) und dann den „Instance Wizard“ (Create).

  • Select Template: Blank
  • Database Instanz Name
    • Database Server: (Linux IP Adresse) 192.168.10.11
    • Database name: LIMBAS
    • Logon Name: sdb (wurde vom MAXDB rpm Paket angelegt)
    • Password: pass (muss noch angepasst oder geändert werden: passwd sdb --> pass)
  • Authorisation: Database Manager Operator

Mit diesem User muss man sich später beim DBMGUI (dieses Programm) anmelden. Dieser User kann die Datenbank löschen, Parameter ändern oder Backups generieren ABER keine Tabellen erstellen.

    • User Name: DBCONTROL (Frei wählbarer Datenbank Controluser)
    • Password: CONTROLPASS (Frei wählbares Passwort)
  • Parameter Initialisation: default values
  • Instance Type: OLTP
  • Adjust Parameters: Können unverändert bleiben

Volumes:

    • neues Data Volume erstellen mit 40000 Pages (312 MB)
    • neues Log Volume erstellen mit 20000 Pages (156 MB)
  • Backup Medium: optional
  • Creation Mode : Create and start instance

Database System Administrator Dieser User verwaltet die Systemtabellen oder erstellt weitere User

    • User Name: DBA (Frei wählbarer Datenbank Management User)
    • Password: DBAPASS (Frei wählbares Passwort)
  • START

Nach erfolgreicher Installation bietet es sich noch an den Log-Modus auf „Überschreibbar“ zu ändern. Damit muss nicht auf ein Überfüllen des LogVolumes geachtet werden. Natürlich ist für ein produktives System davon abzuraten und jeder kann die Datenbank mit dem eigenen Konzept anlegen.

--> Configuration --> Log Settings --> Overwrite Mode for Log Area --> Next

Die MaxDB Datenbank ist eine Enterprise Datenbank. Diese ist nur so gut, wie der Administrator sie eingerichtet bzw. gepflegt hat. Für Produktiveinsätze sollte man sich mit den Eigenheiten und Tuningmöglichkeiten sowie Backup oder Mirror Instanzen vertraut machen.

Der letzte Schritt in Sachen Datenbank ist das Anlegen eines LIMBAS-Users. Dazu starten wir den SQL Client (SQL Studio) und verbinden uns mit der gerade erstellten Datenbank.

  • Server (Linux IP Adresse) z.B. 192.168.10.11
  • Database (Datenbank Name) z.B. LIMBAS
  • User (DBA) in unserem Beispiel „DBA“
  • Pass (DBAPASS) in unserem Beispiel „DBAPASS“

In den nun erscheinenden SQL Dialog geben wir das SQL Statement zum Erstellen eines neuen DBA Users an.

  • CREATE USER LIMBASUSER PASSWORD LIMBASPASS DBA NOT EXCLUSIVE

So das war’s. Mit dem gerade erstellten User LIMBASUSER wird sich LIMBAS später bei der Datenbank anmelden können.


benötigte Funktionen erstellen

Limbas benötigt eine definierte Funktion die von Triggern ausgeführt werden kann. Sie behandelt die angezeigten Werte bei hinzufügen oder entfernen von Verknüpfungen.


create dbproc LIMBASUSER.lmb_vkn(in id fixed(16),in vid fixed(16), in tabname char(60), in fieldname char(30), in act char(1) , in rtabname char(60), in rfieldname char(30)) as
VAR statement1 char(100); statement2 char(100);

Begin
Try

SET statement1 = 'update ' || tabname || ' set ' || fieldname || ' = ' || fieldname || ' ' || act || ' 1 where id = ' || id;
EXECUTE statement1;

SET statement2 = '';

IF rtabname <> '' THEN
SET statement2 = 'update ' || rtabname || ' set ' || rfieldname || ' = ' || rfieldname || ' ' || act || ' 1 where id = ' || vid;
IF statement2 <> '' THEN
EXECUTE statement2;


Catch
      Stop($RC, $ERRMSG);
End;

Nützliche Datenbank Befehle

Folgende Datenbank-Befehle können hilfreich sein. Dazu wechselt man in das Verzeichnis:

/opt/sdb/programs/bin


Datenbank starten:

dbmcli –d LIMBAS –u DBCONTROL,CONTROLPASS db_warm


Datenbank stoppen:

dbmcli –d LIMBAS –u DBCONTROL,CONTROLPASS db_offline


Datenbank löschen:

dbmcli –d LIMBAS –u DBCONTROL,CONTROLPASS db_offline
dbmcli –d LIMBAS –u DBCONTROL,CONTROLPASS db_drop


Datenbank zurücksetzen:

dbmcli –d LIMBAS –u DBCONTROL,CONTROLPASS db_clear


Datenbank - Log löschen, falls es unglücklicherweise voll ist und die Datenbank sich deshalb nicht mehr starten last:

dbmcli –d LIMBAS –uUTL –u DBCONTROL,CONTROLPASS
util_execute clear log


Diese Befehle sind für die einzelnen Datenbank-Instanzen gültig. Den Datenbankserver, der für alle Instanzen eine Art übergeordneter Prozess darstellt, kann folgend gestartet / gestoppt werden:

/etc/init.d/maxdb76 start
/etc/init.d/maxdb76 stop