MAXDB (7.6)
From Limbas Wiki
<-- zurück zur Hauptseite
Contents
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:
LIMBAS | Datenbank Name |
192.168.10.11 | Server IP |
LIMBASUSER | Demo LIMBAS User |
LIMBASPASS | Demo LIMBAS Passwort |
DBCONTROL | Datenbank Manager Operator |
CONTROLPASS | Datenbank Manager Operator Passwort |
DBA | Datenbank System Administrator |
DBAPASS | Datenbank System Administrator Passwort |
/opt/sdb | Absoluter Installationspfad von MaxDB, beinhaltet die Verzeichnisse 7600 und Programme |
/var/opt/sdb | Absoluter Instanz-Pfad von MaxDB, beinhaltet das Verzeichnis data |
7600 | MaxDB 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