Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Zwei Phasen Commit Protokoll

Dieses Thema im Forum "Oracle" wurde erstellt von LBerger94, 17 Februar 2014.

  1. LBerger94

    LBerger94 Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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.
     
  3. LBerger94

    LBerger94 Neuer Benutzer

    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
     
  4. akretschmer

    akretschmer Datenbank-Guru

    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.
     
  5. LBerger94

    LBerger94 Neuer Benutzer

    Ok. Jetzt bräuchte ich dafür nur noch ein Beispiel, welches ich meiner Klasse zeigen könnte. Hättest du da vielleicht noch eine Idee?
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Ne, sorry. Vielleicht findest aber was passendes im PG-Umfeld. IIRC gibt es da ein WIKI, da kannst ja mal suchen.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden