SAPDB Howto
by Claus Ebert
initial Version (0.2)
Howto für die SAP Datenbank. Ich verwende SAPDB bis jetzt unter Windows NT und Linux/Debian. Da die Installation, Wartung usw.. nicht immer leicht sind, habe ich hier meine Erfahrungen hier zusammengestellt.
Die Installation funktioniert eigendlich ziemlich reibungslos, wenn man der Dokumentation (passend zur Datenbank Version) folgt. Ausnahmen bestätigen aber die Regel.
1.1 Installation unter Debian Linux
Wenn SapDB auf Debian/Woody installiert werden soll, muß die alte Version des C++ libraries installiert sein. Falls noch nicht vorhanden können die libraries mit
apt-get install libstdc++2.9-glibc2.1 nachinstalliert werde.
top
1.2 Entfernen von SAPDB unter Windows
- lösche alle vorhandenen Datenbanken:
- dbmcli -d TST -u DBM,DBM db_offline
- dbmcli -d TST -u DBM,DBM db_drop
- falls SAPDB über services gestartet wird, müssen diese entfernt werden:
- service.exe -r <dbname>
- service.exe -r -s <dbname> for SAPDB: DBNAME (slow)
- service.exe -r -q <dbname> for SAPDB: DBNAME (quick)
- Entfernen der Registrierung der Datenbank
- dbmcli -d TST -u DBM,DBM inst_unreg
- x_server stop
- x_server remove
- Entfernen der Verzeichnisse die während der Installation angelegt wurden
- Enternen von DBM Gui und des SQLStudios: Start=>Settings=>Control Panel=>Add/Remove Programs
- Entfernen der Registry Keys
HKEY_LOCAL_MACHINE\SOFTWARE\SAP\SAP DBT
top
2.1 User
Als Adminuser (dba, dbm) können wir uns nicht über ODBC, JDBC ... zur Datenbank verbinden. (Sollten wir auch nicht). Dazu muss ein 'normaler' Datenbank-User angelegt werden.
um normale User anlegen zu können müssen wir als SYSDBA angemeldet sein (dba und dbm haben nicht die erforderlichen rechte)
z.B. in dbmcli:
sql_connect SYSDBA,dba
... SYSDBA entspricht dem dba user (hat auch das gleiche passwort)
erst wenn man als SYDBA angemeldet ist, kann man neue User anlegen:
CREATE USER USER PASSWORD PWD RESSOURCE NOT EXCLUSIVE
Username und Passwort sind case-sensitive, also auf groß- kleinschrift achten
Damit wird ein User angelegt, der :
[RESOURCE]
berechtigt ist, private Objekte anzulegen, und der Rechte an diesen Objekten anderen Usern zuweisen kann.
NOT EXCLUSIVE
der user kann mehr als eine Datenbankverbindung auf einmal öffnen.
top
2.2 Index
CREATE INDEX ADR_I_1 ON cedb.KRN_ADRESSE(ADR_PSN_ID)
top
2.3 Sequence
CREATE SEQUENCE CEDB.SEQ_ABO INCREMENT BY 1 START WITH 96
NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER
top
2.4 Eindeutige Spalten (Unique Key)
ALTER TABLE BCH_KONTEN ADD CONSTRAINT UNIQUE (BKO_MND_ID, BKO_KONTO_NR)
top
2.5 Trigger erzeugen
CREATE TRIGGER
INSTR_ABO
FOR CEDB.KRN_ABO
AFTER INSERT EXECUTE
(
TRY
IF ABO_ID is null or ABO_ID = 0 THEN
UPDATE CEDB.KRN_ABO
SET ABO_ID = CEDB.SEQ_BLP.NEXTVAL
WHERE ABO_ID =:NEW.ABO_ID;
CATCH
IF $rc <> 100
THEN STOP ($rc, 'Unexpected Error in Trigger INSTR_ABO');
)
top
2.6 Trigger entfernen
DROP TRIGGER INSTR_ABO of "CEDB"."KRN_ABO"
top
|