28.09.2012 Aufrufe

Kleiner Erfahrungsbericht zu «Oracle Warehouse Builder mit Oracle ...

Kleiner Erfahrungsbericht zu «Oracle Warehouse Builder mit Oracle ...

Kleiner Erfahrungsbericht zu «Oracle Warehouse Builder mit Oracle ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Focus<br />

SOUG Newsletter 1/2005<br />

18<br />

Franz Herzog, iRIX Software Engineering AG<br />

<strong>Kleiner</strong> <strong>Erfahrungsbericht</strong><br />

<strong>zu</strong> <strong>«<strong>Oracle</strong></strong> <strong>Warehouse</strong> <strong>Builder</strong><br />

<strong>mit</strong> <strong>Oracle</strong> RDBMS 10g»<br />

Einleitung<br />

Im Rahmen eines Kundenprojekts,<br />

bei dem eine Tabelle innerhalb einer<br />

<strong>Oracle</strong>-Datenbank <strong>mit</strong> externen Daten<br />

abgefüllt werden soll, wird der <strong>Oracle</strong><br />

<strong>Warehouse</strong> <strong>Builder</strong> (OWB), Version 9.2<br />

eingesetzt. Dies bedeutet, dass externe<br />

Daten (in diesem Fall ebenfalls<br />

Daten aus <strong>Oracle</strong>-Tabellen) via PL/SQL-<br />

Packages vom Quellsystem abgesaugt,<br />

transformiert und in der Zieltabelle<br />

eingefügt werden. Die Modellierung<br />

dieses Vorgangs innerhalb von<br />

OWB ist einfach, aber der von OWB<br />

erzeugte PL/SQL-Code für die beschriebene<br />

Aufgabe entpuppt sich als<br />

höchst anspruchsvolle Aufgabe für<br />

den Server: Im Umfeld von RDBMS-<br />

Versionen der Generation «9i» wird<br />

man richtig <strong>mit</strong> ORA-00600-Fehlern<br />

verwöhnt. Unter diesen Umständen ist<br />

es uns ein Versuch wert, das Verhalten<br />

der OWB-Handlungen auf einer 10g<br />

Datenbank <strong>zu</strong> untersuchen.<br />

Erfahrungen <strong>mit</strong> OWB<br />

auf RDBMS 9i<br />

Für den ETL-Vorgang kann es aus<br />

dem Blickwinkel der Verarbeitungszeit<br />

von Vorteil sein, Bulk-Operationen und<br />

Parallel-Hints ein<strong>zu</strong>setzen. Diese Möglichkeit<br />

kann innerhalb von OWB auf<br />

einem Mapping <strong>mit</strong> der rechten Maustaste<br />

und «Configure» ➞ «Code generation<br />

options» ➞ «Bulk processing<br />

code», resp. «Parallel row code» spezifiziert<br />

werden.<br />

Da<strong>mit</strong> diese von OWB generierten<br />

PL/SQL-Packages (im sogenannten<br />

Target-Schema) <strong>mit</strong> entsprechender<br />

Syntax dann auch wirklich genutzt<br />

werden können, muss Datenbankseitig<br />

der Initiierungsparameter parallel_max_servers<br />

0 gesetzt sein,<br />

d.h. es muss dem DB_Server möglich<br />

sein, je nach requests die Anzahl an<br />

Parallel-Query-Prozessen <strong>zu</strong> erhöhen.<br />

(Ein Wert von min_parallel_servers=0<br />

ist für die nachfolgenden Ausführungen<br />

nicht relevant). Die von uns eingesetzten<br />

RDBMS-Versionen 9.2.0.4<br />

auf AIX und 9.2.0.5 auf Linux-x86 und<br />

HP-UX(PA-Risc-64) hatten da<strong>mit</strong> ihre<br />

liebe Mühe:<br />

1. AIX 5L (64bit), RDBMS 9.2.0.4:<br />

■ Lässt man gar keine Parallel<br />

queries <strong>zu</strong>, d.h. auf DB-Ebene<br />

parallel_min_servers=0,<br />

parallel_max_servers=0, so erhält<br />

man ORA-00600 [kcbgcur_6] …<br />

■ Setzt man max_parallel_<br />

servers0, so erhält man<br />

ORA-0060 [15805]<br />

2. HP-UX 11i (64bit PA-Risc), Linux<br />

Suse 8.0 (32bit), RDBMS 9.2.0.5:<br />

■ Lässt man gar keine Parallel<br />

queries <strong>zu</strong>, d.h. auf DB-Ebene<br />

parallel_min_servers=0,<br />

parallel_max_servers=0, so<br />

erhält man keine ORA-00600 -<br />

Probleme …<br />

■ Setzt man max_parallel_<br />

servers0, so erhält man<br />

ORA-0060 [15805]<br />

➞<br />


Die ORA-00600-[15805]-Probleme<br />

konnten im AIX-Fall für<br />

max_parallel_servers0 gelöst<br />

werden (patch 3607694), wurden aber<br />

durch neue ORA-00600 [kcbgcur_6]...<br />

abgelöst, wie folgender Ausschnitt aus<br />

einem Trace-file zeigt. 1<br />

19<br />

ORA-00600: internal error code, arguments: [kcbgcur_6], [4], [], [], [], [], [], []<br />

Current SQL statement for this session:<br />

MERGE<br />

/*+ APPEND PARALLEL (TESTTABLE[, [integer | DEFAULT] [, [integer | DEFAULT]]]) */<br />

INTO<br />

"TESTTABLE"<br />

USING<br />

(SELECT .....<br />

Auch die Probleme auf den anderen<br />

Plattformen sind hängig, resp. als<br />

in 10g gelöst beschrieben. Ein Ausweg<br />

aus der Sackgasse ist lediglich<br />

als «very dirty fix» <strong>zu</strong> betrachten: Im<br />

Laufe eines Verarbeitungszyklus muss<br />

periodisch der shared pool geflushed<br />

werden, eine Lösung, die in einer Produktionsumgebung<br />

für keinen Kunden<br />

wirklich in Betracht gezogen werden<br />

kann.<br />

Erste Erfahrungen<br />

<strong>mit</strong> OWB auf RDBMS<br />

10g<br />

Es ist aufgrund der beschreibenen<br />

Verhältnisse daher nicht verwunderlich,<br />

das Verhalten der OWB-packages auf<br />

einer 10g Instanz <strong>zu</strong> untersuchen:<br />

Für diesen Zweck wurde auf einer HP-<br />

UX-Maschine (HP-UX, PA-Risc 64bit,<br />

Dual-Prozessor) eine Instanz in der<br />

Version 10.1.0.2.0 hochgezogen, ein<br />

Runtime-Repository und ein entsprechender<br />

Target-user eingerichtet. In<br />

dieses Schema wurden die entsprechenden<br />

OWB-packages deployed:<br />

Es konnte für keine der oben genannten<br />

Konfigurationen ein ORA-600-Fehler<br />

erzwungen werden und die Verarbeitungsgeschwindigkeiten<br />

müssen als<br />

1 Nachtrag vom 5.11.2004: Patch 3991007 (Bug<br />

2998206), Patch 3899595 (Bug 3607694) haben<br />

auf der AIX-Plattform endlich Linderung gebracht.<br />

Danke auch an die Entwickler von <strong>Oracle</strong>, die<br />

diese Backport-Patches <strong>zu</strong>r Verfügung gestellt<br />

haben.<br />

<strong>zu</strong>friedenstellend bezeichnet werden.<br />

Ohne jetzt wirklich tiefschürfende Forschung<br />

betrieben <strong>zu</strong> haben, ist <strong>Oracle</strong><br />

10g im Umfeld von <strong>Oracle</strong> <strong>Warehouse</strong><br />

<strong>Builder</strong> sicherlich eine Kandidaten-Version,<br />

die in den Bereichen Parallel<br />

Query und Bulk-Processing weniger<br />

Probleme verspricht als die erlebten<br />

bei RDBMS 9i.<br />

Contact<br />

iRIX Software Engineering AG<br />

Franz Herzog<br />

E-Mail: fherzog@irix.ch<br />

Focus<br />

SOUG Newsletter 1/2005

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!