Zweiphasige verteilte Commit-Transaktionen mit Oracle RAC konfigurieren

RAC-Konfigurationen (Real Application Cluster) für Oracle 10g haben ein inhärentes Problem mit dem Transaktionsmanager, wenn Oracle versucht, zweiphasige verteilte Commit-Transaktionen über mehrere Oracle-RAC-Knoten hinweg auszuführen. Es kann ein Problem auftreten, wenn ein Knoten ausfällt und Oracle den anderen noch aktiven Knoten für Geschäftsoperationen öffnet, bevor Oracle RAC die erforderliche Wiederherstellungsaktion für den ausgefallenen Knoten abgeschlossen hat. Die Fähigkeit des Anwendungsservers, die Transaktionsaffinität zu erhalten, gibt Ihnen die Möglichkeit, dieses Problem zu umgehen.

Informationen zu diesem Vorgang

Es können Fehler auftreten, wenn der Wiederherstellungsprozess versucht, einen Transaktionszweig über einen RAC-Knoten festzuschreiben oder rückgängig zu machen, der erst aktiv war, aber dann ausgefallen ist. Der Transaktionsmanager empfängt in diesem Fall die folgende Ausnahme:
ORA- 24756: transaction does not exist
Wenn dieser Fehler auftritt, muss der Administrator der Oracle-Datenbank die unbestätigte Transaktion möglicherweise manuell auflösen, indem er einem Rollback- oder Commit-Prozess erzwingt. Wenn Sie jedoch keine manuellen Eingriffe wünschen, können Sie eine automatische und transparente Strategie für die Transaktionswiederherstellung konfigurieren.
Wenn die unbestätigte Transaktion nicht aufgelöst wird, wird für alle nachfolgenden Transaktionen die folgende Ausnahme empfangen:
ORA-01591 lock held by in-doubt distributed transaction
Die Ergebnis davon ist, dass Teile der Datenbank nicht mehr verwendbar sind.

Der Schlüssel für eine transparente Wiederherstellungsstrategie ist die Eliminierung einer globalen Transaktion, die sich über mehrere Transaktionsverzweigungen über mehrere RAC-Knoten hinweg erstreckt. Eine Transaktionsverzweigung entspricht einer Datenbankverbindung, die bei einer globalen Transaktion registriert ist. Wenn alle Verbindungen in einer globalen zweiphasigen Commit-Transaktion von demselben Knoten stammen, sollten eigentlich keine Probleme bei der Transaktionswiederherstellung auftreten. Konfigurieren Sie Oracle RAC für den Anwendungsserver, um Fehler bei zweiphasigen Transaktionen zu vermeiden.

Der Anwendungsserver verwaltet die Transaktionsaffinität für eingehende Verbindungen, und Sie können dieses Feature nutzen, um die automatische Wiederherstellung für Oracle RAC mit zweiphasigen Commit-Transaktionen zu konfigurieren. Wenn Sie diese Konfiguration implementieren, werden alle Verbindungen eines bestimmten Anwendungsservers von demselben Oracle-Knoten empfangen, und die Verbindungen werden auf demselben Knoten beendet. Mit dieser Konfiguration können Situationen vermieden werden, in denen sich Transaktionen über mehrere Knoten erstrecken. Außerdem treten keine Wiederherstellungsprobleme auf, wenn ein oder mehrere Oracle-Knoten ausfallen.

Vorgehensweise

Ergebnisse

Wenn Sie eine automatische Wiederherstellungsstrategie konfiguriert haben, wird der DTP-Service automatisch in der bevorzugten Instanz gestartet. Beim Neustart der Datenbank wird der DTP-Service jedoch nicht automatisch gestartet. Sie können den DTP-Service mit dem folgenden Befehl starten:
srvctl start service -d  -s
Wenn ein RAC-Knoten seine Verarbeitung stoppt, findet kein Failover des DTP-Service statt, solange die Oracle-RAC-Bereinigung und -Wiederherstellung nicht abgeschlossen sind. Selbst wenn die Oracle-Knoten wieder verfügbar sind, wird der Oracle-DTP-Service auf dem neu gestarteten RAC-Knoten nicht erneut gestartet. Vielmehr müssen Sie den Service manuell auf den neu gestarteten RAC-Knoten übertragen.

Wenn Sie DTP im Oracle-Service konfigurieren, übertragen Sie damit die Lastverteilung vom Oracle-JDBC-Provider an den Anwendungsserver. Die Workload wird vom Anwendungsserver und nicht von Oracle verteilt, und aus diesem Grund haben Sie Services erstellt, die keine Lastverteilung implementieren und nur einen einzigen Primärknoten verwenden. Diese Konfiguration verhindert Situationen, in denen sich Transaktionsprozesse über mehrere RAC-Knoten erstrecken, und mildert Wiederherstellungsprobleme, die beim Ausfall eines oder mehrerer RAC-Knoten auftreten können.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_oracleractwophase
Dateiname:tdat_oracleractwophase.html