Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Synchronisation zwischen zwei Datenbanken

  1. #1
    MasterEvil ist offline Benutzer
    Registriert seit
    18.01.2007
    Beiträge
    34

    Standard Synchronisation zwischen zwei Datenbanken

    Hiho, ich habe mich hier schon ein bisschen durchgewühlt und schon ein paar Beiträge zum Thema gelesen aber die meisten Lösungen scheinen mir zu aufwendig für mein simples Anliegen.

    Ich habe zwei Datenbanken an zwei verschiedenen Orten welche sich halt immer synchron halten sollen. Problem ist das die Internetverbindung nicht all zu berauschend ist. Es steht gerade eine DSL 1000 Leitung zur Synchronisation zur Verfügung.

    Momentan haben wir eine Datenbank auf einem Server, die Verbindungsgeschwindigkeit ist aber extrem langsam. Daher die Überlegung an jedem Standort eine Datenbank zu installieren welche sich dann selbst synchronisieren. Zumindest die Lesezugriffe sollten dann wieder angemessene Geschwindigkeit haben.

    Ist das möglich dass sich 2 Datenbanken synchronisieren?
    PGCluster hatte ich mir schon angeguckt, ist dieser für mein Vorhaben überhaupt geeignet?

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von MasterEvil Beitrag anzeigen
    Hiho, ich habe mich hier schon ein bisschen durchgewühlt und schon ein paar Beiträge zum Thema gelesen aber die meisten Lösungen scheinen mir zu aufwendig für mein simples Anliegen.

    Ich habe zwei Datenbanken an zwei verschiedenen Orten welche sich halt immer synchron halten sollen. Problem ist das die Internetverbindung nicht all zu berauschend ist. Es steht gerade eine DSL 1000 Leitung zur Synchronisation zur Verfügung.

    Momentan haben wir eine Datenbank auf einem Server, die Verbindungsgeschwindigkeit ist aber extrem langsam. Daher die Überlegung an jedem Standort eine Datenbank zu installieren welche sich dann selbst synchronisieren. Zumindest die Lesezugriffe sollten dann wieder angemessene Geschwindigkeit haben.

    Ist das möglich dass sich 2 Datenbanken synchronisieren?
    PGCluster hatte ich mir schon angeguckt, ist dieser für mein Vorhaben überhaupt geeignet?

    Was Du suchst klingt nach Multi-Master-Replikation über eine lahme Leitung, und die Antwort ist NEIN, da gibt es meines Wissens nach nix.

    Slony ist eine Single-Master to Multiple Slave - Replikation.

    Es gibt ein Projekt, welches eine Multimaster-Replikation verspricht: http://www.postgres-r.org/
    der Maintainer davon ist, tätä, ein deutsch-sprechender. (Markus Schiltknecht). Du kannst auch mal auf http://www.postgresql.at/ gehen, die haben angeblich eine funktionierende Multi-Master-Lösung, auch http://www.enterprisedb.com/ hat da wohl was.
    Aber ich bin mir recht sicher, daß all das an Deiner Leitung scheitern wird. Und es sind wohl kommerzielle Lösungen, kosten also was, falls das bei Dir eine Rolle spielt.


    Was vielleicht gehen wird: Eine Master und eine Read-Only-Slave-DB. Dann mußt Du aber Sorge tragen, daß auf dem Slave wirklich nix geschrieben wird. Das wäre dann eine Sache für Slony.


    Aber mal eine Frage:

    Du sprichst von lahmen Lesegeschwindigkeiten: vielleicht kann man ja auch die Abfragen optimieren. Aber dazu müßte man etwas mehr über das Szenario wissen und genau schauen, wo der Flaschenhals ist.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    MasterEvil ist offline Benutzer
    Registriert seit
    18.01.2007
    Beiträge
    34

    Standard

    nja, bei uns läuft eine JavaSoftware welche mittels JDBC Kundendaten etc. verarbeitet.
    Wenn jemand alleine arbeitet ist die Geschwindigkeit OK aber bei 20 Mann wirds dann sehr langsam so das man fast 30 Sekunden warten muss bis einem ein simpler Brief angezeigt wird. Bei den Abfragen habe ich schon so weit mir möglich alles vereinfacht und in Sichten ausgelagert.
    Das einzige BackUp dass du jemals brauchen wirst ist jenes, welches du nicht gemacht hast!

  4. #4
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Also dadurch, das du etwas in Sichten (Views) auslagerst, hast du exakt gar nichts für die Datenbank vereinfacht.

    Ein View ist nichts anderes als ein gespeicherter Query, im Endeffekt wird also der gleiche Query wie vorher ausgeführt, nur siehst du in deiner Applikation davon nicht mehr so viel.

    Ich möchte fast wetten, eure Probleme sind anderer Natur. Wie groß ist so ein Brief, wieviele Datenmengen müssen dafür effektiv übertragen werden? Und über eine DSL 1000 Leitung passen selbst über den Rückkanal wieviele Bytes in der Sekunde? Genau ... da stimmt etwas nicht.

    Kann es sein, das hier vielleicht zu viele Anfragen gestellt werden, das einzelne Anfragen optimiert werden können, das zu viele Daten zurück übertragen werden (SELECT * als Beispiel, statt nur benötigte Daten zu selecten). Versuch doch mal herauszufinden, welche Daten wirkllich übertragen werden und welche davon benötigt werden.

    Dann umgehst du vielleicht auch dein Problem, alles syncronisieren zu müssen.

    Ach, noch eine Idee: akretschmer hat ja schon geschrieben, das Master-Slave Lösungen gut funktionieren. Wenn man also viel liest und nur wenig schreibt, könnte man in der Zentrale einen Master stehen haben, der Änderungen an den Slave schiebt. Die Aussenstelle liest halt vom Slave und schreibt Änderungen auf den Master.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  5. #5
    MasterEvil ist offline Benutzer
    Registriert seit
    18.01.2007
    Beiträge
    34

    Standard

    Ich meinte ja dass ich Sichten benutze also mir so eh nur die Daten hole die ich auch nur benötige. Der reine Datentransfer zwischen Client und Datenbank habe ich schon soweit optimiert das wirklich nur die Daten transferiert werden die wirklich benötigt werden.
    Sicherlich könnte man bei den eigentlichen Abfragen noch einiges optimieren aber die Geschwindigkeit in der die Datenbank die Daten liefert ist mehr als ausreichend.
    Das mit dem Brief war jetzt auch nen bisschen übertrieben aber teilweise müssen eben schon große Datenmengen abgefragt werden, im Gegensatz dazu eher weniger Daten gespeichert.
    Ich glaube ich werde also versuchen solch ein Master/Slave System aufzubauen, werde mich also gleich mal schlau machen was ich dazu alles brauche.
    Kennt vieleicht jemand ein schönes Tutorial welches den Werdegang einfach beschreibt?
    Das einzige BackUp dass du jemals brauchen wirst ist jenes, welches du nicht gemacht hast!

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von MasterEvil Beitrag anzeigen
    Ich glaube ich werde also versuchen solch ein Master/Slave System aufzubauen, werde mich also gleich mal schlau machen was ich dazu alles brauche.
    Kennt vieleicht jemand ein schönes Tutorial welches den Werdegang einfach beschreibt?
    http://linuxfinances.info/info/slonyadmin.html

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    MasterEvil ist offline Benutzer
    Registriert seit
    18.01.2007
    Beiträge
    34

    Standard

    Besten Dank
    Ging ja schneller als selber suchen *hrrhrr*
    Das einzige BackUp dass du jemals brauchen wirst ist jenes, welches du nicht gemacht hast!

  8. #8
    MasterEvil ist offline Benutzer
    Registriert seit
    18.01.2007
    Beiträge
    34

    Standard

    So .. bin jetzt beim installieren und konfigurieren und hab mal noch ne Frage zur Synchronisation.
    Synchronisieren sich die Datenbanken nur wenn folgender Befehl ausgeführt wird?
    Code:
    subscribe set ( id = 1, provider = 1, receiver = 2, forward = no );
    Oder kann man das auch so hinbiegen das nach jeder Änderung am Master automatisch mit dem Slave abgeglichen wird?
    Das einzige BackUp dass du jemals brauchen wirst ist jenes, welches du nicht gemacht hast!

  9. #9
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von MasterEvil Beitrag anzeigen
    So .. bin jetzt beim installieren und konfigurieren und hab mal noch ne Frage zur Synchronisation.
    Synchronisieren sich die Datenbanken nur wenn folgender Befehl ausgeführt wird?
    Code:
    subscribe set ( id = 1, provider = 1, receiver = 2, forward = no );
    Oder kann man das auch so hinbiegen das nach jeder Änderung am Master automatisch mit dem Slave abgeglichen wird?
    Um zu wissen, was zu tun ist, muß das halt definiert werden.
    Man definiert Sets, fügt diesen tables zu (set add table) und meldet diese an (subscribe set ).

    Slony arbeitet Trigger-basiert, diese Trigger müssen erst mal für die zu replizierenden Tabellen erzeugt werden. Dazu dienen halt u.a. diese Kommandos.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #10
    MasterEvil ist offline Benutzer
    Registriert seit
    18.01.2007
    Beiträge
    34

    Standard

    So .. ich nähere mich meinem Ziel immer mehr, eine funktionierende Replikation hab ich schon am laufen

    Eine Frage noch zu den Angaben bei den Adressen für Master/Slave, ist es möglich dort dynamische Adressen zu verwenden?

    Beispiel:
    Code:
    node 1 admin conninfo = 'dbname=database host=master.dyndns.org user=foo';
    Wenn sich jetzt während des Betriebes die IP ändert wird die dynamsiche Adresse ja aktualisiert, verwendet Slony ab diesen Zeitpunkt auch die neue IP oder wird die direkt beim initialiseren einmal aufgelöst und dann während der ganzen Laufzeit verwendet?

    Kann mir da einer was zu sagen?
    Das einzige BackUp dass du jemals brauchen wirst ist jenes, welches du nicht gemacht hast!

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 17.06.2011, 14:15
  2. Antworten: 2
    Letzter Beitrag: 02.09.2008, 13:06
  3. Vergleich zwischen zwei Tabellen
    Von Sauerkraut im Forum SQL
    Antworten: 6
    Letzter Beitrag: 05.06.2008, 10:49
  4. Tablle zwischen Datenbanken kopieren
    Von Sauerkraut im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 10.04.2008, 19:39
  5. Tabelle zwischen Datenbanken kopieren
    Von Maik im Forum Allgemeines
    Antworten: 5
    Letzter Beitrag: 25.07.2006, 22:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum