www.oracle-consulting.de

High Performance Oracle Consulting
Das Script Archive - TOC

Common Logging

Partitionierungspackage

Aktuelle Sessionsinformationen

Oracle CDC (Synchron)

Port-Listener (Perl)

Common Logging

Das Script erstellt die Notwendigen Objekte für ein Package pkg_common_logging. Hiermit können Loginformationen aus PL/SQL-Programmen in einer Tabelle gespeichert weden. Die Loglevel (Debug, Info, Error) werden durch Sessionvariable gesetzt und können somit nach Bedarf angepasst werden.

Die in der Tabelle gespeicherten Loginformationen werden jeweils mit Zeitstempel und Laufzeit versehen. Download...

zurück

Partitionierungspackage

Das Partitionierungs-Tool unterstützt die automatische Anlage von Range-Partitionen für Tagen, Wochen, Monats und Jahrespartitionen. Dabei wird neben der Neuanlage von Partitonen auch ein Split von Maxvalue- Partitionen unterstützt. Weiterhin bietet das Package auch Unterstützung für das Mergen, Löschen und Truncaten von historischen Partitionen.

Mit Hilfe der Konfigurationstabelle kann das Anlegen von Partitionen für alle betroffenen Tabellen mit einem Procedureaufruf erfolgen. Gleichzeitig bietet das Tool eine Funktion zur Prüfung der jeweils letzten Partition eine jeden gefunden partitionierten Tabelle an. Kann eine Tabelle keine Daten mit dem spzifizierten Datum mehr aufnehmen wird eine entsprechende Meldung ausgegeben. Somit lassen sich fehlende Partitionen leicht erkennen.

Donwload....

zurück

Aktuelle Sessioninformationen

Das Script zeigt die Waits und Longops einer Session an, die auszuwählende Session wird über die SID indentifiziert. Für alle, die ohne grafische Tools nicht weiter kommen ....

hier eine Beispielausgabe:

zurück

Oracle CDC (synchon Change Set)

Synchrone CDC-Replikation stellt eine kostengünstig und einfach zu implementierende Lösung im Datawarehouse-Bereich dar um Daten zwischen verteilten Datenbanken zu Replizieren. Es werden mehrere Consumer unterstützt.

Hierbei legt Oracle einen Change Table an, in dem alle Änderungen der zu replizierenen Basistabelle mitgeschrieben werden. Jeder Consumer erhält einen Subscribe-View, der die für ihn notwendigen Daten enthält. Jeder Consumer kann voneinander unabhängig seine bereits verarbeiteten (konsumierten) Daten aus dem View entfernen.

Über eine zentrale Funktion können alle Daten aus dem Change Table gelöscht werden, die von allen Consumern verarbeitet wurden und somit nicht mehr benötigt werden. Vorsicht: in diesem Falle führt Oracle ein 'split Partition' Statement aus welches DML Befehle auf der Basistabelle kurzfristig blokieren. Diese Purge sollte also sehr regelmäßig (minimale Ausführungszeit, daher minimale Verzögerung) oder außerhalb der Zeiten stattfinden, in der die Basistabelle per DML verändert wird.

Das für die Replikation notwendige synchrone ChangeSet legt Oracle automatisch an:

Ausgangspunkt ist die Beispieltabelle DEPT, für die im nächsten Schritt eine ChangeTable angelegt wird, Löschen und Erweiterungen der Change Tabelle sind ebefalls als Beispiel angegeben.

Im nächsten Schritt erstellen wir eine Subscription und den zughörigen View. Dieser View sollte in einem Schema angelegt werden, auf welches der Subscriptionsuser Zugriff hat, es sollte nicht in dem Schema liegen, in dem sich der Change-Table befindet.

Das insert in die Basistabelle erstellt jetzt einen Record in der Change-Tabelle, dieser wird aber im Subscribtionsview erst nach Aufruf der Prozedure 'extent_windo' angezeigt:

Wie man im nächsten Beispiel sieht erhöht ein Aufruf der 'extend_window' Procedure nur die obere Grenze (SCN) im View, erst der Aufruf der Purge_Window Procedure erhöht auch die untere Grenze und limitiert so die Rückgabemenge des Views.

Die Change Tabelle enthält nach wie vor alle geänderten Daten,

  • select * from CLS_DEPT liefert Daten,
  • select * from DEPLOY.v_subs_dept liefert keine Daten

Erst mit Ausführung von : exec dbms_cdc_publish.purge_change_set('SYNC_SET'); wird die Change Tabelle geleer und CLS_DEPT enthält keine Daten mehr.

Zurück

Port Listener

Ein einfaches Script um Ports zu belegen und den Zugriff auf diese im Netzwerk zu testen.

Zurück