AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Replikation mit vielen Clients, FB

Replikation mit vielen Clients, FB

Ein Thema von hoika · begonnen am 20. Dez 2007 · letzter Beitrag vom 21. Dez 2007
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

Replikation mit vielen Clients, FB

  Alt 20. Dez 2007, 20:34
Datenbank: Firebird • Version: 1.5 • Zugriff über: egal
Hallo #,

ich habe folgende Aufgabe:

- eine Master-DB
- 50 (jaja ;( ) Laptops, die bestimmte Tabellen
mit der Master-DB synchronisieren sollen

- Am Anfang sind Master-DB und Lappi-DG gleich.
- jetzt wird in die Lappi-DB was geschrieben
in eine bestimmte Tabelle Tab_Y
- wird der Lappi mit dem LAN verbunden,
soll er alle Änderungen aus Tab_Y in die Master-DB zurückschreiben


Ich benutze zur Zeit eine eigene Lösung über den Ansatz,
wie ihn IB (FB) Replicator benutzt.
Es werden alle Änderungen per Trigger (auf dem Lappi) protokolliert
und können dann per Insert/Update) in die Master-DB eingetragen werden.

Doppelte Primärindices werden durch Nummerkreise bei den Generatoren vermieden.

So weit, so gut.

Nur die Anzahl der Laptops (also zu snychronisierenden) DB's macht mir sorgen.

Ich benutze das Konzept zur Zeit mit 2 DB's,
is schon schlimm genug

Kann ich hier in Probleme geraten,
von denen ich noch gar nicht ahne ?

Danke


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#2

Re: Replikation mit vielen Clients, FB

  Alt 20. Dez 2007, 20:45
ich denke schon...

Wenn ich das richtig verstehe... Sollen nach dem Synchronisieren alle Laptops auch wieder den Datenbestand der Masterdatenbank haben oder läuft die Synchronisierung nur von Laptop --> Masterdatenbank.

letzteres ist vom Aufwand nicht unbedingt dramatisch...
bei ersterem... kleine Lebensaufgabe
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Replikation mit vielen Clients, FB

  Alt 20. Dez 2007, 21:47
Grundsätzlich sollte es mit mehreren genau so wie mit 2 gehen. die ganze Sache wird halt komplexer. Soll nur die haupt-DB synchronisiert werden oder die Änderungen der laptops auch auf die anderen Laptops?
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Replikation mit vielen Clients, FB

  Alt 21. Dez 2007, 10:37
Hallo,

die Lappis sollen im "GPRS"-Modus nur Ihre Änderungen (eine Tabelle) in die
Master-DB schreiben.

Ist der laptop in der Firma erfolgt eine komplette Übertragung Master-DB -> Laptop,
so dass er wieder alle Daten hat.

Die Laptops untereinander haben nichts miteinander zu tun.

Ich habe immer so ein bissel Angst, dass die Nummernkreise nicht ausreichen.

Bisher mache ich das immer so.

Master-DB
Id's von 1 - 10 Mio.

Laptop 1
10Mio - 20Mio

Laptop 2
30Mio - 40Mio

usw.

Die Nummernkreise werden über die Generatoren in der DB abgebildet.

Ich habe mich aber noch nicht darum gekümmert, wenn einer der Kreise "voll ist".
Das müsste man dann wohl in der SP machen, die den Generator ausliest/hochsetzt.


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Replikation mit vielen Clients, FB

  Alt 21. Dez 2007, 10:45
Ggf. auf BigInt IDs, zusammengesetze Schlüssel, kombinierte schlüssel (fester wert + Generator) oder GUIDs umsteigen
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Replikation mit vielen Clients, FB

  Alt 21. Dez 2007, 13:23
Hallo,

BigInt geht nicht(Dialect 1),
alles andere geht auch nicht, ich kann ja nicht die ganze DB umstellen
wegen der Replikation (gewachsenes System).

Ich denke über die Änderung der SP nach,
die sich die Id eines neuen Datensatzes holt.

Bis jetzt sieht die so aus:

SQL-Code:
CREATE PROCEDURE PERSONAL_NEWID
RETURNS (
    NEWID INTEGER)
AS
  begin newid=gen_id(gen_PERSONAL,1);
end
Ich müsste jetzt eine Tabelle mit den gültigen Nummernschlüsseln haben
(Min,Max) und wenn die neue Id nicht im aktuellen Nummernkreis ist,
beginnt er halt mit dem nächsten Nummernkreis.

Hat das schon mal jemand so implementiert?


Wie sieht es mit der Performance aus?


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Replikation mit vielen Clients, FB

  Alt 21. Dez 2007, 14:11
Sollte eigentlich so funktionieren und auch von der Performance verkraftbar sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz