Zwei Phasen Commit Protokoll

LBerger94

Neuer Benutzer
Beiträge
3
Hallo Leute!

Da ich neu in dieser Community bin, weiß ich leider nicht genau ob ich im richtigen Forum bin. Ich denke aber schon. Da ich morgen ein Referat über das Thema "Two commit Protocol" halten muss, und ich noch nicht ganz verstanden habe, wie das ganze Abläuft, seit ihr meine letzte Rettung.

Was ich weiß:
Beim 2PC muss man mit DB-Links arbeiten.
Das 2PC existiert um die Atomarität der Datenbanken zu garantieren.

Als Beispiel, für das Referat habe ich eine Lokale Datenbank und eine Datenbank von der Schule (Also 2 Datenbanken). Zur Einfachkeit, verwende ich drei Tabellen (Schüler, Buch, Gelesen).
Die Tabelle Schüler liegt auf der Schuldatenbank und die anderen zwei Tabellen liegen auf meiner lokalen Datenbank. Wenn jetzt ein Datensatz in die Tabelle Gelesen eingefügt wird, soll überprüft werden, ob der Schüler existiert. Ich denke das löst man mit diesem 2PC.

Zurzeit verwende ich einen Trigger der via DB-Link überprüft ob der Schüler existiert. (dies ist aber glaub falsch)

Jetzt zum eigentlichen Problem:
Ich weiß leider nicht, wie ich das 2PC in meiner Oracle Datenbank anwende. Ich brauch da jetzt ein prinzipielles Beispiel. Und könnte mir noch einer sagen, ob ich da wirklich Prozeduren verwende? Brauche unbedingt eure Hilfe.

Mit freundlichen Grüßen
Lukas
 
Werbung:
Hallo Leute!

Da ich neu in dieser Community bin, weiß ich leider nicht genau ob ich im richtigen Forum bin. Ich denke aber schon. Da ich morgen ein Referat über das Thema "Two commit Protocol" halten muss, und ich noch nicht ganz verstanden habe, wie das ganze Abläuft, seit ihr meine letzte Rettung.

FAIL.

Einfach zu spät.

2PC kann auch PostgreSQL, ist sicher dasselbe wie bei Oraggle. Es gibt einige Links und Doku dazu, z.B.:

http://sourceforge.net/p/lixa/wiki/Why two phase commit/
http://www.chesnok.com/daily/2013/0...f-posts-including-2-phase-commit-in-postgres/
http://www.postgresql.org/docs/9.3/static/sql-prepare-transaction.html

Für mehr hab ich jetzt keinen Nerv, sorry.
 
Also, erstmal ein Dankeschön für die Links.
Ich glaub ich hab die Theorie dazu jetzt eigentlich verstanden. Jetzt wollt ich nur noch fragen ob mein Beispielansatz richtig ist:

Wenn meine "Hauptdatenbank" eine Prozedur auf einer "Nebendatenbank" ausführt, wird automatisch das Two Phase Commit Protocol ausgeführt? Also mit diesen verschiedenen Phasen?

Mit freundlichen Grüßen
Lukas
 
Also, erstmal ein Dankeschön für die Links.
Ich glaub ich hab die Theorie dazu jetzt eigentlich verstanden. Jetzt wollt ich nur noch fragen ob mein Beispielansatz richtig ist:

Wenn meine "Hauptdatenbank" eine Prozedur auf einer "Nebendatenbank" ausführt, wird automatisch das Two Phase Commit Protocol ausgeführt? Also mit diesen verschiedenen Phasen?

Mit freundlichen Grüßen
Lukas

Also ich hab mich damit auch noch nicht so dolle intensiv beschäftigt, fand aber einen 10 Jahre alten Artikel meines Freundes Peter E. dazu: http://www.free-it.de/archiv/talks/paper-10130/paper.html

Das ist aber 10 Jahre her, und wurde weiterentwickelt, siehe auch obige Links und die aktuelle Doku. Und ja: Dein Ansatz scheint korrekt zu sein.
 
Werbung:
Zurück
Oben